يمكن أن يكون لدينا أحداث المصنف (مثل الفتح والإغلاق وما إلى ذلك) التي يمكن أن تكون مشغلات (رموز تبديل) لكود VBA.
لاتباع الإرشادات عند فتح المصنف ، انتقل إلى ThisWorkbook وحدد Workbook:
ستتم إضافة الحدث Workbook_Open افتراضيًا وسيتم تنشيطه عند فتح المصنف:
Private Sub Workbook_Open() End Sub
على سبيل المثال ، إذا أضفنا التعليمات التالية ، فسيتم عرض مربع الحوار عند فتح المصنف:
Private Sub Workbook_Open() MsgBox "Welcome" End Sub
لتنفيذ الإرشادات قبل إغلاق المصنف ، حدد قبل الإغلاق:
Private Sub Workbook_BeforeClose(Cancel As Boolean) End Sub
يمكن إلغاء إغلاق المصنف عن طريق تعيين المتغير "Cancel" إلى True.
فيما يلي مثال يُطلب فيه من المستخدم التأكيد لإغلاق المصنف:
Private Sub Workbook_BeforeClose(Cancel As Boolean) 'إذا استجاب المستخدم بـ NO ، فسيكون للمتغير Cancel القيمة TRUE (والتي ستلغي إغلاق المصنف) If MsgBox("Do you really want to close this workbook ?", 36, "I confirm") = vbNo Then Cancel = True End If End Sub
يقع هذا الحدث مباشرة قبل حفظ المصنف:
Private Sub Workbook_BeforeSave(ByVal SaveAsUI As Boolean, Cancel As Boolean) End Sub
يمكن إلغاء حفظ الملف عن طريق ضبط المتغير "Cancel" على True.
يقع هذا الحدث قبل طباعة المصنف:
Private Sub Workbook_BeforePrint(Cancel As Boolean) End Sub
يمكن إلغاء طباعة الملف عن طريق ضبط المتغير "Cancel" على True.
يقع هذا الحدث مباشرة بعد حفظ المصنف:
Private Sub Workbook_AfterSave(ByVal Success As Boolean) End Sub
يقع هذا الحدث في كل مرة تقوم فيها بالتبديل بين أوراق العمل في مصنف:
Private Sub Workbook_SheetActivate(ByVal Sh As Object) End Sub
في هذا المثال ، يتم عرض اسم الورقة النشطة في مربع الحوار:
Private Sub Workbook_SheetActivate(ByVal Sh As Object) MsgBox "Name of Sheet : " & Sh.Name End Sub
يحدث هذا الحدث عندما يتم النقر نقرًا مزدوجًا فوق خلية ورقة عمل:
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) 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_SheetBeforeRightClick(ByVal Sh As Object, ByVal Target As Range, Cancel As Boolean) End Sub
يقع هذا الحدث عندما يتغير محتوى ورقة العمل:
Private Sub Workbook_SheetChange(ByVal Sh As Object, ByVal Target As Range) End Sub
يحدث هذا الحدث عندما يتم حساب البيانات الموجودة في ورقة العمل أو إعادة حسابها:
Private Sub Workbook_SheetCalculate(ByVal Sh As Object) End Sub
يقع هذا الحدث عندما يتغير محتوى النطاق المحدد من الخلايا في جدول البيانات:
Private Sub Workbook_SheetSelectionChange(ByVal Sh As Object, ByVal Target As Range) End Sub
في هذا المثال ، يتغير لون التعبئة إذا كانت الخلية A1 فارغة:
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_NewSheet(ByVal Sh As Object) End Sub
يحدث هذا الحدث عند النقر فوق ارتباط (نص تشعبي):
Private Sub Workbook_SheetFollowHyperlink(ByVal Sh As Object, ByVal Target As Hyperlink) End Sub