Eventi grafici incorporati utilizzando VBA in Excel

L'utilizzo degli eventi del foglio grafico (foglio di lavoro in particolare per i grafici) è abbastanza semplice. Ma quando si tratta di utilizzare eventi su grafici incorporati, non è così semplice. Ma ti assicuro che gli eventi con grafici incorporati non sono così difficili da attivare. È molto simile alla creazione di eventi dell'applicazione. Quindi, senza ulteriori indugi, iniziamo.

Quindi, ci sono due passaggi per attivare un evento grafico incorporato. Il primo è creare una classe di eventi del grafico e definire gli eventi. Il secondo è creare un oggetto di quella classe di eventi. Questo è tutto.

Passaggio 1: creare la classe evento del grafico e definire gli eventi

  • Inserire un modulo di classe. Nominalo come vuoi. L'ho chiamato ChartClass.
  • Definire una variabile evento di tipo Grafico con la parola chiave WithEvents.
    Private WithEvents CEvents As Chart
  • 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.

    Private Sub Class_Initialize() Imposta CEvents = ActiveSheet.ChartObjects(1).Chart End Sub 

    Qui stiamo inizializzando il grafico CEvents con il primo grafico creato su quel foglio. L'1 è il numero di indice degli oggetti del grafico sul foglio attivo.

  • Ora definisci gli eventi che vuoi utilizzare. Dal menu a discesa in alto a sinistra, seleziona l'oggetto CEvent. Tutte le procedure di gestione degli eventi disponibili saranno disponibili per te nel menu a discesa in alto a destra. Seleziona quello di cui hai bisogno e definisci cosa vuoi fare quando quell'evento si attiva.
    Per dimostrare l'uso, scelgo l'evento CEvents_Activate. Cercherò di mostrare all'utente che l'evento del grafico è attivato in una casella di messaggio.

    Private Sub CEvents_Activate() MsgBox "Gli eventi del grafico funzionano" End Sub 

Il nostro lavoro qui è finito. Puoi creare tutti gli eventi che desideri dagli eventi disponibili per il tipo di grafico qui. Ma gli eventi non funzioneranno ancora perché è solo una classe. Abbiamo bisogno di creare l'oggetto di questa classe in un sub in qualsiasi modulo normale o il modulo oggetto. Quindi esegui quel sottotitolo. Dopodiché il nostro evento inizierà a funzionare.

Passaggio 2: creare l'oggetto classe grafico nel modulo.

  • Inserisci un modulo normale.
  • Dichiara una variabile della classe che crei prima.
    Dim mychart As ChartClass
  • Crea un sub e inizializza la variabile con l'oggetto della classe ChartClass.
    SubactivateChartEvent() Imposta mychart = New ChartClass End Sub

  • Esegui questo sottotitolo usando F5. Quando eseguirai questo codice, gli eventi del grafico saranno attivi per il primo grafico sul foglio attualmente attivo poiché abbiamo usato questa riga per l'inizializzazione dell'evento grafico Set CEvents = ActiveSheet.ChartObjects(1).Chart.

Ed è fatto. Ora se fai clic sul primo grafico sul foglio attualmente attivo, mostrerà il messaggio che gli eventi del grafico stanno funzionando.

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 volerli accendere e spegnere a tuo piacimento. Ci sono due modi per farlo.

  • Annulla l'oggetto evento
  • Imposta EnableEvents su False

1. Annullamento dell'oggetto evento

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

Private Sub StopEvents() Imposta Mychart= Nothing End Sub

Una volta eseguito questo codice, gli eventi smetteranno di funzionare. Puoi inserirlo 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 consiste nel disabilitare gli eventi. Per rendere non catturabili tutti gli eventi, impostiamo la proprietà EnableEvents della classe Application sufalso.

Private Sub StopEvents() Application.EnableEvents= False End Sub

Il codice precedente disabiliterà tutti gli eventi. Anche gli eventi excel predefiniti. Non funzioneranno finché non li riavvierai. Anche se esegui la subroutine StartEvents() (sopra), l'evento non funzionerà. Per far funzionare nuovamente tutti gli eventi, dovrai impostare nuovamente la proprietà EnableEvents su True.

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

Private Sub StartEvents() Application.EnableEvents = True Set mychart = New ChartClass End Sub

Avvio di eventi del grafico personalizzato ogni volta che si apre la cartella di lavoro

Se stai sviluppando uno strumento per l'utente finale, potresti volere che gli eventi funzionino automaticamente. In tal caso, puoi inserire l'avviatore dell'evento nell'oggetto Workbook con l'evento Workbook_open(), invece che in un modulo normale. Questo renderà il tuo oggetto evento inizializzato non appena apri la cartella di lavoro che contiene gli eventi.

Quindi sì ragazzi, ecco come è possibile utilizzare l'evento grafico incorporato in Excel. Fammi sapere se questo è stato abbastanza esplicativo e ti ha aiutato a capire gli eventi a livello di applicazione in Excel VBA. Scrivi i tuoi pensieri 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 a qualsiasi altro argomento relativo a Excel VBA nella sezione commenti qui sotto.

Scarica il file di lavoro qui sotto:

Gli eventi in Excel VBA |Esistono sette tipi di eventi in Excel. Ogni evento ha un ambito diverso. Evento 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.

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 sul foglio.

Eventi della cartella di lavoro utilizzando 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, anche questi eventi funzionano su di essi.

Impedisci l'esecuzione di un'automacro/eventmacro utilizzando VBA in Microsoft Excel| Per impedire l'esecuzione della macro auto_open utilizzare il tasto shift.

Eventi dell'oggetto grafico utilizzando VBA in Microsoft Excel| I Grafici sono oggetti complessi e ci sono diversi componenti ad essi collegati. Per creare gli eventi del grafico utilizziamo il modulo Class.

Articoli popolari:

50 scorciatoie di Excel per aumentare la produttività | Diventa più veloce nel tuo compito. Queste 50 scorciatoie renderanno il tuo lavoro ancora più veloce su Excel.

La funzione CERCA.VERT in Excel | Questa è una delle funzioni più utilizzate e popolari di Excel che viene utilizzata per cercare il valore da diversi intervalli e fogli.

CONTA.SE in Excel 2016 | Conta i valori con le condizioni usando questa fantastica funzione. Non è necessario filtrare i dati per contare un valore specifico. La funzione Countif è essenziale per preparare la tua dashboard.

Come utilizzare la funzione SOMMA.SE in Excel | Questa è un'altra funzione essenziale della dashboard. Questo ti aiuta a riassumere i valori su condizioni specifiche.

Aiuterete lo sviluppo del sito, condividere la pagina con i tuoi amici

wave wave wave wave wave