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
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
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
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)
-
- If MsgBox("Do you really want to close this workbook ?", 36, "I confirm") = vbNo Then
- Cancel = True
- End If
- End Sub
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
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
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
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
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
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
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)
- Else
- Target.Interior.Color = RGB(136, 255, 0)
- End If
- End Sub
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
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
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
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
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)
- End If
- End Sub
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
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
Private Sub Workbook_SheetFollowHyperlink(ByVal Sh As Object, ByVal Target As Hyperlink)
End Sub