Excel VBA'daki Olaylar

İçindekiler:

Anonim

Genel olarak, olaylar bir şey olmaktan başka bir şey değildir. Excel'de de böyledir. Ancak bazen belirli bir olay meydana geldiğinde bir şeyin otomatik olarak olmasını isteriz. Excel'de belirli bir olay gerçekleştiğinde bir şeyler yapmak için Excel VBA olayını kullanırız.

Excel VBA Olay İşleyicileri: Türler

Excel VBA'da esas olarak 7 tür Olay İşleyici vardır.

  1. Uygulama Etkinlikleri
  2. Çalışma Kitabı Etkinlikleri
  3. Çalışma Sayfası Etkinlikleri
  4. Grafik Olayları
  5. Kullanıcı Formu Etkinlikleri
  6. Tuş kombinasyonu Olayları (kısayol tuşu olayları)
  7. Zamanında Etkinlikler

Gelin bunları tek tek inceleyelim.

Excel'de Uygulama Olayları

Uygulama düzeyindeki olaylar, uygulama (Excel) kapatıldığında, açıldığında, Etkinleştirildiğinde, korunduğunda, korunmadığında vb. tetiklenir.

Uygulama düzeyinde 50'den fazla olay türü vardır. O yüzden hepsini burada tartışamayız.

Uygulama Etkinliğinin Kapsamı:

Bu olaylar, çalışma kitabını içeren kod açık olduğu sürece tüm excel çalışma kitaplarında çalışır. Örneğin, size etkin sayfanın sayfa adını söylemek için uygulama düzeyinde bir olay oluşturduysanız, bu, herhangi bir çalışma kitabının her sayfa etkinleştirmesinde tetiklenecektir.

VBA'da Uygulama olay işleyicisi nasıl oluşturulur?

Uygulama olayı oluşturma biraz zor. Burada detaylı olarak örnekle anlattım.

Excel'de Çalışma Kitabı Olayları

Çalışma kitabı etkinliğinin kapsamı

Çalışma kitabı olayları, kodu içeren çalışma kitabının tamamında çalışır. Etkinlik, çalışma kitabını açabilir, kapatabilir, etkinleştirebilir, devre dışı bırakabilir, sayfa değişikliği vb.

Çalışma Kitabı olayları nereye yazılır?

Çalışma kitabı olayları, çalışma kitabı nesnesine yazılır.

Çalışma Kitabı etkinliği nasıl yazılır?

Bu adımları takip et:

1. Proje gezgininde, çalışma kitabı nesnesine çift tıklayın. Kod yazma alanı görüntülenecektir. Tüm çalışma kitabı kapsamındaki olaylar buraya yazılır.

2. Kod yazma alanının sol üst tarafında bir açılır menü göreceksiniz. Açılır menüyü tıklayın ve çalışma kitabını seçin. Varsayılan olarak geneldir.

3. Soldaki açılır menüden çalışma kitabını seçtiğinizde, varsayılan olarak bir workbook_open olay alt yordamı ekleyecektir. Ancak farklı bir olay alt programı kullanmak istiyorsanız, sağ üstteki açılır menüden onu seçin. Mevcut tüm çalışma kitabı olaylarını listeler.

4. İhtiyacınız olan etkinliği seçin. Örnek olması açısından SheetActivate olayını seçiyorum. Bu olay, çalışma kitabındaki kodu içeren sayfanın her seçiminde tetiklenir.

Çalışma Kitabı Olay Örneği:Bu basit bir örnek. Sadece etkinleştirilen çalışma sayfasının adını göstermek istiyorum. Bunun için Workbook nesnesindeki SheetActivate Event'i kullanıyorum.

Özel Alt Workbook_SheetActivate(ByVal Sh As Object) MsgBox Sh.Name & "Activated" End Sub 

Şimdi, ne zaman bu çalışma kitabında yeni bir sayfa etkinleştirilse, bu olay tetiklenir. Masaj, sayfa adı etkinleştirildiğinde size sorulacaktır.

Bu kodun o kadar kullanışlı olmadığını biliyorum ama bu satırların arasına herhangi bir talimat seti koyabilirsiniz. Modüllerin kendisinden fonksiyonları ve alt programları çağırabilirsiniz.

Excel'de Çalışma Sayfası Olayları

Tüm aralık ve hücre hedefli olaylar, çalışma sayfası olaylarına yazılır. Çalışma sayfası olaylarını buradan okuyabilirsiniz.

Çalışma sayfası etkinliğinin kapsamı

Çalışma sayfası olayları, belirli bir çalışma sayfasının aralıklarına ve hücrelerine hedeflenir. Belirli bir çalışma sayfasında (Kodu içeren çalışma sayfası) meydana gelen olaylarda bir çalışma sayfası olayı tetiklenir.

Çalışma sayfası olayları nerede yazılır?

Çalışma sayfası olayları, çalışma sayfası nesnesine yazılır.

Bir çalışma sayfası olay işleme kodu nasıl yazılır?

Çalışma kitabı olaylarıyla aynıdır.

1. Proje gezgininde, çalışma sayfası nesnesine çift tıklayın. Çalışma sayfası için kod yazma alanı görüntülenecektir. Çalışma sayfası kapsamındaki tüm olaylar bu çalışma sayfalarına yazılır.

2. Kod yazma alanının sol üst tarafında bir açılır menü göreceksiniz. Açılır menüyü tıklayın ve çalışma sayfasını seçin. Varsayılan olarak geneldir.

3. Soldaki açılır menüden çalışma sayfasını seçtiğinizde, varsayılan olarak bir worksheet_selectionChange olay alt yordamı ekleyecektir. Ancak farklı bir olay alt programı kullanmak istiyorsanız, sağ üstteki açılır menüden onu seçin. Mevcut tüm çalışma sayfası olaylarını listeler.

4. İhtiyacınız olan etkinliği seçin. Örnek olması açısından Worksheet_SelectionChange(ByVal Target As Range) olayını seçiyorum. Bu olay, sayfadaki bir aralık seçiminin her değişikliğinde tetiklenir.

Çalışma Sayfası Olay Örneği

Private Sub Worksheet_SelectionChange(ByVal Target As Range) MsgBox "Şuradasınız" & Target.Address End Sub 

Yukarıdaki olay bir çalışma kitabının 1. sayfasında yazılmıştır. Bu olay, aralık seçimini her değiştirdiğinizde, kod içeren sayfada seçtiğiniz aralık adresini gösterecektir. Aşağıda, çalışma sayfası olaylarının bazı örnekleri verilmiştir.

Çalışma sayfası olayları çoğunlukla dinamik panolarda kullanılır. Panolarınızı dinamik hale getirmek için hücreleri onay kutuları veya etkin seçimler olarak kullanabilirsiniz.

Aşağıda, çalışma sayfası olaylarının bazı örnekleri verilmiştir.

Herhangi Bir Değişiklik Yapıldığında Makroyu Çalıştırmak İçin Çalışma Sayfası Değişiklik Olayını Kullanma

Sayfada Belirlenen Aralıkta Değişiklik Yapılırsa Makroyu Çalıştır

Geçerli Satırı ve Sütunu Kullanarak Vurgulamak için En Basit VBA Kodu

Grafik Olayları

Excel'de iki tür grafik olayı vardır. Biri, burada ayrıntılı olarak tartıştığımız normal olarak gömülü grafiklerdir. Uygulama düzeyindeki olaylara çok benzer.

Bir diğeri ise Grafik sayfasıdır. Bunlar, yalnızca diğer bazı sayfalardaki verilere bağlı grafikleri içeren özel sayfalardır.

Olaylar söz konusu olduğunda, normal sayfalara çok benzerler.

Grafik olayları nereye yazılır?

Grafik olayları, grafik nesnesine yazılır. Kod alanını açmak için grafik sayfasına çift tıklamanız yeterlidir.

Grafik olayları nasıl yazılır?

Bu adımları takip et:

1. Proje gezgininde, kod alanını açmak için grafik sayfası nesnesine çift tıklayın. Tüm özel grafik sayfası ile ilgili olaylar burada yazılır.

2. Kod alanının sağ üst köşesinde, normal açılır menüyü göreceksiniz. Bu açılır menüden grafiği seçin.

3. Sağ köşeden istediğiniz etkinliği seçin.

Örneğin kullanıcı grafiği seçer seçmez bir şey yapmak istersem Chart_Activate olayını kullanacağım.

Örnek: Grafik Sayfası Olayı

Private Sub Chart_Activate() MsgBox "Grafik Yenilendi" End Sub 

Yukarıdaki kod parçası, siz çizelge sayfasını seçtiğiniz anda etkinleşecektir. Burada sadece grafiğin yenilendiği mesajını gösterecek, ancak çok şey yapabilirsiniz. Bu mesajı göstermeden önce grafik için veri aralığını dinamik olarak seçebilirsiniz.

Aşağıda, grafik olaylarının bazı örnekleri verilmiştir:

UserForm Olayları

Kullanıcı formu olayı, diğer olaylar gibidir. Kullanıcı formunda meydana gelen birkaç olay vardır. Olayları tetiklemek için bu olayları kullanabilirsiniz.

Kullanıcı Formu olayları nereye yazılır?

Bir kullanıcı formu olayı yazmak için önce bir UserForm eklemeniz gerekir.

1. Ardından UserForm'a sağ tıklayın ve görünüm koduna tıklayın. Şimdi kod alanı açılacaktır.

2. Şimdi sol üstteki damlada, Kullanıcı formunu seçin.

3. Soldaki açılır menüden, kod yürütmeyi tetiklemek için kullanmak istediğiniz olayı seçin.

4. Kod olay kodunun arasına istediğiniz kodu yazın.

Aşağıdaki örnek, bir kullanıcı formu etkinleştirildiğinde mesajı gösterir.

Private Sub UserForm_Activate() MsgBox "Merhaba, Lütfen bilgilerinizi iki kez doğrulayın." Alt Bitiş 

Yukarıdaki kod sadece bir mesaj gösterir, ancak bu olayı, formu bazı varsayılan girdilerle önceden doldurmak veya doldurmak için sayfa bilgilerini kullanmak için kullanabilirsiniz.

Onkey Etkinliği

Bu olaylar, belirtilen bir tuşa veya tuş kombinasyonuna basıldığında tetiklenir. Sizinkini kısayollarda oluşturmaya benzer.

OnKey olayı aslında aşağıda gösterildiği gibi iki bağımsız değişkene sahip bir Application sınıfı işlevi veya yöntemidir:

Uygulama.onkey Anahtar, ["prosedür"]

NS anahtar tetikleyici olarak kullanmak istediğiniz tuş veya tuş kombinasyonudur.

"Prosedür" tetiklemek istediğiniz yordamın veya makronun dize adı olan isteğe bağlı bir bağımsız değişkendir. Prosedürü tanımlamazsanız, mevcut prosedürü başlatır.

Onkey Olayları nereye yazılır?

Onkey olayını herhangi bir normal modüle yazabilirsiniz. Normal modüllerde çalışacaklar ama önce Onkey Talimatlarını içeren o alt yordamı çalıştırmanız gerekecek. Onkey olaylarını kullanmak için her seferinde makroyu çalıştırmış gibi değilsiniz. Çalışma kitabını açtığınızda bu makroyu yalnızca bir kez çalıştırmanız gerekecek.

Onkey olaylarını içeren makroyu çalıştırmak istemiyorsanız, bunları çalışma kitabı nesnesindeki workbook_open() olayına koyabilirsiniz. Onkey olaylarını içeren çalışma kitabını açar açmaz Onkey olaylarını etkinleştirir.

Onkey Event işleyicisi nasıl yazılır?

Bu nedenle, belirli bir kısayolla çalıştırmak istediğiniz bazı makrolarınız zaten varsa, kısayolların listesini içerecek yeni bir prosedür yazın. Örneğin, burada kısayolun çalıştığını gösteren bir makrom var.

Sub show_msg() MsgBox "Kısayol çalışıyor" End Sub 

Şimdi CTRL+j tuş bileşimine basarken bu makroyu çalıştırmak istiyorum. Bunun için aşağıdaki VBA kodunu yazıyorum.

Sub Activate_Onkey() Application.OnKey "^j", "show_msg" End Sub

"^" (karate) CTRL tuşu içindir. Excel VBA'daki tüm önemli kısaltmaların tablosu aşağıdadır.

https://docs.microsoft.com/en-us/office/vba/api/excel.application.onkey

Onkey Etkinliği Nasıl Etkinleştirilir?

Yukarıdaki kodu bir modüle yazdıktan sonra excel görünümüne girip CTRL+J tuşlarını kullanırsanız çalışmayacaktır. İlk olarak, OnKey olaylarını tanımlayan sub'ı çalıştırmanız gerekir. Bu nedenle, Activate_Onkey() alt öğesini bir kez çalıştırın ve ardından tüm oturum için çalışacaktır. Onkey tanımlarını içeren çalışma kitabını kapattığınızda çalışmayı durduracaktır.

Onkey tanımlarını gerçekleşmesini istediğiniz prosedür içerisine koyabilirsiniz. Ancak daha sonra makroyu manuel olarak bir kez çalıştırmanız gerekecektir. Bu yüzden Onkey olaylarını Workbook_Open olaylarına koymanızı öneriyorum. Tüm Onkey olaylarının otomatik olarak etkinleştirilmesini sağlar.

Excel'de Ontime Etkinliği

Adından da anlaşılacağı gibi, Onkey olayı belirtilen alt yordamı mümkün olan en erken belirtilen sürede veya daha sonra başlatır. Excel, toplam talimat setini yürütmek veya geçmiş kopya modunda olmak gibi bazı diğer görevlerle meşgul olabilir. Bu durumda, Ontime olayını geciktirebilir. Bu nedenle argüman en erken zaman olarak gösterilir.

OnTime Olayının Sözdizimi

Ontime olayı, Application sınıfının bir işlevidir. İki temel argümanı ve iki isteğe bağlı argümanı vardır.

Application.Ontime EarlyTime, "Procedure",[LatestTime], [Program]

NSEn erken zamanprosedürünüzün çalışmasını istediğiniz zamandır. Ancak Excel, belirtilen makroyu tanımlanan en erken süreden sonra, yalnızca ücretsiz olduğunda çalıştıracaktır.

NS "Prosedür" belirtilen zamanda çalıştırmak istediğiniz prosedürün adıdır.

Dediğim gibi, excel'in prosedürünüzü belirtilen zamanda çalıştıracağının garantisi yoktur. NS En SonZamanExcel'e özgür olmak ve görevinizi yürütmek için bir pencere vermek için en erken zamandan sonraki zamandır.

Planlanmış OnTime etkinliğinizi devre dışı bırakmak istiyorsanız,Takvim yanlış.

Ontime Etkinliği nereye yazılır?

OnTime olayı herhangi bir modülde yazılabilir. Etkinliği etkinleştirmek için prosedürü içeren olayı yürütmeniz gerekecektir.

Etkinliği içeren çalışma kitabını açar açmaz etkinliğinizin etkinleştirilmesini istiyorsanız, onu workbook_open etkinliğine koyun. Olayı içeren kodu excel'de açar açmaz olayı etkinleştirecektir.

Ontime Etkinliği nasıl yazılır?

Diyelim ki geçerli tarih ve saati gösteren bir alt programınız var.

Sub show_msg() MsgBox "Geçerli tarih ve saat " & Şimdi End Sub

Şimdi bu prosedürün başka bir makronun çalıştırılmasından 5 saniye sonra çalışmasını istiyorsanız, bu kodu girmeniz gerekecektir.

Sub OnTimeTest() '-- bazı diğer görevler Application.ontime Now + (5 / 24 / 60 / 60), "show_msg" End Sub

OnTimeTest alt yordamını çalıştırdığınızda, çalıştırılmasından beş saniye sonra show_msg alt yordamını tetikleyecektir. Bu yüzden birkaç kez başka bir şey yaptıktan sonra bir şeyler yapmak istiyorsanız yukarıdaki yapıyı kullanın.

Makronuzun birkaç saniye/dakika/saat/vb. sonra kendi kendine çalışmasını istiyorsanız, o işlevin kendisini çağırabilirsiniz. Bir tür özyinelemeli altyordam olurdu.

Sub OnTimeTest() MsgBox "Geçerli tarih ve saat " & Now Application.ontime Now + (5 / 24 / 60 / 60), "OnTimeTest" End Sub

Yukarıdaki alt program, siz başlattığınızda her beş saniyede bir çalışacaktır.

Evet arkadaşlar, bunlar Excel VBA'daki olaylar. Yukarıdaki kategorilerden bazıları, çok çeşitli olay tetikleyicilerine sahiptir. Tabi hepsini burada anlatamam. Bu kitap uzunluğunda bir makale yapacaktır. Bu, Excel VBA'da bulunan olaylara yalnızca bir girişti. Daha fazla bilgi için makaleler boyunca gömülü bağlantıları izleyin. Aşağıda ilgili bazı makalelerden bahsettim. Onları da okuyabilirsiniz.

Bu makale veya başka bir excel/VBA düşüncesiyle ilgili herhangi bir şüpheniz varsa, aşağıdaki yorumlar bölümünde bize sorun.

Excel VBA'daki Çalışma Sayfası Olayları|Çalışma sayfası olayı, sayfada belirli bir olay meydana geldiğinde makrolarınızın çalışmasını istediğinizde gerçekten kullanışlıdır.

Microsoft Excel'de VBA kullanan çalışma kitabı olayları | Çalışma kitabı olayları, çalışma kitabının tamamında çalışır. Tüm sayfalar çalışma kitabının bir parçası olduğundan, bu olaylar onlarda da çalışır.

Microsoft Excel'de VBA kullanarak bir otomatik makro/olay makro yürütmesini önleme | auto_open makrosunun çalışmasını önlemek için shift tuşunu kullanın.

Microsoft Excel'de VBA kullanarak nesne olaylarını grafikleyin | Grafikler karmaşık nesnelerdir ve onlara eklediğiniz birkaç bileşen vardır. Grafik Olaylarını yapmak için Sınıf modülünü kullanıyoruz.

Popüler Makaleler:

Verimliliğinizi Artıracak 50 Excel Kısayolu | Görevinizde daha hızlı olun. Bu 50 kısayol, Excel'de daha da hızlı çalışmanızı sağlayacaktır.

Excel'de DÜŞEYARA İşlevi | Bu, farklı aralıklardan ve sayfalardan değer aramak için kullanılan excel'in en çok kullanılan ve popüler işlevlerinden biridir.

Excel 2016'da EĞERSAY | Bu şaşırtıcı işlevi kullanarak değerleri koşullarla sayın. Belirli bir değeri saymak için verilerinizi filtrelemeniz gerekmez. Gösterge tablonuzu hazırlamak için Countif işlevi gereklidir.

Excel'de SUMIF İşlevi Nasıl Kullanılır | Bu, başka bir gösterge panosu temel işlevidir. Bu, belirli koşullardaki değerleri özetlemenize yardımcı olur.