Excel VBA'daki Çalışma Sayfası Olayları

İçindekiler:

Anonim

Makro/VBA snippet'inizi bir hücre değerini değiştirdiğinde, çift tıklama gerçekleştiğinde, bir sayfa seçildiğinde vb. çalıştırmak isteyebilirsiniz. Tüm bu durumlarda Çalışma Sayfası Olay İşleyicisini kullanırız. Olay İşleyici, belirli bir olay meydana geldiğinde VBA kodunu çalıştırmamıza yardımcı olur.

Bu makalede, her bir Çalışma Sayfası Olay İşleyicisi hakkında kısaca öğreneceğiz.

Çalışma Sayfaları Olay İşleyicisi nedir?

Çalışma sayfası olay işleyicisi, çalışma sayfası modülünde yerel olan bir alt yordamdır.

Çalışma Sayfası Olay İşleyici Kodu nereye yazılır?

Çalışma sayfası Olayları yalnızca sayfa nesnelerine yazılır. Bir modül veya sınıf modülüne bir çalışma sayfası olayı yazarsanız, hata olmaz ancak çalışmazlar.

Sayfa nesnesine yazmak için. Üzerine çift tıklayın veya sağ tıklayın ve kodu görüntüle'ye tıklayın. Kod yazma alanı gösterilecektir.

Çalışma sayfasında belirli bir olay için kod nasıl yazılır?

Şimdi düzenleme modundayken, sol üst köşedeki açılır menüde genel göreceksiniz. Açılır menüye tıklayın ve çalışma sayfasını seçin. Şimdi sağ üst köşedeki açılır menüde tüm etkinlikler gösterilecek. Hangisine ihtiyacınız varsa onu seçin ve o olay için bir iskelet kodu sizin için yazılacaktır.

Her olayın sabit bir prosedür adı vardır. Bunlar ayrılmış alt program adlarıdır. Bunları bir sayfadaki diğer alt yordamlar için kullanamazsınız. Bir modülde normal bir alt program olarak çalışacaklardır.

Önemli: Bu listedeki her alt program belirtilen olay üzerinde çalışacaktır.
Bir tür çalışma sayfası olay prosedürü, bir sayfaya yalnızca bir kez yazılabilir. Bir kağıda aynı iki olay işleme prosedürünü yazarsanız, bu bir hataya neden olur ve hiçbiri yürütülmez. Tabii ki, hata belirsiz altyordamlar olacaktır.

Olayların her biri hakkında kısaca bilgi edinelim.

1. NSWorksheet_Change (Aralık Olarak ByVal Hedefi)Etkinlik

Bu olay, içeren çalışma sayfalarında herhangi bir değişiklik yaptığımızda tetiklenir (biçimlendirme hariç). Sayfanın tamamında herhangi bir değişiklik yapılırsa bir şeyler yapmak istiyorsanız, kod şöyle olacaktır:

Private Sub Worksheet_Change(ByVal Target As Range) 'Msgbox "bir şey yaptı" End Sub 

"Hedef" her zaman Aktif hücredir.

Başka bir örnek: A1 değişirse, B1 Hücresine tarih ve saat koymak isteyebilirsiniz. Bu durumda worksheet_change olayını kullanırız. Kod şöyle görünecektir:

Private Sub Worksheet_Change(ByVal Target As Range) ise Hedef.Address = "$A$1" Sonra Aralık("B1").Value2 = Format(Now(), "ss:dd:ss") End If End Sub 

Bu yalnızca A1 hücresini hedefleyecektir.

Bir aralığı hedeflemek istiyorsanız aşağıdaki örneği kullanın:

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

2. NSWorksheet_SelectionChange(Aralık Olarak ByVal Hedefi)Etkinlik

Adından da anlaşılacağı gibi, bu olay seçim değiştiğinde tetiklenir. Başka bir deyişle, imleciniz Hücre A1'deyse ve başka bir hücreye gidiyorsa, bu alt programdaki kod çalışacaktır.

Aşağıdaki kod, ne zaman değişirse ve çift bir satır ise aktif hücrelerin rengini değiştirir.

Private Sub Worksheet_SelectionChange(ByVal Target As Range) Target.Row Mod 2 = 0 ise Target.Interior.ColorIndex = 22 End If End Sub 

Şimdi, imlecim ne zaman çift satırda hareket ederse, renkli olacak. Tek satır hücreleri korunacaktır.

Worksheet_SelectionChange olayının başka bir örneği:

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

3. NS Worksheet_Activate() Etkinlik

Bu olay, sayfa içeren olay kodu etkinleştirildiğinde tetiklenir. Bu olayın iskelet kodu:

Private Sub Worksheet_Activate() End Sub 

Basit bir örnek, seçildiğinde sayfa adını gösteriyor.

Private Sub Worksheet_Activate() MsgBox "Şu andasınız" & ActiveSheet.Name End Sub 

Bu kodu içeren sayfaya gelir gelmez etkinlik başlayacak ve "Sayfadasınız" mesajı gösterilecektir (benim durumumda 2. sayfa).

4. NS Worksheet_Deactivate() Etkinlik

Bu olay, kodu içeren sayfadan ayrılırken tetiklenir. Başka bir deyişle, sayfadan çıkarken satırları gizleme veya herhangi bir şey gibi bir şey yapmak istiyorsanız, bu VBA olayını kullanın. Sözdizimi:

Private Sub Worksheet_Deactivate() 'kodunuz' End Sub 

Aşağıdaki örnek Worksheet_Deativate olayı, bu sayfadan ayrılacağınız zaman ana sayfadan ayrıldığınıza dair bir mesaj açacaktır.

Private Sub Worksheet_Deactivate() MsgBox "Ana Sayfayı Bıraktınız" End Sub 

5. NS Worksheet_BeforeDelete()Etkinlik

Bu olay, sayfa içeren VBA olayının silinmesini onayladığınızda tetiklenir. Sözdizimi basittir:

Private Sub Worksheet_BeforeDelete() End Sub 

Aşağıdaki kod, silinmek üzere olan sayfanın içeriğini kopyalamak isteyip istemediğinizi soracaktır.

Private Sub Worksheet_BeforeDelete() ans = MsgBox("Bu sayfanın içeriğini yeni bir sayfaya kopyalamak istiyor musunuz?", vbYesNo) If ans = True Then 'end If End Sub kopyalama kodu 

6. NS Worksheet_BeforeDoubleClick(Aralık Olarak ByVal Hedef, Boole Olarak İptal Et) Etkinlik

Bu olay, hedeflenen hücreye çift tıkladığınızda tetiklenir. Bu VBA Çalışma Sayfası Etkinliğinin sözdizimi şöyledir:

Private Sub Worksheet_BeforeDoubleClick(Aralık Olarak ByVal Hedef, Boole Olarak İptal Et) End Sub 

Hedef hücreyi veya aralığı ayarlamazsanız, sayfadaki her çift tıklamada tetiklenir.
İptal değişkeni bir boole değişkenidir. Bunu True olarak ayarlarsanız, varsayılan eylem gerçekleşmez. Bu, hücreye çift tıklarsanız düzenleme moduna girmeyeceği anlamına gelir.
Aşağıdaki kod, herhangi bir hücreye çift tıklarsanız hücrenin bir renkle dolmasını sağlar.

Private Sub Worksheet_BeforeDoubleClick(Aralık Olarak ByVal Hedef, Boole Olarak İptal Et) Cancel = True Target.Interior.ColorIndex = 7 End Sub 

Aşağıdaki kod A1 hücresini hedefler. Belirtilen renkle zaten doldurulmuşsa, rengi kaybolacaktır. Beğen düğmesi veya onay kutusuna çok benzer.

Özel Alt Worksheet_BeforeDoubleClick(ByVal Aralık Olarak Hedef, Boole Olarak İptal Et) Target.Address = "$A$1" ise İptal = True If Target.Interior.ColorIndex = 4 Sonra Target.Interior.ColorIndex = xlColorIndexNone Else Target.Interior.ColorIndex = 4 End If End If End Sub 

7. NS Worksheet_BeforeRightClick(Aralık Olarak ByVal Hedef, Boole Olarak İptal Et) Etkinlik

Bu olay, hedeflenen hücreye Sağ Tıkladığınızda tetiklenir. Bu VBA Çalışma Sayfası Etkinliğinin sözdizimi şöyledir:

Özel Alt Worksheet_BeforeRightClick(ByVal Aralık Olarak Hedef, Boole Olarak İptal Et) İptal = Doğru ' 'kodunuz' End Sub 

Aşağıdaki kod, üzerine sağ tıklarsanız hücreyi 1 değeriyle dolduracaktır. "İptal" Operatörünü True olarak ayarladığımız için varsayılan sağ tıklama seçeneklerini göstermeyecektir.

Private Sub Worksheet_BeforeRightClick(Aralık Olarak ByVal Hedef, Boole Olarak İptal Et) Cancel = True Target.Value = 1 End Sub 

8. NS Çalışma Sayfası_Hesapla() Etkinlik

Excel bir sayfa hesaplarken bir şeyler olmasını istiyorsanız, bu olayı kullanın. Excel bir sayfa hesapladığında tetiklenir. Sözdizimi basittir:

Private Sub Worksheet_Calculate() ' 'kodunuz' End Sub 

6. NS Worksheet_FollowHyperlink(Köprü Olarak ByVal Hedefi)Etkinlik

Bu prosedür, sayfada bir köprüye tıkladığınızda çalışacaktır. Bu olay işleyicisinin temel sözdizimi şöyledir:

Private Sub Worksheet_FollowHyperlink(ByVal Target As Hyperlink) ' 'kodunuz' End Sub 

İsterseniz hedef köprüyü ayarlayabilirsiniz. Hedef köprüyü ayarlamazsanız, kod içeren sayfada herhangi bir köprüye tıklarsanız yürütülür.

Evet arkadaşlar, bunlar hakkında bilgi sahibiyseniz işinize yarayacak bazı temel çalışma sayfası etkinlikleriydi. Aşağıda okumak isteyebileceğiniz bazı ilgili makaleler bulunmaktadır.

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

Herhangi Bir Değişiklik Yapıldığında Makroyu Çalıştırmak İçin Çalışma Sayfası Değişiklik Olayını Kullanma| Bu nedenle, sayfa her güncellendiğinde makronuzu çalıştırmak için VBA'nın Çalışma Sayfası Olaylarını kullanıyoruz.

Sayfada Belirlenen Aralıkta Değişiklik Yapılırsa Makroyu Çalıştır| Belirtilen aralıktaki değer değiştiğinde makro kodunuzu çalıştırmak için bu VBA kodunu kullanın. Belirtilen aralıkta yapılan herhangi bir değişikliği algılar ve olayı başlatır.

Geçerli Satırı ve Sütunu Vurgulamak İçin En Basit VBA Kodu | Sayfanın geçerli satırını ve sütununu vurgulamak için bu küçük VBA parçacığını kullanın.

Popüler Makaleler:

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

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.