درسنا في الدرس السابق الأحداث المتعلقة بالكتاب بأكمله. الآن سنركز على الأحداث المتعلقة بورقة واحدة.
لتنفيذ الإرشادات المستندة إلى الحدث لورقة عمل فردية ، حدد ورقة العمل في المحرر ، ثم Worksheet:
ستتم إضافة حدث SelectionChange افتراضيًا. يتم تشغيل هذا الحدث كلما تغير محتوى النطاق:
Private Sub Worksheet_SelectionChange(ByVal Target As Range) End Sub
على سبيل المثال ، يضيف الكود التالي ألوان تعبئة إلى خلية محددة أو أكثر ويزيل لون التعبئة تلقائيًا من النطاق المحدد مسبقًا عندما يتغير هذا النطاق:
Private Sub Worksheet_SelectionChange(ByVal Target As Range)
Static previous_selection As String
If previous_selection <> "" Then
'إزالة لون الخلفية من التحديد السابق:
Range(previous_selection).Interior.ColorIndex = xlColorIndexNone
End If
'إضافة لون الخلفية إلى التحديد الحالي:
Target.Interior.Color = RGB(181, 244, 0)
'حفظ عنوان التحديد الحالي:
previous_selection = Target.Address
End Sub
يقع هذا الحدث عند تنشيط ورقة العمل:
Private Sub Worksheet_Activate() End Sub
يحدث هذا الحدث عند تنشيط ورقة عمل أخرى:
Private Sub Worksheet_Deactivate() End Sub
يحدث هذا الحدث عندما يتم النقر نقرًا مزدوجًا فوق خلية ورقة عمل:
Private Sub Worksheet_BeforeDoubleClick(ByVal Target As Range, Cancel As Boolean) End Sub
يحدث هذا الحدث قبل النقر بزر الماوس الأيمن فوق ورقة العمل:
Private Sub Worksheet_BeforeRightClick(ByVal Target As Range, Cancel As Boolean) End Sub
يحدث هذا الحدث عندما يتم حساب البيانات الموجودة في ورقة العمل أو إعادة حسابها:
Private Sub Worksheet_Calculate() End Sub
يحدث هذا الحدث عندما تتغير محتويات الخلايا في الورقة المحددة:
Private Sub Worksheet_Change(ByVal Target As Range) End Sub
يحدث هذا الحدث عند النقر فوق ارتباط (نص تشعبي):
Private Sub Worksheet_FollowHyperlink(ByVal Target As Hyperlink) End Sub
لتنفيذ الكود بدون أي أحداث ، أدخله بين سطرين من الكود كما يلي:
Application.EnableEvents = False '=> تعطيل الأحداث 'بعض التعليمات ... Application.EnableEvents = True '=> إعادة تمكين الأحداث