TOP

VBA- الدرس 11.2. أحداث ورقة العمل (Worksheet الأحداث)

درسنا في الدرس السابق الأحداث المتعلقة بالكتاب بأكمله. الآن سنركز على الأحداث المتعلقة بورقة واحدة.


Worksheet_SelectionChange (فتح المصنف)

لتنفيذ الإرشادات المستندة إلى الحدث لورقة عمل فردية ، حدد ورقة العمل في المحرر ، ثم 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

Worksheet_Activate (حدث تنشيط الورقة)

يقع هذا الحدث عند تنشيط ورقة العمل:

Private Sub Worksheet_Activate()

End Sub

Worksheet_Deactivate (حدث إلغاء تنشيط الورقة)

يحدث هذا الحدث عند تنشيط ورقة عمل أخرى:

Private Sub Worksheet_Deactivate()

End Sub

Worksheet_BeforeDoubleClick (انقر نقرًا مزدوجًا فوق حدث في خلية)

يحدث هذا الحدث عندما يتم النقر نقرًا مزدوجًا فوق خلية ورقة عمل:

Private Sub Worksheet_BeforeDoubleClick(ByVal Target As Range, Cancel As Boolean)

End Sub

Worksheet_BeforeRightClick (الحدث قبل النقر بزر الماوس الأيمن)

يحدث هذا الحدث قبل النقر بزر الماوس الأيمن فوق ورقة العمل:

Private Sub Worksheet_BeforeRightClick(ByVal Target As Range, Cancel As Boolean)

End Sub

Worksheet_Calculate (حدث حساب ورقة العمل)

يحدث هذا الحدث عندما يتم حساب البيانات الموجودة في ورقة العمل أو إعادة حسابها:

Private Sub Worksheet_Calculate()

End Sub

Worksheet_Change (حدث تغيير محتوى الخلية)

يحدث هذا الحدث عندما تتغير محتويات الخلايا في الورقة المحددة:

Private Sub Worksheet_Change(ByVal Target As Range)

End Sub

Worksheet_FollowHyperlink (حدث النقر على الرابط)

يحدث هذا الحدث عند النقر فوق ارتباط (نص تشعبي):

Private Sub Worksheet_FollowHyperlink(ByVal Target As Hyperlink)

End Sub

قم بإلغاء تنشيط كافة الأحداث مؤقتًا

لتنفيذ الكود بدون أي أحداث ، أدخله بين سطرين من الكود كما يلي:

 Application.EnableEvents = False '=> تعطيل الأحداث
 'بعض التعليمات ...
 Application.EnableEvents = True '=> إعادة تمكين الأحداث