În lecția anterioară, am luat în considerare evenimentele legate de întreaga carte. Acum ne vom concentra asupra evenimentelor legate de o singură foaie.
Pentru a executa instrucțiuni bazate pe evenimente pentru o foaie de lucru individuală, selectați foaia de lucru în editor, apoi Worksheet:
Evenimentul SelectionChange va fi adăugat în mod implicit. Acest eveniment este declanșat ori de câte ori conținutul intervalului se modifică:
Private Sub Worksheet_SelectionChange(ByVal Target As Range) End Sub
De exemplu, următorul cod adaugă culori de umplere la una sau mai multe celule selectate și elimină automat culoarea de umplere din intervalul selectat anterior atunci când intervalul respectiv se schimbă:
Private Sub Worksheet_SelectionChange(ByVal Target As Range) Static previous_selection As String If previous_selection <> "" Then 'Eliminarea culorii de fundal din selecția anterioară: Range(previous_selection).Interior.ColorIndex = xlColorIndexNone End If 'Adăugarea culorii de fundal la selecția curentă: Target.Interior.Color = RGB(181, 244, 0) 'Salvarea adresei selecției curente: previous_selection = Target.Address End Sub
Acest eveniment are loc atunci când o foaie de lucru este activată:
Private Sub Worksheet_Activate() End Sub
Acest eveniment are loc atunci când este activată o altă foaie de lucru:
Private Sub Worksheet_Deactivate() End Sub
Acest eveniment are loc atunci când se face dublu clic pe o celulă de foaie de lucru:
Private Sub Worksheet_BeforeDoubleClick(ByVal Target As Range, Cancel As Boolean) End Sub
Acest eveniment are loc înainte de a face clic dreapta pe foaia de lucru:
Private Sub Worksheet_BeforeRightClick(ByVal Target As Range, Cancel As Boolean) End Sub
Acest eveniment are loc ori de câte ori datele dintr-o foaie de lucru sunt calculate sau recalculate:
Private Sub Worksheet_Calculate() End Sub
Acest eveniment are loc ori de câte ori conținutul celulelor de pe foaia dată se schimbă:
Private Sub Worksheet_Change(ByVal Target As Range) End Sub
Acest eveniment are loc atunci când se face clic pe un link (hipertext):
Private Sub Worksheet_FollowHyperlink(ByVal Target As Hyperlink) End Sub
Pentru a executa codul fără niciun eveniment, inserați-l între două linii de cod astfel:
Application.EnableEvents = False '=> dezactivați evenimente 'Cateva instructiuni... Application.EnableEvents = True '=> reactivați evenimentele