На попередньому уроці ми розглядали події, що відносяться до цілої книги. Зараз ми сфокусуємось на подіях пов'язаних з окремим аркушем.
Щоби виконати інструкції, які базуються на подіях для окремого аркуша, виберіть аркуш в редакторі, а потім 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
'Removing background color from previous selection :
Range(previous_selection).Interior.ColorIndex = xlColorIndexNone
End If
'Adding background color to current selection :
Target.Interior.Color = RGB(181, 244, 0)
'Saving the address of the current selection :
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 ' => повторне увімкнення подій