Editor di Visual Basic: come aprirlo e utilizzarlo in Excel

Il primo passo per lavorare con VBA in Excel è familiarizzare con Visual Basic Editor (chiamato anche VBA Editor o VB Editor).

In questo tutorial, tratterò tutto ciò che c'è da sapere sull'editor VBA e alcune opzioni utili che dovresti sapere durante la codifica in Excel VBA.

Che cos'è l'editor di Visual Basic in Excel?

Visual Basic Editor è un'applicazione separata che fa parte di Excel e si apre ogni volta che si apre una cartella di lavoro di Excel. Per impostazione predefinita, è nascosto e per accedervi è necessario attivarlo.

VB Editor è il luogo in cui mantieni il codice VB.

Esistono diversi modi per ottenere il codice nell'editor VB:

  1. Quando registri una macro, crea automaticamente un nuovo modulo nell'editor VB e inserisce il codice in quel modulo.
  2. Puoi digitare manualmente il codice VB nell'editor VB.
  3. Puoi copiare un codice da un'altra cartella di lavoro o da Internet e incollarlo nell'editor VB.

Apertura dell'editor VB

Esistono vari modi per aprire l'editor di Visual Basic in Excel:

  1. Utilizzo di una scorciatoia da tastiera (più semplice e veloce)
  2. Utilizzo della scheda Sviluppatore.
  3. Utilizzo delle schede del foglio di lavoro.

Esaminiamo rapidamente ciascuno di questi.

Scorciatoia da tastiera per aprire l'editor di Visual Basic

Il modo più semplice per aprire l'editor di Visual Basic è utilizzare la scorciatoia da tastiera - ALT + F11 (tieni premuto il tasto ALT e premi il tasto F11).

Non appena lo fai, si aprirà una finestra separata per l'editor di Visual Basic.

Questa scorciatoia funziona come un interruttore, quindi quando la usi di nuovo, ti riporterà all'applicazione Excel (senza chiudere l'editor VB).

La scorciatoia per la versione Mac è Opzione + F11 o Fn + Opz + F11

Utilizzo della scheda Sviluppatore

Per aprire l'editor di Visual Basic dalla barra multifunzione:

  1. Fai clic sulla scheda Sviluppatore (se non vedi una scheda sviluppatore, leggi questo su come ottenerla).
  2. Nel gruppo Codice, fare clic su Visual Basic.

Utilizzo della scheda Foglio di lavoro

Questo è un metodo meno utilizzato per aprire l'editor Vb.

Vai a una qualsiasi delle schede del foglio di lavoro, fai clic con il pulsante destro del mouse e seleziona "Visualizza codice".

Questo metodo non aprirà solo l'editor VB, ma ti porterà anche alla finestra del codice per quell'oggetto del foglio di lavoro.

Ciò è utile quando si desidera scrivere codice che funzioni solo per un foglio di lavoro specifico. Questo è in genere il caso degli eventi del foglio di lavoro.

Anatomia dell'editor di Visual Basic in Excel

Quando apri VB Editor per la prima volta, potrebbe sembrare un po' opprimente.

Ci sono diverse opzioni e sezioni che all'inizio possono sembrare completamente nuove.

Inoltre, ha ancora un vecchio aspetto di Excel 97 giorni. Mentre Excel è migliorato enormemente nel design e nell'usabilità nel corso degli anni, l'editor VB non ha visto alcun cambiamento nel suo aspetto.

In questa sezione, ti guiderò attraverso le diverse parti dell'applicazione Visual Basic Editor.

Nota: quando ho iniziato a utilizzare VBA anni fa, ero piuttosto sopraffatto da tutte queste nuove opzioni e finestre. Ma quando ti abitui a lavorare con VBA, ti sentirai a tuo agio con la maggior parte di questi. E la maggior parte delle volte, non ti verrà richiesto di utilizzare tutte le opzioni, solo una mano piena.

Di seguito è riportata un'immagine dei diversi componenti dell'editor VB. Questi vengono quindi descritti in dettaglio nelle sezioni seguenti di questo tutorial.

Ora esaminiamo rapidamente ciascuno di questi componenti e capiamo cosa fa:

Barra dei menu

Qui è dove hai tutte le opzioni che puoi usare nell'editor VB. È simile alla barra multifunzione di Excel in cui sono presenti schede e opzioni con ciascuna scheda.

Puoi esplorare le opzioni disponibili facendo clic su ciascuno degli elementi del menu.

Noterai che la maggior parte delle opzioni in VB Editor hanno scorciatoie da tastiera menzionate accanto ad essa. Una volta che ti sei abituato ad alcune scorciatoie da tastiera, lavorare con VB Editor diventa davvero facile.

Barra degli strumenti

Per impostazione predefinita, c'è una barra degli strumenti nell'editor VB che ha alcune opzioni utili di cui probabilmente avrai bisogno più spesso. È proprio come la barra di accesso rapido in Excel. Ti dà accesso rapido ad alcune delle opzioni utili.

Puoi personalizzarlo un po' rimuovendo o aggiungendo opzioni (facendo clic sulla piccola freccia rivolta verso il basso alla fine della barra degli strumenti).

Nella maggior parte dei casi, la barra degli strumenti predefinita è tutto ciò che serve quando si lavora con VB Editor.

Puoi spostare la barra degli strumenti sopra la barra dei menu facendo clic sui tre punti grigi (all'inizio della barra degli strumenti) e trascinandola sopra la barra dei menu.

Nota: ci sono quattro barre degli strumenti nell'editor VB: Standard, Debug, Modifica e Utente. Quello che vedi nell'immagine sopra (che è anche l'impostazione predefinita) è la barra degli strumenti standard. Puoi accedere ad altre barre degli strumenti andando all'opzione Visualizza e passando il cursore sull'opzione Barre degli strumenti. Se lo desideri, puoi aggiungere una o più barre degli strumenti all'editor VB.

Esplora progetti

Project Explorer è una finestra a sinistra che mostra tutti gli oggetti attualmente aperti in Excel.

Quando lavori con Excel, ogni cartella di lavoro o componente aggiuntivo aperto è un progetto. E ognuno di questi progetti può contenere una collezione di oggetti.

Ad esempio, nell'immagine sottostante, Project Explorer mostra le due cartelle di lavoro aperte (Book1 e Book2) e gli oggetti in ciascuna cartella di lavoro (worksheet, ThisWorkbook e Module in Book1).

C'è un'icona più a sinistra degli oggetti che puoi usare per comprimere l'elenco di oggetti o espandere e vedere l'elenco completo di oggetti.

I seguenti oggetti possono far parte di Project Explorer:

  1. Tutte le cartelle di lavoro aperte: all'interno di ciascuna cartella di lavoro (chiamata anche progetto), puoi avere i seguenti oggetti:
    • Oggetto del foglio di lavoro per ogni foglio di lavoro nella cartella di lavoro
    • Oggetto ThisWorkbook che rappresenta la cartella di lavoro stessa
    • Foglio grafico oggetto per ogni foglio grafico (non sono comuni come i fogli di lavoro)
    • Moduli - Qui è dove va il codice che viene generato con un registratore di macro. Puoi anche scrivere o copiare e incollare il codice VBA qui.
  2. Tutti i componenti aggiuntivi aperti

Considera il Project Explorer come un luogo che delinea tutti gli oggetti aperti in Excel in un dato momento.

La scorciatoia da tastiera per aprire Project Explorer è Ctrl + R (tieni premuto il tasto Ctrl e poi premi R). Per chiuderlo, fai semplicemente clic sull'icona di chiusura in alto a destra nella finestra Esplora progetti.

Nota: per ogni oggetto in Project Explorer, c'è una finestra del codice in cui puoi scrivere il codice (o copiarlo e incollarlo da qualche parte). La finestra del codice viene visualizzata quando si fa doppio clic sull'oggetto.

Finestra delle proprietà

La finestra delle proprietà è dove puoi vedere le proprietà dell'oggetto selezionato. Se non hai già la finestra Proprietà, puoi ottenerla utilizzando la scorciatoia da tastiera F4 (o vai alla scheda Visualizza e fai clic su Finestra Proprietà).

La finestra delle proprietà è una finestra mobile che puoi ancorare nell'editor VB. Nell'esempio seguente, l'ho ancorato appena sotto Project Explorer.

La finestra delle proprietà ci consente di modificare le proprietà di un oggetto selezionato. Ad esempio, se voglio rendere un foglio di lavoro nascosto (o molto nascosto), posso farlo modificando la proprietà visibile dell'oggetto del foglio di lavoro selezionato.

Relazionato: Nascondere un foglio di lavoro in Excel (che non può essere visualizzato facilmente)

Finestra del codice

C'è una finestra di codice per ogni oggetto che è elencato in Project Explorer. È possibile aprire la finestra del codice per un oggetto facendo doppio clic su di esso nell'area Esplora progetti.

La finestra del codice è dove scriverai il tuo codice o copi e incolli un codice da qualche altra parte.

Quando registri una macro, il relativo codice va nella finestra del codice di un modulo. Excel inserisce automaticamente un modulo per inserirvi il codice durante la registrazione di una macro.

Relazionato: Come eseguire una macro (codice VBA) in Excel.

Finestra immediata

La finestra Immediata viene utilizzata principalmente durante il debug del codice. Un modo in cui utilizzo la finestra Immediata consiste nell'usare un'istruzione Print.Debug all'interno del codice e quindi eseguire il codice.

Mi aiuta a eseguire il debug del codice e determinare dove si blocca il mio codice. Se ottengo il risultato di Print.Debug nella finestra immediata, so che il codice ha funzionato almeno fino a quella riga.

Se non conosci la codifica VBA, potrebbe volerci del tempo per essere in grado di utilizzare la finestra immediata per il debug.

Per impostazione predefinita, la finestra immediata non è visibile nell'editor VB. Puoi ottenerlo utilizzando la scorciatoia da tastiera Control + G (oppure puoi andare alla scheda Visualizza e fare clic su "Finestra immediata").

Dove aggiungere codice nell'editor VB

Spero che ora tu abbia una comprensione di base di cos'è VB Editor e di tutte le parti che ha.

In questa sezione di questo tutorial, ti mostrerò dove aggiungere un codice VBA nell'editor di Visual Basic.

Ci sono due posti in cui puoi aggiungere il codice VBA in Excel:

  1. La finestra del codice per un oggetto. Questi oggetti possono essere una cartella di lavoro, un foglio di lavoro, un modulo utente, ecc.
  2. La finestra del codice di un modulo.

Finestra Codice Modulo Vs Finestra Codice Oggetto

Vorrei prima chiarire rapidamente la differenza tra l'aggiunta di un codice in un modulo e l'aggiunta di un codice in una finestra del codice oggetto.

Quando aggiungi un codice a uno qualsiasi degli oggetti, dipende da alcune azioni di quell'oggetto che attiveranno quel codice. Ad esempio, se desideri visualizzare tutti i fogli di lavoro in una cartella di lavoro non appena apri quella cartella di lavoro, il codice andrà nell'oggetto ThisWorkbook (che rappresenta la cartella di lavoro).

Il trigger, in questo caso, è l'apertura della cartella di lavoro.

Allo stesso modo, se si desidera proteggere un foglio di lavoro non appena viene attivato un altro foglio di lavoro, il codice per quello andrebbe nella finestra del codice del foglio di lavoro.

Questi trigger sono chiamati eventi ed è possibile associare un codice da eseguire quando si verifica un evento.

Relazionato: Ulteriori informazioni sugli eventi in VBA.

Al contrario, il codice nel modulo deve essere eseguito manualmente (oppure può essere chiamato anche da altre subroutine).

Quando si registra una macro, Excel crea automaticamente un modulo e vi inserisce il codice della macro registrata. Ora, se devi eseguire questo codice, devi eseguire manualmente la macro.

Aggiunta di codice VBA nel modulo

Mentre la registrazione di una macro crea automaticamente un modulo e inserisce il codice in esso, ci sono alcune limitazioni quando si utilizza un registratore di macro. Ad esempio, non può utilizzare cicli o condizioni If Then Else.

In questi casi, è meglio copiare e incollare il codice manualmente o scrivere tu stesso il codice.

Un modulo può essere utilizzato per contenere i seguenti tipi di codici VBA:

  1. Dichiarazioni: puoi dichiarare variabili in un modulo. La dichiarazione delle variabili consente di specificare quale tipo di dati può contenere una variabile. Puoi dichiarare una variabile solo per una subroutine o per tutte le subroutine nel modulo (o tutti i moduli)
  2. Subroutine (procedure): questo è il codice che contiene i passaggi che vuoi che VBA esegua.
  3. Procedure di funzione: questo è un codice che restituisce un singolo valore e puoi usarlo per creare funzioni personalizzate (chiamate anche funzioni definite dall'utente o UDF in VBA)

Per impostazione predefinita, un modulo non fa parte della cartella di lavoro. È necessario inserirlo prima di utilizzarlo.

Aggiunta di un modulo nell'editor VB

Di seguito sono riportati i passaggi per aggiungere un modulo:

  1. Fare clic con il pulsante destro del mouse su qualsiasi oggetto della cartella di lavoro (in cui si desidera il modulo).
  2. Passa il cursore sull'opzione Inserisci.
  3. Fare clic su Modulo.

Questo creerebbe istantaneamente una cartella chiamata Modulo e inserirebbe un oggetto chiamato Modulo 1. Se hai già inserito un modulo, i passaggi precedenti inserirebbero un altro modulo.

Una volta inserito il modulo, puoi fare doppio clic sull'oggetto modulo in Esplora progetti e si aprirà la finestra del codice per esso.

Ora puoi copiare e incollare il codice o scriverlo tu stesso.

Rimozione del modulo

Di seguito sono riportati i passaggi per rimuovere un modulo in Excel VBA:

  1. Fare clic con il pulsante destro del mouse sul modulo che si desidera rimuovere.
  2. Fare clic sull'opzione Rimuovi modulo.
  3. Nella finestra di dialogo che si apre, fare clic su No.

Nota: è possibile esportare un modulo prima di rimuoverlo. Viene salvato come file .bas e puoi importarlo in qualche altro progetto. Per esportare un modulo, fai clic con il pulsante destro del mouse sul modulo e fai clic su "Esporta file".

Aggiunta di codice alla finestra del codice oggetto

Per aprire la finestra del codice per un oggetto, è sufficiente fare doppio clic su di esso.

Quando si apre, puoi inserire il codice manualmente o copiare e incollare il codice da altri moduli o da Internet.

Nota che alcuni oggetti ti permettono di scegliere l'evento per il quale vuoi scrivere il codice.

Ad esempio, se si desidera scrivere un codice affinché accada qualcosa quando la selezione viene modificata nel foglio di lavoro, è necessario prima selezionare i fogli di lavoro dal menu a discesa in alto a sinistra della finestra del codice e quindi selezionare l'evento di modifica dal menu a discesa -in basso a destra.

Nota: questi eventi sono specifici dell'oggetto. Quando apri la finestra del codice per una cartella di lavoro, vedrai gli eventi relativi all'oggetto cartella di lavoro. Quando apri la finestra del codice per un foglio di lavoro, vedrai gli eventi relativi all'oggetto del foglio di lavoro.

Personalizzazione dell'editor VB

Sebbene le impostazioni predefinite dell'editor di Visual Basic siano sufficienti per la maggior parte degli utenti, consentono di personalizzare ulteriormente l'interfaccia e alcune funzionalità.

In questa sezione del tutorial, ti mostrerò tutte le opzioni che hai quando personalizzi VB Editor.

Per personalizzare l'ambiente VB Editor, fare clic su Strumenti nella barra dei menu e quindi fare clic su Opzioni.

Questo aprirebbe la finestra di dialogo Opzioni che ti darà tutte le opzioni di personalizzazione nell'editor VB. La finestra di dialogo "Opzioni" ha quattro schede (come mostrato di seguito) con varie opzioni di personalizzazione per Visual Basic Editor.

Esaminiamo rapidamente ciascuna di queste schede e le opzioni importanti in ciascuna.

Scheda Editor

Sebbene le impostazioni integrate funzionino bene nella maggior parte dei casi, lasciami comunque esaminare le opzioni in questa scheda.

Man mano che diventi più abile a lavorare con VBA in Excel, potresti voler personalizzare l'editor VB utilizzando alcune di queste opzioni.

Controllo automatico della sintassi

Quando si lavora con VBA in Excel, non appena si commette un errore di sintassi, si verrà accolti da una finestra di dialogo a comparsa (con una descrizione dell'errore). Qualcosa come mostrato di seguito:

Se disabiliti questa opzione, questa finestra pop-up non apparirà nemmeno quando commetti un errore di sintassi. Tuttavia, ci sarebbe un cambiamento di colore nel testo del codice per indicare che c'è un errore.

Se sei un principiante, ti consiglio di mantenere questa opzione abilitata. Man mano che acquisisci esperienza con la codifica, potresti iniziare a trovare irritanti queste finestre pop-up, quindi puoi disabilitare questa opzione.

Richiedi dichiarazione variabile

Questa è un'opzione che consiglio di abilitare.

Quando lavori con VBA, utilizzerai variabili per contenere diversi tipi di dati e oggetti.

Quando abiliti questa opzione, inserisce automaticamente l'istruzione "Option Explicit" nella parte superiore della finestra del codice. Questo ti costringe a dichiarare tutte le variabili che stai utilizzando nel tuo codice. Se non dichiari una variabile e provi a eseguire il codice, mostrerà un errore (come mostrato di seguito).

Nel caso precedente, ho usato la variabile Var, ma non l'ho dichiarata. Quindi, quando provo a eseguire il codice, mostra un errore.

Questa opzione è molto utile quando hai molte variabili. Spesso mi aiuta a trovare nomi di variabili errati poiché sono considerati non dichiarati e viene mostrato un errore.

Nota: quando abiliti questa opzione, non ha effetto sui moduli esistenti.

Membro dell'elenco automatico

Questa opzione è abbastanza utile in quanto ti aiuta a ottenere un elenco di proprietà dei metodi per un oggetto.

Ad esempio, se voglio eliminare un foglio di lavoro (Foglio1), devo utilizzare la riga Sheet1.Delete.

Mentre digito il codice, non appena digito il punto, mi mostrerà tutti i metodi e le proprietà associati all'oggetto Foglio di lavoro (come mostrato di seguito).

La funzione di elenco automatico è eccezionale in quanto ti consente di:

  • Seleziona rapidamente la proprietà e il metodo dall'elenco e risparmia tempo
  • Ti mostra tutte le proprietà e i metodi di cui potresti non essere a conoscenza
  • Evita di fare errori di ortografia

Questa opzione è abilitata per impostazione predefinita e consiglio di mantenerla in questo modo.

Opzioni di informazioni rapide automatiche

Quando digiti una funzione nel foglio di lavoro di Excel, mostra alcune informazioni sulla funzione, come gli argomenti che richiede.

Allo stesso modo, quando si digita una funzione in VBA, vengono mostrate alcune informazioni (come mostrato di seguito). Ma affinché ciò accada, devi assicurarti che l'opzione Auto Quick Info sia abilitata (che è per impostazione predefinita).

Opzioni suggerimenti dati automatici

Quando esamini il tuo codice riga per riga e posizioni il cursore sopra il nome di una variabile, ti mostrerà il valore della variabile.

Lo trovo abbastanza utile quando si esegue il debug del codice o si passa attraverso il codice riga per riga che contiene dei loop.

Nell'esempio sopra, non appena metto il cursore sulla variabile (var), mostra il valore che contiene.

Questa opzione è abilitata per impostazione predefinita e ti consiglio di mantenerla così.

Rientro automatico

Poiché i codici VBA possono diventare lunghi e disordinati, l'utilizzo del rientro aumenta la leggibilità del codice.

Quando scrivi il codice, puoi indentare usando il tasto tab.

Questa opzione garantisce che quando hai finito con la riga rientrata e premi invio, la riga successiva non inizia dall'inizio, ma ha lo stesso rientro della riga precedente.

Nell'esempio sopra, dopo aver scritto la riga Debug.Print e aver premuto invio, inizierà proprio sotto di essa (con lo stesso livello di rientro).

Trovo utile questa opzione e disattivarla significherebbe far rientrare manualmente ogni riga in un blocco di codice che voglio rientrare.

Se lo desideri, puoi modificare il valore del rientro. Lo tengo al valore predefinito.

Trascina e rilascia la modifica del testo

Quando questa opzione è abilitata, ti consente di selezionare un blocco di codice e trascinarlo e rilasciarlo.

Risparmia tempo poiché non devi prima tagliarlo e poi incollarlo. Puoi semplicemente selezionarlo e trascinarlo.

Questa opzione è abilitata per impostazione predefinita e ti consiglio di mantenerla così.

Predefinito per la visualizzazione dell'intero modulo

Quando questa opzione è abilitata, potrai vedere tutte le procedure di un modulo in un unico elenco scorrevole.

Se disabiliti questa opzione, sarai in grado di vedere solo un modulo alla volta. Dovrai effettuare una selezione del modulo che desideri visualizzare dal menu a discesa in alto a destra nella finestra del codice.

Questa opzione è abilitata per impostazione predefinita e consiglio di mantenerla in questo modo.

Un motivo per cui potresti voler disabilitarlo quando hai più procedure che sono enormi e scorrerle richiede tempo, o quando hai molte procedure e vuoi trovarle rapidamente invece di perdere tempo a scorrere.

Separatore di procedura

Quando questa opzione è abilitata, vedrai una linea (una specie di divisore) tra due procedure.

Lo trovo utile in quanto mostra visivamente quando una procedura termina e l'altra inizia.

È abilitato per impostazione predefinita e consiglio di mantenerlo in questo modo.

Scheda Formato Editor

Con le opzioni nella scheda Formato editor, puoi personalizzare l'aspetto del tuo codice nella finestra del codice.

Personalmente, mantengo tutte le opzioni predefinite perché mi va bene. Se lo desideri, puoi modificarlo in base alle tue preferenze.

Per apportare una modifica, devi prima selezionare un'opzione nella casella Colori codice. Una volta selezionata un'opzione, è possibile modificare il primo piano, lo sfondo e il colore dell'indicatore.

In questa scheda è possibile impostare anche il tipo e la dimensione del carattere. Si consiglia di utilizzare un carattere a larghezza fissa come Courier New, poiché rende il codice più leggibile.

Tieni presente che il tipo di carattere e l'impostazione della dimensione rimarranno le stesse per tutti i tipi di codice (ovvero, tutti i tipi di codice mostrati nella casella del colore del codice).

Di seguito è riportata un'immagine in cui ho selezionato Breakpoint e posso modificarne la formattazione.

Nota: l'opzione Barra dell'indicatore del margine, quando abilitata, mostra una piccola barra del margine a sinistra del codice. È utile in quanto mostra indicatori utili durante l'esecuzione del codice. Nell'esempio sopra, quando imposti un punto di interruzione, mostrerà automaticamente un punto rosso a sinistra della linea nella barra dei margini. In alternativa, per impostare un punto di interruzione, è sufficiente fare clic sulla barra dei margini a sinistra della riga di codice che si desidera come punto di interruzione.

Per impostazione predefinita, la barra dell'indicatore del margine è abilitata e consiglio di mantenerla in questo modo.

Uno dei miei studenti del corso VBA ha trovato utili queste opzioni di personalizzazione ed era daltonica. Usando le opzioni qui, è stata in grado di impostare il colore e i formati che le hanno reso facile lavorare con VBA.

Scheda Generale

La scheda Generale ha molte opzioni ma non è necessario modificarle.

Ti consiglio di mantenere tutte le opzioni così come sono.

Un'opzione importante da conoscere in questa scheda è la gestione degli errori.

Per impostazione predefinita, è selezionato "Interrompi su errori non gestiti" e consiglio di mantenerlo in questo modo.

Questa opzione significa che se il tuo codice incontra un errore e non hai già gestito quell'errore nel tuo codice, allora si interromperà e si fermerà. Ma se hai risolto l'errore (ad esempio utilizzando le opzioni On Error Resume Next o On Error Goto), non si interromperà (poiché gli errori non vengono gestiti).

Scheda di aggancio

In questa scheda, puoi specificare quali finestre vuoi ancorare.

Docking significa che puoi correggere la posizione di una finestra (come Esplora progetti o la finestra Proprietà) in modo che non galleggi e puoi visualizzare tutte le diverse finestre contemporaneamente.

Se non attracchi, sarai in grado di visualizzare una finestra alla volta in modalità a schermo intero e dovrai passare all'altra.

Consiglio di mantenere le impostazioni predefinite.

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

wave wave wave wave wave