Nella lezione precedente abbiamo considerato gli eventi legati all'intero libro. Adesso ci concentreremo sugli eventi legati ad un singolo foglio.
Per eseguire istruzioni basate su eventi per un singolo foglio di lavoro, seleziona il foglio di lavoro nell'editor, quindi Worksheet:
L'evento SelectionChange verrà aggiunto per impostazione predefinita. Questo evento viene generato ogni volta che il contenuto dell'intervallo cambia:
Private Sub Worksheet_SelectionChange(ByVal Target As Range) End Sub
Ad esempio, il codice seguente aggiunge colori di riempimento a una o più celle selezionate e rimuove automaticamente il colore di riempimento dall'intervallo selezionato in precedenza quando tale intervallo cambia:
Private Sub Worksheet_SelectionChange(ByVal Target As Range) Static previous_selection As String If previous_selection <> "" Then 'Rimozione del colore di sfondo dalla selezione precedente: Range(previous_selection).Interior.ColorIndex = xlColorIndexNone End If 'Aggiunta del colore di sfondo alla selezione corrente: Target.Interior.Color = RGB(181, 244, 0) 'Salvataggio dell'indirizzo della selezione corrente: previous_selection = Target.Address End Sub
Questo evento si verifica quando viene attivato un foglio di lavoro:
Private Sub Worksheet_Activate() End Sub
Questo evento si verifica quando viene attivato un altro foglio di lavoro:
Private Sub Worksheet_Deactivate() End Sub
Questo evento si verifica quando si fa doppio clic su una cella del foglio di lavoro:
Private Sub Worksheet_BeforeDoubleClick(ByVal Target As Range, Cancel As Boolean) End Sub
Questo evento si verifica prima del clic con il tasto destro del mouse sul foglio di lavoro:
Private Sub Worksheet_BeforeRightClick(ByVal Target As Range, Cancel As Boolean) End Sub
Questo evento si verifica ogni volta che i dati in un foglio di lavoro vengono calcolati o ricalcolati:
Private Sub Worksheet_Calculate() End Sub
Questo evento si verifica ogni volta che cambia il contenuto delle celle sul foglio specificato:
Private Sub Worksheet_Change(ByVal Target As Range) End Sub
Questo evento si verifica quando viene cliccato un collegamento (ipertesto):
Private Sub Worksheet_FollowHyperlink(ByVal Target As Hyperlink) End Sub
Per eseguire il codice senza eventi, inseriscilo tra due righe di codice in questo modo:
Application.EnableEvents = False '=> disabilita gli eventi 'Alcune istruzioni... Application.EnableEvents = True '=> riattiva gli eventi