Do tej pory tworzyliśmy proste procedury, które należało ręcznie uruchamiać. Niektóre procedury uruchamiają się automatycznie, gdy nastąpi jakieś zdarzenie (np. użytkownik otworzy skoroszyt). Poniżej wymieniłem kilka najpopularniejszych zdarzeń arkusza.

Activate – arkusz został aktywowany (np. przełączyliśmy się z Arkusza2 na Arkusz1 – wtedy jest aktywowany Arkusz1)
Private Sub Worksheet_Activate()
MsgBox "Dane w tym arkuszu można edytować tylko za zgodą szefa"
End Sub
Deactivate – arkusz został deaktywowany (czyli przełączyłem się z Arkusza1 na np. Arkusz2)
Private Sub Worksheet_Deactivate()
MsgBox "Zostałem deaktywowany"
End Sub
Calculate – arkusz został przeliczony (np. ktoś wpisał jakąś liczbę do jakiejś komórki i jakaś formuła, która z tej komórki odczytała liczbę dokonała przeliczenia)
Change(ByVal Target As Range) – nastapiła zmiana jakiejś komórki (np. użytkownik coś wpisał) argumentem jest zakres w którym wystąpiły zmiany
BeforeRightClick – zdarzenie wykona się tuż przed tym jak użytkownik kliknie w arkuszu prawym przyciskiem myszy
Private Sub Worksheet_BeforeRightClick(ByVal Target As Range, Cancel As Boolean)
MsgBox "Zablokowałem prawy przycisk myszy"
Cancel = True 'Blokada menu użytkownika
End Sub
BeforeDoubleClick – zdarzenie wykona się tuż przed tym jak użytkownik kliknie dwukrotnie w arkuszu
BeforeDelete – zdarzenie wykona się tuż przed tym jak ma zostać usunięty arkusz (przydatne, aby przed usunięciem arkusza zarchiwizować jakieś dane)
FollowHyperlink – zdarzenie jest wykonane, gdy użytkownik kliknie w link (hiperłącze) w arkuszu
Private Sub Worksheet_FollowHyperlink(ByVal Target As Hyperlink)
MsgBox Target.Address
End Sub
SelectionChange – zdarzenie jest wykonywane, gdy użytkownik zaznaczy jakiś obszar w arkuszu
Private Sub Worksheet_SelectionChange(ByVal Target As Range)
For Each Kom In Target
Kom.Value = "ocenzurowano"
Next
End Sub