درسنا في الدرس السابق الأحداث المتعلقة بالكتاب بأكمله. الآن سنركز على الأحداث المتعلقة بورقة واحدة.
لتنفيذ الإرشادات المستندة إلى الحدث لورقة عمل فردية ، حدد ورقة العمل في المحرر ، ثم 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 '=> إعادة تمكين الأحداث