На попередньому уроці ми розглядали події, що відносяться до цілої книги. Зараз ми сфокусуємось на подіях пов'язаних з окремим аркушем.
Щоби виконати інструкції, які базуються на подіях для окремого аркуша, виберіть аркуш в редакторі, а потім 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 ' => повторне увімкнення подій