Gli eventi a livello di applicazione funzionano sull’intera applicazione (Excel in questo riferimento). Ma l’attivazione dell’evento dell’applicazione non è facile come creare la cartella di lavoro o gli eventi del foglio di lavoro. Ma ti assicuro che non è altrettanto complicato. In questo articolo, impareremo come creare e utilizzare l’evento dell’applicazione in Excel VBA in pochi semplici passaggi.

Passaggio 1: creare un oggetto evento in un modulo di classe

Per creare un oggetto evento, dobbiamo utilizzare il modulo di classe.

  • Inserire un link: / modules-class-modules-in-vba-vba-class-moduli-e-come-usarli [modulo di classe]. Chiamalo come vuoi. L’ho chiamato MyAppEvents.

  • Definire una variabile di evento del tipo di applicazione con la parola chiave WithEvents.

Private WithEvents myApp As Application
  • Inizializza questo evento nella subroutine class_initialize ().

Dal menu a discesa a sinistra, seleziona la classe. Successivamente, nel menu a discesa in alto a destra, seleziona Inizializza.

image

Private Sub Class_Initialize()

Set myApp = Application

End Sub
  • Ora definisci gli eventi che desideri utilizzare. Dall’elenco a discesa in alto a sinistra, seleziona l’oggetto evento. Tutte le procedure di gestione degli eventi disponibili saranno disponibili nel menu a discesa in alto a destra. Seleziona quello di cui hai bisogno e definisci cosa vuoi fare quando l’evento si attiva. Immagine: https: //www.office-skill.site/images/wp-content-uploads-2020-01-Capture-37.jpg [immagine, larghezza = 540, altezza = 208]

Uso l’evento SheetActivate. Ogni volta che un utente passerà da un foglio all’altro di qualsiasi cartella di lavoro aperta, mostrerà il nome della cartella di lavoro e l’utente del foglio ha selezionato.

Private Sub myApp_SheetActivate(ByVal Sh As Object)

MsgBox ActiveWorkbook.Name & "-" & Sh.Name

End Sub

Puoi definire tutti gli eventi che desideri definire qui.

image

Gli eventi non inizieranno a funzionare immediatamente. Questo è stato il primo passo.

Dato che è un modulo di classe, dobbiamo crearne un oggetto per attivare gli eventi.

Ora dobbiamo solo avviare questi eventi da una normale subroutine.

Step2: Crea una subroutine di avvio evento nel modulo normale

Ora abbiamo una classe evento. Dobbiamo solo creare un oggetto di quella classe e inizializzarlo. Una volta eseguita questa subroutine, tutti gli eventi definiti nella classe dell’evento inizieranno a funzionare.

image

  • Inserisci un modulo normale.

  • Definisci una variabile della classe che hai creato.

Private AppE As MyAppEvents
  • Inizializzalo in una subroutine. Puoi nominarlo come vuoi.

Private Sub StartEvents()

Set AppE = New MyAppEvents

End Sub

  • Esegui questo codice utilizzando il tasto F5. Facoltativamente, è possibile assegnare questa macro al pulsante nel foglio di lavoro se si desidera avviare gli eventi dal foglio di lavoro.

Ed è fatto. Ora ogni volta che cambierai foglio, apparirà una finestra di messaggio con il nome della cartella di lavoro e del foglio, purché il codice contenente la cartella di lavoro sia aperto.

image

È stata dura? Non credo proprio. Fammi sapere cosa ne pensi nella sezione commenti qui sotto.

Attivazione e disattivazione degli eventi dell’applicazione VBA Una volta eseguita la macro nel modulo normale, si attiverà sempre finché non si chiude la cartella di lavoro che contiene gli eventi. Ma potresti volere che li accendano e spegnano a tuo piacimento. Ci sono due modi per farlo.

Annullare l’oggetto dell’evento Impostare EnableEvents su False

1. Annullare l’oggetto evento

In una subroutine separata, imposta l’oggetto evento su Nothing

Private Sub StopEvents()

Set AppE = Nothing

End Sub

Una volta eseguito questo codice, gli eventi smetteranno di funzionare. Puoi metterlo in un pulsante sul foglio di lavoro per interrompere gli eventi. Ora avrai due pulsanti per avviare e interrompere questi eventi specifici. Fermerà semplicemente gli eventi creati dall’oggetto AppE.

2. Imposta EnableEvents su False

Il secondo metodo è disabilitare gli eventi. Per rendere non rilevabili tutti gli eventi impostiamo la proprietà EnableEvents della classe Application su

Falso.

Private Sub StopEvents()

Application.EnableEvents= False

End Sub

Il codice sopra disabiliterà tutti gli eventi. Anche gli eventi Excel predefiniti. Non funzioneranno fino a quando non li riavvierai. Anche se si esegue la subroutine StartEvents () (sopra), l’evento non funzionerà. Per far funzionare nuovamente tutti gli eventi, sarà necessario impostare nuovamente la proprietà EnableEvents su True.

Quindi, se vuoi che i tuoi eventi funzionino ogni volta che inizi gli eventi, aggiungi questa riga di codice nel sottotitolo.

Private Sub StartEvents()

Application.EnableEvents = True

Set AppE = New MyAppEvents

End Sub

image

Quindi sì ragazzi, è così che puoi usare l’evento dell’applicazione in Excel. Fammi sapere se questo è stato abbastanza esplicativo e ti ha aiutato a comprendere gli eventi a livello di applicazione in Excel VBA nella sezione commenti qui sotto. Se hai qualcosa da aggiungere a questo, scrivi anche quello. Puoi porre le tue domande relative a questo articolo o qualsiasi altro argomento relativo a Excel VBA nella sezione commenti qui sotto.

Scarica il file di lavoro qui sotto:

image 48

Articoli correlati:

link: / events-in-vba-the-events-in-excel-vba [Gli eventi in Excel VBA] | Esistono sette tipi di eventi in Excel. Ogni evento si occupa di scopi diversi. L’evento dell’applicazione si occupa a livello di cartella di lavoro. Cartella di lavoro a livello di fogli. Evento del foglio di lavoro a livello di intervallo.

link: / events-in-vba-the-worksheet-events-in-excel-vba [Gli eventi del foglio di lavoro in Excel VBA] * | Gli eventi del foglio di lavoro sono davvero utili quando si desidera che le macro vengano eseguite quando si verifica un evento specificato il foglio.

link: / events-in-vba-workbook-events-using-vba-in-microsoft-excel [Workbook events using VBA in Microsoft Excel] | Gli eventi della cartella di lavoro funzionano sull’intera cartella di lavoro. Poiché tutti i fogli fanno parte della cartella di lavoro, questi eventi funzionano anche su di essi.

link: / events-in-vba-prevent-that-an-automacroeventmacro-executes-using-vba-in-microsoft-excel [Prevent an automacro / eventmacro executes using VBA in Microsoft Excel] * | Per impedire l’esecuzione della macro auto_open utilizzare il tasto Maiusc.

link: / events-in-vba-chart-object-events-using-vba-in-microsoft-excel [Chart object events using VBA in Microsoft Excel] * | I grafici sono oggetti complessi e ci sono diversi componenti che hai collegato ad essi. Per creare gli eventi grafico usiamo il modulo Class.

Articoli popolari:

link: / keyboard-formula-shortcuts-50-excel-shortcuts-to-aumentare-la-produttività [50 scorciatoie Excel per aumentare la produttività] | Diventa più veloce nel tuo compito. Queste 50 scorciatoie renderanno il tuo lavoro ancora più veloce su Excel.

link: / formule-e-funzioni-introduzione-di-vlookup-funzione [La funzione CERCA.VERT in Excel] | Questa è una delle funzioni più utilizzate e popolari di Excel che viene utilizzata per cercare valori da diversi intervalli e fogli.

link: / tips-countif-in-microsoft-excel [COUNTIF in Excel 2016] | Contare i valori con le condizioni utilizzando questa straordinaria funzione. Non è necessario filtrare i dati per contare un valore specifico.

La funzione Countif è essenziale per preparare la tua dashboard.

link: / excel-formula-and-function-excel-sumif-function [Come usare la funzione SUMIF in Excel] | Questa è un’altra funzione essenziale della dashboard. Questo ti aiuta a riassumere i valori su condizioni specifiche.