TOP

VBA-Ders 11.1. Çalışma Kitabı Etkinlikleri (Workbook Etkinlikleri)

VBA kodu için tetikleyici (anahtar) olabilecek çalışma kitabı olaylarımıza (açma, kapatma vb.) sahip olabiliriz.


Workbook_Open (Kitabın açılması)

Çalışma kitabı açıldığında talimatları takip etmek için ThisWorkbook'a gidin ve Workbook'ı seçin:

Workbook_Open olayı varsayılan olarak eklenecek ve çalışma kitabı açıldığında etkinleşecektir:

Private Sub Workbook_Open()

End Sub

Örneğin aşağıdaki talimatı eklersek çalışma kitabı açıldığında iletişim kutusu görüntülenecektir:

Private Sub Workbook_Open()
     MsgBox "Welcome"
End Sub

Workbook_BeforeClose (Çalışma kitabını kapatmadan önceki olay)

Çalışma kitabını kapatmadan önce talimatları yürütmek için Kapatmadan Önce'yi seçin:

Private Sub Workbook_BeforeClose(Cancel As Boolean)

End Sub

Bir çalışma kitabının kapatılması, "Cancel" değişkeninin True olarak ayarlanmasıyla iptal edilebilir.

Aşağıda, kullanıcıdan çalışma kitabını kapatma onayının istendiği bir örnek verilmiştir:

Private Sub Workbook_BeforeClose(Cancel As Boolean)
     'Kullanıcı NO ile yanıt verirse, Cancel değişkeni TRUE değerine sahip olacaktır (bu, çalışma kitabının kapatılmasını iptal edecektir)
     If MsgBox("Do you really want to close this workbook ?", 36, "I confirm") = vbNo Then
         Cancel = True
     End If
End Sub

Workbook_BeforeSave (Çalışma kitabını kaydetmeden önceki olay)

Bu olay, çalışma kitabı kaydedilmeden hemen önce gerçekleşir:

Private Sub Workbook_BeforeSave(ByVal SaveAsUI As Boolean, Cancel As Boolean)

End Sub

Bir dosyanın kaydedilmesi, "Cancel" değişkeninin True olarak ayarlanmasıyla iptal edilebilir.

Workbook_BeforePrint (Kitabın basılmasından önceki olay)

Bu olay, çalışma kitabı yazdırılmadan önce gerçekleşir:

Private Sub Workbook_BeforePrint(Cancel As Boolean)

End Sub

Dosyanın yazdırılması, "Cancel" değişkeninin True olarak ayarlanmasıyla iptal edilebilir.

Workbook_AfterSave (Çalışma kitabını kaydettikten sonraki olay)

Bu olay çalışma kitabını kaydettikten hemen sonra gerçekleşir:

Private Sub Workbook_AfterSave(ByVal Success As Boolean)

End Sub

Workbook_SheetActivate (Çalışma Sayfası Değiştirme Etkinliği)

Bu olay, bir çalışma kitabındaki çalışma sayfaları arasında her geçiş yaptığınızda gerçekleşir:

Private Sub Workbook_SheetActivate(ByVal Sh As Object)

End Sub

Bu örnekte, etkin sayfanın adı iletişim kutusunda görüntülenir:

Private Sub Workbook_SheetActivate(ByVal Sh As Object)
     MsgBox "Name of Sheet : " & Sh.Name
End Sub

Workbook_SheetBeforeDoubleClick (Hücredeki çift tıklama olayı)

Bu olay, bir çalışma sayfası hücresine çift tıklandığında meydana gelir:

Private Sub Workbook_SheetBeforeDoubleClick(ByVal Sh As Object, ByVal Target As Range, Cancel As Boolean)

End Sub

Örneğin, seçilen sayfaya bağlı olarak bir hücreye dolgu rengi eklemek için bu olayı kullanabiliriz:

Private Sub Workbook_SheetBeforeDoubleClick(ByVal Sh As Object, ByVal Target As Range, Cancel As Boolean)
     If Sh.Name = "Sheet1" Then
         Target.Interior.Color = RGB(255, 108, 0) 'Turuncu
     Else
         Target.Interior.Color = RGB(136, 255, 0) 'Yeşil
     End If
End Sub

Workbook_SheetBeforeRightClick (Sağ tıklamadan önceki olay)

Bu olay, sağ fare tıklamasından önce gerçekleşir:

Private Sub Workbook_SheetBeforeRightClick(ByVal Sh As Object, ByVal Target As Range, Cancel As Boolean)

End Sub

Workbook_SheetChange (Sayfa içeriği değiştirme olayı)

Bu olay, çalışma sayfasının içeriği her değiştiğinde gerçekleşir:

Private Sub Workbook_SheetChange(ByVal Sh As Object, ByVal Target As Range)

End Sub

Workbook_SheetCalculate (SheetCalculate Etkinliği)

Bu olay, çalışma sayfasındaki veriler her hesaplandığında veya yeniden hesaplandığında meydana gelir:

Private Sub Workbook_SheetCalculate(ByVal Sh As Object)

End Sub

Workbook_SheetSelectionChange (Seçilen hücre aralığını değiştirme olayı)

Bu olay, e-tabloda seçilen hücre aralığının içeriği değiştiğinde meydana gelir:

Private Sub Workbook_SheetSelectionChange(ByVal Sh As Object, ByVal Target As Range)

End Sub

Bu örnekte A1 hücresi boşsa dolgu rengi değişir:

Private Sub Workbook_SheetSelectionChange(ByVal Sh As Object, ByVal Target As Range)
     If Range("A1") = "" Then
         Target.Interior.Color = RGB(124, 255, 255) 'Mavi
    End If
End Sub

Workbook_NewSheet (Yeni sayfa etkinliği ekle)

Bu olay, çalışma kitabına yeni bir sayfa eklendiğinde gerçekleşir:

Private Sub Workbook_NewSheet(ByVal Sh As Object)

End Sub

Workbook_SheetFollowHyperlink (Bağlantı Tıklama Etkinliği)

Bu olay, bir bağlantıya (köprü metni) tıklandığında meydana gelir:

Private Sub Workbook_SheetFollowHyperlink(ByVal Sh As Object, ByVal Target As Hyperlink)

End Sub