VBA - Apertura e utilizzo dell'editor di Visual Basic (VBE) in Excel

Questo tutorial ti mostrerà come aprire e programmare nell'editor di Visual Basic in VBA.

Apertura dell'editor di Visual Basic

Esistono alcuni modi per accedere a Visual Basic Editor (VBE) in Excel.

premere Alt + F11 sulla tua tastiera.

O

Clic Visualizza > Macro > Visualizza macro. Da qui puoi Modificare una macro esistente o Creare uno nuovo. Entrambe le opzioni aprono l'editor VB.

O

Sviluppatore > Visual Basic

Nota: se non vedi la barra multifunzione per sviluppatori, dovrai abilitarla.

Per abilitare la barra multifunzione dello sviluppatore

Clicca sul File scheda nella barra multifunzione e scendi su Opzioni. Nel Personalizza il nastro opzioni, spuntare Sviluppatore casella di controllo. Questo è disattivato per impostazione predefinita, quindi dovrai attivarlo per vedere la scheda sulla barra multifunzione.

Clic ok.

La scheda Sviluppatore apparirà sulla barra multifunzione. Fare clic su Visual Basic all'inizio della barra multifunzione per accedere all'editor di Visual Basic.

Comprensione della schermata VBE

La schermata VBE è mostrata nel grafico sottostante.

L'esploratore del progetto

Il Project Explorer ti permette di vedere come è organizzato il Progetto in cui stai lavorando. Puoi vedere quanti moduli e moduli sono archiviati nel progetto e puoi navigare tra questi moduli e moduli. Un modulo è il luogo in cui è archiviato il codice nella cartella di lavoro, quando si registra una macro, verrà archiviato in un modulo standard, che per impostazione predefinita sarà denominato "Modulo 1'.

Ciascuno dei fogli di lavoro nel tuo file Excel ha anche un modulo dietro di esso, così come la cartella di lavoro stessa. Quando inserisci un nuovo foglio nella cartella di lavoro tramite la schermata principale di Excel, vedrai apparire un modulo aggiuntivo in Esplora progetti.

Fare doppio clic su un modulo per passare al codice per quel modulo.

Puoi anche fare clic sul menu Finestra sulla barra degli strumenti e selezionare il modulo lì per passare al codice per quel modulo.

Tipo di moduli

I moduli sono organizzati in 5 diverse tipologie.

  1. Moduli standard - la maggior parte del tuo codice andrà in questo tipo di modulo. Quando registri una macro, questa viene inserita in un modulo standard. Quando si scrive una procedura generale da utilizzare in tutta la cartella di lavoro, normalmente viene inserita anche in un modulo standard.
  2. Moduli della cartella di lavoro - questo modulo contiene il codice che è unico per quella singola cartella di lavoro. La maggior parte del codice in questo tipo di moduli è noto come EVENTI. Un evento può verificarsi quando una cartella di lavoro viene aperta o chiusa, ad esempio. Il modulo può anche contenere codice scritto dall'utente e utilizzato dagli eventi.
  3. Moduli foglio - questo modulo contiene il codice univoco di quel singolo foglio. Possono verificarsi quando si fa clic su un foglio, ad esempio (il Fare clic su Evento), o quando modifichi i dati in una cella. Questo modulo può anche contenere codice scritto da te e chiamato dagli eventi.
  4. Moduli modulo - questo è il modulo dietro un modulo personalizzato che puoi creare. Ad esempio, puoi creare un modulo per contenere i dettagli di una fattura, con un pulsante OK, il codice dietro il pulsante (l'evento clic) contiene il codice che verrà eseguito quando si fa clic sul pulsante.
  5. Moduli di classe - questo modulo viene utilizzato per creare oggetti in fase di esecuzione. I moduli di classe sono utilizzati dai programmatori Advanced VBA e verranno trattati in una fase successiva.

Inserimento di un modulo o modulo nel codice

Per inserire un nuovo modulo nel tuo codice, clicca su Inserire opzione sulla barra dei menu e fare clic su Modulo.

Oppure clicca su Inserisci modulo pulsante che troverai sulla barra multifunzione standard.

Per inserire un nuovo modulo utente nel tuo codice, seleziona il pulsante Modulo utente opzione.

Apparirà un nuovo modulo utente in Esplora progetti e verrà mostrato nella finestra del codice a destra.

Puoi anche inserire a Modulo di classe

Un modulo di classe viene utilizzato per inserire oggetti nel progetto VBA.

Rimozione di un modulo o modulo da Esplora progetti

Fare clic con il pulsante destro del mouse sul modulo o sul modulo che si desidera rimuovere per visualizzare il menu di scelta rapida del pulsante destro del mouse.

Clic Rimuovere (in questo caso UserForm1… )

O

Clicca sul File menu, quindi fare clic su Rimuovi (UserForm1).

Verrà visualizzata una finestra di avviso che chiede se si desidera esportare il modulo o il modulo prima di rimuoverlo. L'esportazione del modulo o del modulo consente di salvarlo come singolo file per utilizzarlo in un altro progetto Excel in un altro momento.

Il più delle volte quando rimuovi un modulo o lo formuli è perché non ne hai bisogno, quindi fai clic su No.

La finestra delle proprietà

Vedrai la finestra delle proprietà sotto il Esplora progetti. Potrebbe essere necessario attivarlo.

premere F4 o clicca Visualizzazione, Finestra delle proprietà.

La finestra delle proprietà ti consente di vedere le proprietà per il particolare modulo o modulo selezionato nel Esplora progetti. Quando si lavora in moduli, è possibile utilizzare la finestra delle proprietà per modificare il nome del modulo. Questa è l'unica proprietà disponibile per un modulo. Tuttavia, quando si lavora con i moduli, saranno disponibili molte più proprietà e la finestra Proprietà viene quindi ampiamente utilizzata per controllare il comportamento dei moduli e dei controlli contenuti nel modulo.

Quando registri una macro, questa viene automaticamente inserita in un modulo standard. Il modulo si chiamerà 'Modulo 1' e qualsiasi codice contenuto in quel modulo è disponibile per essere utilizzato in tutto il progetto. Dovresti rinominare il tuo modulo con qualcosa di significativo, che renderebbe il tuo codice facile da trovare se dovessi aggiungere più moduli al progetto.

Puoi anche rinominare i tuoi moduli.

Se hai rinominato il tuo foglio in Excel, il nome del foglio verrà visualizzato come nome del foglio tra parentesi dopo Foglio1.

Se vuoi cambiare il nome del modulo dietro il foglio, puoi cambiarlo nello stesso modo in cui cambi il nome del modulo e del modulo utente, cambiando la proprietà Nome nella finestra Proprietà.

Stanco di cercare esempi di codice VBA? Prova AutoMacro!

La finestra del codice

La finestra del codice ti mostra le sottoprocedure e le funzioni che sono contenute nei tuoi moduli - ti mostra il codice effettivo. Quando registri una macro, verrà creata una sottoprocedura per te. Se aggiungi un tasto di scelta rapida alla macro, verrà visualizzato come commento nella macro per farti sapere qual è il tasto di scelta rapida che hai assegnato alla macro.

Nella parte superiore della finestra del codice ci sono due caselle combinate. Questi consentono di vedere su quale oggetto (se presente) all'interno del Modulo si sta lavorando e su quale procedura si sta lavorando.

Nell'esempio sopra, non stiamo lavorando su nessun oggetto, quindi questo è impostato su generale, ma stiamo lavorando all'interno della procedura Gridlines.

Se avessimo più di una procedura in questo modulo, potremmo usare la casella combinata sopra per navigare verso le altre procedure.

Capire il Codice

Ci sono 2 tipi di procedure - Sottoprocedure e Procedure di funzionamento.

Sottoprocedure

Il registratore di macro può registrare solo procedure Sub. Una procedura Sub fa le cose. Eseguono azioni come la formattazione di una tabella o la creazione di una tabella pivot o, nell'esempio della griglia, la modifica delle impostazioni di visualizzazione della finestra attiva. La maggior parte delle procedure scritte sono sottoprocedure. Tutte le macro sono sottoprocedure.

Una sottoprocedura inizia con a Sub istruzione e termina con an Fine sottotitolo dichiarazione. Il nome della procedura è sempre seguito da parentesi.

123 Sub HideGridLines()ActiveWindow.DisplayGridlines = FalseFine sottotitolo

Procedure di funzione

Una routine Function restituisce un valore. Questo valore può essere un singolo valore, una matrice, un intervallo di celle o un oggetto. Le funzioni di solito eseguono qualche tipo di calcolo. Le funzioni in Excel possono essere utilizzate con la funzione guidata o possono essere chiamate da procedure secondarie.

123 Funzione chili (libbre come doppio)Chili = (libbre/2,2)Fine funzione

Questa funzione può essere utilizzata nella finestra di dialogo Inserisci funzione in Excel per convertire libbre in chilogrammi.

Creazione di una nuova procedura

Prima di creare la tua nuova procedura, assicurati di essere nel modulo in cui desideri memorizzare la procedura. Puoi creare una nuova procedura cliccando sul menu Inserisci, Procedura;

oppure puoi cliccare sull'icona sulla barra degli strumenti

Apparirà la seguente finestra di dialogo

  1. Digita il nome della tua nuova procedura nella casella del nome - questa deve iniziare con una lettera dell'alfabeto e può contenere lettere e numeri e avere un massimo di 64 caratteri.
  2. Puoi avere un Sottoprocedura, un Procedura di funzione o un Proprietà procedura. (Le proprietà vengono utilizzate nei moduli di classe e impostano le proprietà per i controlli ActiveX che potresti aver creato).
  3. Puoi anche definire l'ambito della procedura Pubblico o Privato. Se la procedura è pubblica (default), allora potrà essere utilizzata da tutti i moduli del progetto mentre se la procedura è privata potrà essere utilizzata solo da questo modulo.
  4. È possibile dichiarare le variabili locali in questa procedura come Statiche (questo ha a che fare con l'ambito della variabile e rende pubblica una variabile a livello di procedura locale per l'intero modulo). Non useremo questa opzione.

Dopo aver compilato tutti i dettagli pertinenti, fare clic su ok.

Quindi digitare il codice tra le istruzioni Sub e End Sub.

IN ALTERNATIVA - puoi digitare le istruzioni Sub e End Sub nel tuo modulo esattamente come appare sopra. Non è necessario inserire la parola Public davanti alla parola sub - se questa parola viene omessa, tutte le procedure nel modulo vengono automaticamente considerate pubbliche.

Poi scrivi Sub e poi il nome della procedura seguito da parentesi.

cioè:

1 Sottoprova()

Il Fine sottotitolo la dichiarazione apparirà automaticamente.

Programmazione VBA | Il generatore di codice funziona per te!

Scrivere un codice facile da capire e da navigare

Aggiunta di commenti

Prendi l'abitudine di inserire commenti nel codice per ricordarti in una fase successiva della funzionalità del codice.

Puoi inserire un commento nel tuo codice ma digitando un apostrofo sulla tastiera oppure puoi attivare la barra degli strumenti Modifica e utilizzare il pulsante di commento che appare su quella barra degli strumenti.

Fare clic con il pulsante destro del mouse sulle barre degli strumenti.

Selezionare Modificare.

Fare clic sul pulsante del commento per inserire un commento nel codice.

NOTA: Di solito usi il pulsante di blocco dei commenti solo quando hai poche righe di codice che desideri commentare (e non eliminare). È più facile per un singolo commento usare un apostrofo.

Rientro

Una buona abitudine da prendere è quella di indentare il codice rendendo facile la lettura del codice e la visualizzazione delle diverse parti del codice.

Ci possono essere molti livelli di rientro, a seconda della logica del tuo codice.

Maiuscole vs minuscole

VBA adatta tutto il codice al caso corretto, quindi se digiti TUTTO IN MAIUSCOLO o tutto in minuscolo, il codice verrà riaggiustato per essere nel caso corretto!

Programmazione VBA | Il generatore di codice funziona per te!

Completamento automatico

Quando modifichi il tuo codice, noterai che VBA cerca di aiutarti suggerendoti il ​​codice che puoi digitare. Questo è noto come completamento automatico.

Trapping e debug degli errori

Esistono 4 tipi di errori che possono verificarsi quando si scrive codice VBA: errori di sintassi, errori di compilazione, errori di runtime ed errori logici.

Errori di sintassi

Questi si verificano quando si scrive il codice in modo errato. Ciò è ampiamente impedito da VBA attivando l'opzione Controllo sintassi. Normalmente è attivo per impostazione predefinita, ma se è spento, accendilo andando su Utensili, Opzioni e clicca Controllo automatico della sintassi.

Se digiti il ​​codice in modo errato (ad esempio escludendo qualcosa che dovrebbe essere nel codice), apparirà una finestra di messaggio mentre stai scrivendo il codice dandoti l'opportunità di modificare il codice.

Errori di compilazione

Questi si verificano quando nel codice manca qualcosa che impedisce l'esecuzione del codice. L'errore non viene visualizzato quando si scrive il codice, ma si verifica quando si tenta di eseguire il codice.

Programmazione VBA | Il generatore di codice funziona per te!

Errori di runtime

Questi si verificano quando si esegue il codice e la sintassi e la compilazione sono corrette, ma si verifica qualcos'altro per impedire la corretta esecuzione del codice.

In questo caso, Sheet4 non esiste. Questo messaggio di errore è più utile dei messaggi di errore di compilazione poiché ti dà l'opportunità di eseguire il debug del codice e vedere perché non funziona.

Clic Debug. Il codice si fermerà all'errore ed evidenzierà l'errore in giallo, consentendoti di correggere l'errore.

Modifica Foglio4 in Foglio2 (poiché il Foglio 2 esiste e il Foglio 4 non esiste).

premere F5 oppure clicca su Continua pulsante sulla barra degli strumenti.

Errori logici

Questi sono i più difficili da trovare. Nel loro caso, il codice è scritto correttamente ma la logica effettiva del codice è imperfetta, quindi potresti non ottenere il risultato desiderato dal codice. Per gli errori logici, l'intercettazione degli errori è essenziale.

Esistono 2 tipi di trappole di errore

In caso di errore Vai a

Il codice seguente serve per aprire la finestra di dialogo Apri file - ci darà un errore se l'utente fa clic Annulla.

Quando si esegue il codice, viene visualizzata la finestra di dialogo Apri file.

Quando quindi fai clic su Annulla, si verificherà l'errore.

Il seguente trap di errore continuerà il codice alla funzione di uscita del codice e restituirà il messaggio.

Questo utilizza On Error GoTo per uscire dalla funzione.

Quando esegui il codice e fai clic su Annulla, verrà visualizzata la finestra di messaggio.

In caso di errore Riprendi Avanti

Se metti il In caso di errore Riprendi Avanti Istruzione nel codice, la riga che contiene l'errore verrà ignorata e il codice continuerà.

Ad esempio, se l'utente fa clic su Annulla nel codice seguente, il codice non darà un errore di runtime, ma terminerà senza che il codice esegua ulteriori operazioni.

Ci sono momenti in cui questo è molto utile ma può anche essere molto pericoloso in alcune circostanze in quanto non restituisce un messaggio sul motivo per cui hai ottenuto un errore.

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

wave wave wave wave wave