VBA - Eventi

VBA, una programmazione guidata dagli eventi può essere attivata quando si modifica manualmente una cella o un intervallo di valori di cella. L'evento di modifica può semplificare le cose, ma puoi terminare molto rapidamente una pagina piena di formattazione. Esistono due tipi di eventi.

  • Eventi del foglio di lavoro
  • Eventi cartella di lavoro

Eventi del foglio di lavoro

Gli eventi del foglio di lavoro vengono attivati ​​quando c'è una modifica nel foglio di lavoro. Viene creato facendo clic con il pulsante destro del mouse sulla scheda del foglio e scegliendo "Visualizza codice", quindi incollando il codice.

L'utente può selezionare ciascuno di questi fogli di lavoro e scegliere "Foglio di lavoro" dal menu a discesa per ottenere l'elenco di tutti gli eventi del foglio di lavoro supportati.

Di seguito sono riportati gli eventi del foglio di lavoro supportati che possono essere aggiunti dall'utente.

Private Sub Worksheet_Activate() 
Private Sub Worksheet_BeforeDoubleClick(ByVal Target As Range, Cancel As Boolean)    
Private Sub Worksheet_BeforeRightClick(ByVal Target As Range, Cancel As Boolean) 
Private Sub Worksheet_Calculate() 
Private Sub Worksheet_Change(ByVal Target As Range) 
Private Sub Worksheet_Deactivate() 
Private Sub Worksheet_FollowHyperlink(ByVal Target As Hyperlink) 
Private Sub Worksheet_SelectionChange(ByVal Target As Range)

Esempio

Diciamo, dobbiamo solo visualizzare un messaggio prima del doppio clic.

Private Sub Worksheet_BeforeDoubleClick(ByVal Target As Range, Cancel As Boolean)
   MsgBox "Before Double Click"
End Sub

Produzione

Facendo doppio clic su qualsiasi cella, la finestra di messaggio viene visualizzata all'utente come mostrato nella seguente schermata.

Eventi cartella di lavoro

Gli eventi della cartella di lavoro vengono attivati ​​quando c'è una modifica nella cartella di lavoro nel suo complesso. Possiamo aggiungere il codice per gli eventi della cartella di lavoro selezionando "ThisWorkbook" e selezionando "cartella di lavoro" dal menu a discesa, come mostrato nello screenshot seguente. Immediatamente la procedura secondaria Workbook_open viene visualizzata all'utente come mostrato nello screenshot seguente.

Di seguito sono riportati gli eventi della cartella di lavoro supportati che possono essere aggiunti dall'utente.

Private Sub Workbook_AddinUninstall() 
Private Sub Workbook_BeforeClose(Cancel As Boolean) 
Private Sub Workbook_BeforePrint(Cancel As Boolean) 
Private Sub Workbook_BeforeSave(ByVal SaveAsUI As Boolean, Cancel As Boolean) 
Private Sub Workbook_Deactivate() 
Private Sub Workbook_NewSheet(ByVal Sh As Object) 
Private Sub Workbook_Open() 
Private Sub Workbook_SheetActivate(ByVal Sh As Object) 
Private Sub Workbook_SheetBeforeDoubleClick(ByVal Sh As Object, ByVal Target As Range, Cancel As Boolean) 
Private Sub Workbook_SheetBeforeRightClick(ByVal Sh As Object, ByVal Target As Range, Cancel As Boolean) 
Private Sub Workbook_SheetCalculate(ByVal Sh As Object) 
Private Sub Workbook_SheetChange(ByVal Sh As Object, ByVal Target As Range) 
Private Sub Workbook_SheetDeactivate(ByVal Sh As Object) 
Private Sub Workbook_SheetFollowHyperlink(ByVal Sh As Object, ByVal Target As Hyperlink) 
Private Sub Workbook_SheetSelectionChange(ByVal Sh As Object, ByVal Target As Range) 
Private Sub Workbook_WindowActivate(ByVal Wn As Window) 
Private Sub Workbook_WindowDeactivate(ByVal Wn As Window) 
Private Sub Workbook_WindowResize(ByVal Wn As Window)

Esempio

Diciamo, abbiamo solo bisogno di visualizzare un messaggio all'utente che un nuovo foglio è stato creato con successo, ogni volta che viene creato un nuovo foglio.

Private Sub Workbook_NewSheet(ByVal Sh As Object)
   MsgBox "New Sheet Created Successfully"
End Sub

Produzione

Dopo aver creato un nuovo foglio Excel, viene visualizzato un messaggio all'utente come mostrato nella seguente schermata.