Come usare gli eventi con l'oggetto applicazione in Excel

December 6

Come usare gli eventi con l'oggetto applicazione in Excel


il linguaggio di programmazione di Microsoft Excel, Visual Basic, Applications Edition (VBA), fa uso di oggetti virtuali per estendere le funzionalità di Excel. Uno di questi oggetti è l'oggetto Application, che consente ai programmatori di VBA di scrivere programmi che incidono l'applicazione Excel stesso. Eventi di questo oggetto causa subroutine chiamate "funzioni di eventi" per eseguire. Ogni codice di programma si inserisce in queste funzioni verrà eseguito quando si verifica l'evento (ad esempio nuova creazione cartella di lavoro, la selezione del foglio di lavoro) che la funzione è stato scritto per. Un vantaggio di scrivere tale codice è la capacità di schermo di dati come l'utente entra.

istruzione

1 Open Excel ambiente di programmazione VBA facendo clic destro su scheda di qualsiasi foglio di lavoro in una cartella di lavoro aperta, quindi selezionando la voce "Visualizza codice".

2 Fare doppio clic su di fila "Questa cartella di lavoro" del riquadro "progetto" per aprire una nuova finestra del codice.

3 Incollare il seguente codice nella prima riga vuota della nuova finestra. Questa subroutine, che verrà eseguito quando si riapre la cartella di lavoro corrente, crea una nuova istanza di oggetto Application di Excel. In questo modo, la subroutine rende le funzioni degli eventi dell'oggetto Application disponibile per scrivere programmi per.

WithEvents privati ​​objApp come application

Private Sub Workbook_Open ()

Set objApp = Application

End Sub

4 Fare clic sulla sinistra nell'elenco a discesa nella parte superiore della finestra del codice. VBA visualizza un elenco di oggetti che è possibile scrivere evento codice funzione per. Uno degli oggetti nella lista è la variabile "objApp" hai dichiarato e definito nel passaggio precedente. Selezionare l'oggetto.

5 Fai clic sul menu a discesa a destra della finestra del codice, e selezionare la funzione di evento "NewWorkbook". VBA creerà una funzione di evento vuoto che si scrive il codice per.

6 Incollare o digitare il seguente codice di programma sopra dichiarazione "End Sub" della subroutine "objApp_NewWorkbook".

MsgBox "Hai creato una nuova cartella di lavoro."

7 Premere il tasto "Alt-F4" per chiudere l'ambiente VBA, e premere la stessa sequenza di tasti per chiudere Excel. Salvare la cartella di lavoro con qualsiasi nome di file valido, e con una estensione di "* .xlsm." Salvare e riaprire la cartella di lavoro esegue la funzione evento Workbook_Open avete scritto al punto 3. Questa funzione deve essere eseguito per abilitare le funzioni di eventi objApp a correre.

8 Riaprire la cartella di lavoro che avete appena chiuso, quindi premere "Control-N" per creare una nuova cartella di lavoro. Il codice che hai scritto per la subroutine objApp_NewWorkbook al punto 6 verrà eseguito, e visualizzare il messaggio "Hai creato una nuova cartella di lavoro."

9 Premere il tasto "Alt-F11" per rientrare l'ambiente VBA, quindi incollare il seguente nuova funzione di evento in ogni spazio vuoto nella finestra del codice. Questa funzione di evento, che si svolgerà quando si modifica qualsiasi cella della cartella di lavoro attualmente aperto, sostituisce il testo "JS" con il testo "John Smith".

Private Sub objApp_SheetChange (ByVal Sh come oggetto, ByVal Target As Range)

x Dim

x = Target.Value

Se (x = "JS") Poi

x = "John Smith"

Target.Value = x

Finisci se

End Sub

10 Ritorno a Excel premendo il tasto "Alt-F11", quindi digitare il testo "JS" in una cella. Quando si preme "Invio", la funzione di evento objApp_SheetChange hai scritto nel passaggio precedente verrà eseguito, e cambiare "JS" in "John Smith".