Cos’è l’editor Vba anche chiamato Visual basic editor? È lo strumento che utilizziamo per creare e gestire le macro e gli automatismi dentro Excel.
Nel post “Introduzione al Visual Basic Editor” abbiamo introdotto questo strumento destinato alla creazione e alla gestione delle macro. Oggi cerchiamo di dare una visione più ampia e precisa di cos’è veramente e degli strumenti che lo compongono.
Questa guida è utile a chi sta imparando il vba o vuole imparare a usarlo o a chi cerca soltanto di imparare a usare il vbe per la gestione delle macro nei suoi fogli di lavoro.
Cos’è l’editor Vba?
È un ambiente di sviluppo e allo stesso tempo un set di strumenti utili per creare, modificare e testarle macro. Ma è anche uno strumento per creare maschere da cui comandare il foglio di lavoro, creare finestre di dialogo con cui interagire con l’operatore anche in modi evoluti, automatizzare quasi tutte le attività del foglio di lavoro, perfino pilotare software diversi e interagire con oggetti esterni a Excel.
Naturalmente per fare tutto questo è necessario conoscere il linguaggio vba e imparare a usare l’editor.
Come si accede all’editor Vba?
L’editor vba si apre nei seguenti modi:
- premendo Alt+F11, il modo più semplice,
- cliccando sul comando “Visual Basic” del menù “Sviluppo” della barra principale;
- cliccando sul comando “Visualizza codice” del menù “Sviluppo” della barra principale;
- dalla finestra “Macro” (puoi aprirla con Alt+F8), cliccando sul pulsante “Modifica”, o “Esegui istruzioni” dopo aver selezionato una macro, oppure “Crea” dopo aver digitato il nome della macro che vuoi realizzare;
- in caso di errore durante l’esecuzione di una macro, cliccando sul pulsante “Debug” della finestra con il messaggio di errore;
- cliccando col destro del mouse sul nome della pagina e poi con sinistro sul comando “Visualizza Codice”.
Come è fatto l’editor Vba?
L’editor vba è composto da:
- barra dei menu e la barra dei comandi principali, in alto nella finestra;
- finestra “gestione progetti”, di solito sotto la barra in alto a sinistra (Ctrl+R per aprirla);
- la finestra “proprietà”, di solito in basso a sinistra (F4 per aprirla);
- finestra “codice”, la finestra principale a fianco delle prime due (F2 per aprirla);
- eventuali altri finestre che possono essere abilitate dal menu “visualizza”, come la finestra “variabili locali”.
Le finestre possono essere spostate, ridimensionate e chiuse come preferiamo, anche se le prime due finestre tenderanno sempre ad agganciarsi ai bordi della finestra principale dell’editor vba e sono impostate per essere sempre visibili anche se si massimizza la finestra “codice”. Le finestre possono essere riaperte e richiamate attraverso i comandi del menu “Visualizza” o gli opportuni tasti (es: premi F7 per riaprire la finestra “codice”).
Finestra dei Progetti
La finestra contiene l’elenco di tutti i progetti aperti in excel e gli oggetti che li compongono. Un progetto è l’insieme di oggetti memorizzati in una cartella di lavoro. Come distinguere progetti e oggetti?
Studiando la finestra vedrai:
- i plugin installati, come “Solver”, il risolutore, che se cliccati chiedono una password o avvertono che non possono essere visualizzati i componenti;
- i fogli di lavoro, di solito nominati “VBAproject (nome del foglio di lavoro)”, di cui si possono vedere le componenti, cioè:
- l’elenco delle pagine presenti nel foglio di lavoro, con cui si possono gestire gli eventi relativi alle singole pagine, cioè si può eseguire codice all’accadere di determinate attività, come l’attivazione della pagina, o all’applicazione di modifiche alla pagina, eccetera;
- l’oggetto “Thisworkbook”, o “Questa cartella di lavoro”, con cui si possono gestire gli eventi relativi all’intero foglio di lavoro, per esempio per intervenire sul foglio di lavoro all’apertura;
- i moduli, cioè dei contenitori delle macro, subroutine e funzioni, se presenti;
- le maschere, o form, che si possono usare per lanciare automatismi o interagire con essi;
- i moduli di classe, cioè i contenitori delle classi, i “modelli” che ci consentono di creare oggetti, le rappresentazioni logiche di qualcosa; le classi contengono le informazioni e il codice necessario all’oggetto (metodi, proprietà, campi/variabili, eventi, eccetera).
La finestra progetti contiene tre pulsanti in alto sotto il titolo della finestra:
- Visualizza Codice, per aprire e visualizzare il modulo dell’oggetto selezionato,
- Visualizza Oggetto, per visualizzare l’oggetto, passando anche al foglio di lavoro,
- Espandi/Comprimi cartelle, per cambiare la visualizzazione gerarchica del diagramma ad albero.
Inoltre se si clicca sui “+” o “–“ a sinistra dei nomi dei progetti potremo aprire o chiudere la visualizzazione degli oggetti che contengono.
In sintesi la finestra “progetto” contiene un diagramma ad albero dei fogli di lavoro aperti e degli oggetti in essi contenuti (pagine, moduli, ecc…) e serve a muoversi tra gli oggetti sopra elencati.
Le finestre seguenti invece visualizzano le informazioni sull’oggetto e il codice in esso contenuto.
Finestra delle Proprietà
La finestra visualizza appunto le proprietà dell’oggetto selezionato, cioè le caratteristiche e le informazioni relative, come nome, colore, dimensione, eccetera. Per modificare l’aspetto e il comportamento di un oggetto dobbiamo cambiarne le proprietà. La finestra contiene una tabella a due colonne che mostra l’elenco delle proprietà e il valore impostato e che può essere visualizzata in ordine “Alfabetico” o per “Categoria”.
Finestra del Codice
La finestra “codice” mostra il codice presente nei moduli o nelle componenti selezionate. Ogni modulo può contenere una o più macro che possono essere selezionate anche attraverso il menù a tendina in alto a destra. Per identificare quale modulo di quale progetto o oggetto è aperto dobbiamo guardare la barra della finestra in alto, o la finestra progetti a sinistra.
La visualizzazione di default è a “modulo intero” in cui vediamo un’unica pagina a scorrimento verticale con tutte le macro, separate da una sottile linea grigia. Attraverso i pulsanti nell’angolo in basso a sinistra della finestra è possibile passare alla visualizzazione per “routine” che mostra solo il codice sorgente di una macro alla volta. In questa modalità, per passare da una macro all’altro basta premere i pulsanti PagSu o PagGiù, o usare il menù a tendina in alto a destra.
I menu posti nella barra in alto della finestra dell’editor permettono di eseguire comandi o attività sull’editor, sul codice o parte di esso. I menù sono:
- File, per la gestione del foglio e dei file,
- Modifica, per gestire o supportare le modifiche del codice,
- Visualizza, per visualizzare oggetti o componenti dell’editor,
- Inserisci, per inserire moduli, maschere e nuovi oggetti in generale,
- Formato, per allineare e gestire il posizionamento degli oggetti,
- Debug, il più usato in quanto contiene gli strumenti per analizzare ed eseguire il codice,
- Esegui, i comandi diretti per l’esecuzione, presenti anche nella barra delle icone,
- Strumenti, per aggiungere librerie a altri strumenti,
- Aggiunte, per gestire gli addin, i programmi aggiuntivi,
- Finestra, per la gestione delle finestre,
- ?, il menù per la guida e le informazioni.
Ogni menu è a tendina e si apre con un clic del mouse, mostrando i comandi a disposizione.
Ecco una veloce descrizione dei comandi:
File
Contiene i comandi per la gestione dei file e per la stampa:
- Salva: salva il progetto selezionato (Ctrl+S),
- Importa file: aggiunge un modulo, una maschera o un modulo di classe al progetto selezionato,
- Esporta file: salva il modulo, maschera o modulo di classe in un file nella cartella che selezioni con il nome che imposti,
- Rimuovi: elimina il modulo o la maschera selezionata,
- Stampa: stampa il modulo selezionato,
- Chiudi: chiude l’editor e torna a Excel
Modifica
Contiene i comandi per manipolare il codice:
- Annulla: annulla il comando più recente (Ctrl+Z),
- Ripeti: ripete il comando annullato per ultimo,
- Taglia: elimina il testo o l’oggetto selezionato conservandolo negli appunti,
- Copia: copia il testo, o l’oggetto selezionato (Ctrl+C),
- Incolla: incolla il testo, o l’oggetto selezionato dagli appunti (Ctrl+V),
- Cancella: elimina il testo, o l’oggetto selezionato,
- Seleziona tutto: seleziona tutto il testo di un modulo, o tutti gli oggetti di una maschera (Ctrl+A),
- Trova: trova una stringa nel codice (Ctrl+F),
- Trova successivo: ripete la ricerca (F3),
- Sostituisci: trova una stringa e la sostituisce con un’altra (Ctrl+H),
- Aumenta rientro: aumenta il rientro di una tabulazione (usa Tab)
- Riduci rientro: riduce la tabulazione (usa Maius+Tab)
- Elenca proprietà/metodi: apre un elenco a discesa che mostra tutte le proprietà e i metodi dell’oggetto che abbiamo digitato o selezionato (Ctrl+J), viene automaticamente attivato quando si digita un carattere che prevede la presenza di una proprietà o di un metodo, di solito un punto dopo un oggetto,
- Elenca costanti: apre un elenco a discesa che mostra le costanti valide da assegnare all’oggetto a sinistra dell’uguale che precedente il cursore,
- Informazioni Rapide: apre una finestra di aiuto che mostra la sintassi corretta (Ctrl+I),
- Informazioni parametri: apre una finestra di aiuto che mostra i parametri di una procedura (Ctrl+Masiusc+I),
- Completa parola: permette all’editor di completare la parola che stiamo digitando (Ctrl+Spazio),
- Segnalibri: apre un menu che permette di inserire, eliminare, o saltare a un segnalibro, allo scopo di marcare una riga del codice per poter ritornarci velocemente. I segnalibri non possono essere nominati e devono essere scorsi in sequenza.
Visualizza
Contiene i comandi per gestire gli elementi dell’editor:
- Codice: attiva la finestra del codice (F7),
- Oggetto: visualizza l’oggetto selezionato nella finestra Progetti,
- Definizione: visualizza la dichiarazione della variabile selezionata (Maiusc+F2),
- Ultima posizione: salta alla posizione successiva della variabile (Ctrl+Maiusc+F2),
- Visualizzatore oggetti: apre la libreria degli oggetti (F2), una finestra in cui sono elencati tutti gli oggetti e le loro caratteristiche e in cui è possibile eseguire ricerche,
- Finestra immediata: visualizza la finestra immediata, utile in fase di debugging delle macro in quanto permette durante le sospensioni di elaborazione di digitare comandi per analizzare i valori delle variabili e delle espressioni,
- la Finestra variabili locali: visualizza una finestra ancorabile, molto utile in fase di debugging, che mostra i valori delle variabili durante le sospensioni dell’elaborazione,
- Finestra Espressioni di controllo: visualizza la finestra Controllo del debugger in cui è possibile inserire espressioni che verranno continuamente analizzate e calcolate,
- Stack chiamate: visualizza un’altra finestra che mostra le macro attive durante le sospensioni, strumento molto utile in fase di collaudo del codice per analizzare la catena di chiamate (Ctrl+L),
- Gestione progetti: visualizza la finestra Gestione Progetti (Ctrl+R),
- Finestra proprietà: visualizza la finestra delle proprietà (F4),
- Casella degli strumenti: visualizza una barra degli strumenti che contiene i controlli da aggiungere,
- Ordine di tabulazione: visualizza la finestra di dialogo Ordine di tabulazione con cui è possibile settare l’ordine della selezione degli oggetti,
- Barre degli strumenti: mostra un menu per visualizzare o nascondere le diverse barre dell’editor (standard, debug, modifica, userform) e di personalizzarle,
- Microsoft Excel: Per tornare ad Excel da cui è stato avviato l’Editor VB.
Inserisci
Permette di aggiungere oggetti al progetto:
- Routine: apre una finestra di dialogo per inserire una nuova macro nel modulo corrente,
- Userform: inserisce una nuova maschera,
- Modulo: aggiunge un nuovo modulo al progetto corrente.
- Modulo di classe: aggiunge un nuovo modulo di classe al progetto corrente,
- File: Permette di inserire in un modulo un file di testo che contiene codice vba.
Formato
Contiene comandi utili nella creazione di maschere e finestre di dialogo:
- Allinea: apre un menù di comandi che permettono di allineare gli oggetti selezionati,
- Rendi uguale: apre un menù che ridimensiona gli oggetti alla medesima grandezza,
- Adatta: modifica altezza e larghezza di un oggetto al testo che contiene,
- Adatta alla griglia: modifica altezza e larghezza di un oggetto per adattarla alla griglia di una maschera,
- Spaziatura orizzontale: apre un menu di comandi che regolano la distanza orizzontale tra oggetti selezionati,
- Spaziatura verticale: apre un menu di comandi che regolano la distanza verticale tra oggetti selezionati,
- Centra nel form: apre un menu di comandi che regolano la posizione degli oggetti selezionati centrandoli nella maschera,
- Disponi pulsanti: apre un menu di comandi che disporre in automatico i pulsanti nella maschera,
- Raggruppa: lega assieme gli oggetti selezionati,
- Annulla raggruppamento: rimuove il raggruppamento degli oggetti,
- Ordina: apre un menu di comandi che cambia l’ordine dall’alto-in-basso di oggetti sovrapposti su una maschera.
Debug
È il menù più utilizzato e contiene i comandi necessari al collaudo delle macro (debugging) per individuare gli eventuali errori:
- Compila: procede alla compilazione del progetto selezionato, alla verifica delle macro per individuare errori,
- Esegui istruzione: esegue il codice sorgente un enunciato alla volta (F8),
- Esegui istruzione/routine: evita di applicare l’esecuzione delle macro richiamate da quella corrente (Maiusc+F8),
- Esci da istruzione/routine: forma l’esecuzione passo passo ed esegue tutte le istruzioni rimanenti di una macro (Ctrl+Maiusc+F8),
- Esegui fino al cursore: esegue il codice fino alla posizione del cursore (Ctrl+F8),
- Aggiungi espressione di controllo: permette di specificare variabili o espressioni che contengono valori che si vogliono esaminare mentre il codice sorgente viene eseguito,
- Modifica espressione di controllo: permette di modificare le specifiche delle variabili o espressioni di controllo create con il comando precedente,
- Controllo immediato: visualizza il valore corrente di una data espressione di controllo (Maiusc+F9),
- Imposta/rimuovi punto di interruzione: evidenzia un punto del codice in cui vuoi che l’esecuzione si arresti (F9),
- Rimuovi punti di interruzione: elimina tutti i punti di interruzione inseriti in un modulo (Ctrl+Maiusc+F9),
- Imposta istruzione successiva: modificare l’esecuzione del codice indicando la linea del codice sorgente che verrà eseguita al passo successivo,
- Mostra istruzione successiva: evidenzia l’istruzione successiva che verrà eseguita.
Esegui
Contiene i comandi per l’esecuzione delle macro:
- Esegui Sub/Userform: esegue la macro in cui si trova il cursore (usa F5),
- Interrompi: interrompe l’esecuzione del codice (Ctrl+Inter/Pausa),
- Ripristina: interrompe definitivamente l’esecuzione,
- Modalità progettazione: attiva o disattiva la modalità progettazione, quando è attiva non viene eseguito nessun codice.
Strumenti
Contiene i comandi per la gestione delle librerie e dei controlli integrati e addizionali:
- Riferimenti: apre l’omonima finestra di dialogo con cui è possibile abilitare librerie di oggetti e altro,
- Controlli aggiuntivi: apre l’omonima finestra di dialogo che visualizza i controlli aggiuntivi attivati con il comando precedente,
- Macro: apre la finestra di dialogo Macro,
- Opzioni: apre l’omonima finestra di dialogo con cui è possibile modificare numerose impostazioni dell’editor,
- Proprietà: apre una finestra di dialogo in cui si possono impostare varie proprietà del progetto,
- Firma digitale: visualizza la finestra di dialogo Firma digitale che permette di “firmare” il proprio progetto.
Aggiunte
Contiene un’unica voce: Gestione aggiunte con cui si richiama la finestra di dialogo omonima per la gestione dei programmi aggiuntivi (addin).
Finestra
Consente di passare da un oggetto all’altro e di organizzare le finestre dell’editor:
- Dividi: divide la finestra del codice in due finestre indipendenti per poter confrontare facilmente codice non adiacente,
- Affianca orizzontalmente: visualizza le finestre dei moduli affiancate orizzontalmente,
- Affianca verticalmente: visualizza le finestre dei moduli affiancate verticalmente,
- Sovrapponi: sovrappone le finestre in una pila mostrandone i titoli.
Guida
Contiene sostanzialmente il comando per aprire la guida on-line, richiamabile più semplicemente con F1.
Questi sono i comandi del menù del Vbe (Visual Basic Editor). Non studiarli a memoria, ma provali quelli che ho evidenziato in grassetto, sono i più utili. Invece ti invito a imparare l’uso dei comandi della barra degli strumenti spiegati qui di seguito, sono più comodi da usare (con un clic) e sono i più usati.
In questo video del tutorial sull’editor Vba puoi vedere struttura e strumenti del Vbe:
La barra degli strumenti dell’editor vba
L’editor presenta una barra di icone con i comandi più importanti e più usati. La barra strumenti standard contiene 18 pulsanti collegati ai seguenti comandi:
- Visualizza: passa a Excel,
- Inserisci oggetto: visualizza l’elenco degli oggetti che si possono inserire nel progetto,
- Salva: salva il progetto,
- Taglia: taglia il testo o l’oggetto selezionato e lo salva negli appunti,
- Copia: copia il testo o l’oggetto selezionato,
- Incolla: incolla il testo o l’oggetto dagli appunti,
- Trova: apre la finestra di dialogo Trova per cercare una stringa,
- Annulla: annulla l’ultima azione,
- Ripeti: ripete l’ultima azione,
- Esegui: esegue la macro,
- Interrompi: interrompe l’esecuzione,
- Ripristina: ripristina il codice,
- Modalità Progetto: attiva la modalità progetto bloccando ogni esecuzione,
- Gestione Progetti: apre la finestra omonima,
- Finestra Proprietà: apre la finestra omonima,
- Visualizzatore Oggetti: apre la finestra di dialogo omonima,
- Casella strumenti: visualizza la barra strumenti,
- Assistente di office: visualizza la guida.
Oltre a questa barra “standard” l’editor dispone di altre tre barre strumenti: Modifica, Debug e Userform. Si possono aggiungere tramite il comando “Barre strumenti” del menù “Visualizza”. Le barre possono essere ancorate sotto la barra dei menù, o disposte liberamente trascinandole nella posizione desiderata con il pulsante sinistro del mouse.
Dove si inserisce e trova il codice delle macro?
Come già detto il codice deve essere conservato nei moduli, appositi contenitori che si distinguono in:
- Moduli di codice
- Moduli di classe
- ThisWorkbook (associato all’intero foglio di lavoro)
- Moduli Sheet (associati alle pagine del foglio di lavoro)
- Moduli Form (associati alle maschere)
I moduli associati servono per gestire codice legato specificatamente all’oggetto in questione, di solito per lanciare procedure collegate a un dato evento, per esempio all’apertura o prima della chiusura del foglio di lavoro, o alla selezione o alla variazione di una pagina, eccetera. I moduli delle maschere servono per gestire il codice che le fa funzionare, mentre i moduli di classe servono a contenere nuove classi/oggetti.
Di solito le macro vengono inserite in moduli di codice stardard, in breve moduli, visibili nella finestra progetti come cartelle di nome Modulo1, Modulo2, eccetera. Il primo modulo viene inserito in automatico durante la registrazione, oppure dalla finestra macro cliccando il pulsante “Crea” dopo aver inserito il nome della macro. I moduli successivi possono essere inseriti:
- dal menù Inserisci cliccando su “Modulo”;
- dalla finestra Progetti, cliccando con il pulsante destro per aprire il menù contestuale, poi dal menù a tendina “Inserisci” cliccando sul comando “Modulo”.
La cartella macro personale
La cartella personale è un contenitore di moduli e macro sempre disponibile all’apertura di Excel qualunque sia il foglio aperto. Quindi copiare o salvare le macro in una cartella personale le rende disponibili in qualunque foglio di lavoro che creiamo o apriamo. Mentre le macro di un foglio di lavoro sono disponibili solo quando questo è aperto.
Come si attiva la cartella personale?
È sufficiente farlo una sola volta e il modo più semplice è registrare una macro anche fittizia, che poi puoi cancellare, impostando nella finestra “registra macro”, nel menù a tendina “Memorizza macro in”, la voce “cartella macro personale”.
Una volta attivata puoi usarla come una cassetta degli automatismi in cui salvare tutte le macro polivalenti. Usando l’editor Vba, puoi importare ed esportare le macro da questa cartella.
Come gestire le macro della cartella personale?
È consigliabile realizzare le macro in un modulo di un normale foglio di lavoro e copiare nella cartella personale solo macro funzionanti e testate. Ti invito a gestire ordinatamente le macro della cartella personale, dando sempre nomi esplicativi, mettendo sempre commenti e note e dividendole in più moduli differenziati per categoria.
Come intervenire sulla cartella personale
La cartella macro personale è in realtà un foglio particolare, corrispondente a un file nascosto con nome Personal.xlsb (Personal.xls nelle vecchie versioni di Excel) contenuto nella cartella di installazione di Excel (mi pare C:\Utenti\NOME UTENTE\AppData\Roaming\Microsoft\Excel\XLStart).
In caso di problemi è possibile eliminare il file, o se vogliamo esportare il file in un’altra installazione per trasferire tutte le nostre macro, allora è sufficiente copiare il file da un pc all’altro. Questo dopo aver attivato la visualizzazione dei file nascosti.
Come si inserisce il codice e le macro?
Le macro sono testo in codice scritto in linguaggio vba dentro a moduli. Le macro si inseriscono:
- in automatico usando il registratore di macro,
- scrivendo il codice nei moduli, direttamente e con l’assistenza degli strumenti appositi,
- copiando il codice da un modulo all’altro (Ctrl+C per copiare, Ctrl+V per incollare),
- copiando il codice da un editor esterno al modulo,
- importando i moduli con le macro, dalle cartelle in cui li abbiamo in precedenza salvati.
Per importare un modulo puoi usare il comando “importa file” dal menu contestuale richiamabile cliccando con il pulsante destro del mouse su un progetto o un oggetto, o con il comando omonimo del menù “File”. Per esportare moduli, maschere, eccetera puoi usare il comando “Esporta file” sempre dal menu contestuale del pulsante destro, o con il comando omonimo del menù “File”.
Come si struttura il codice che scriviamo?
Affinché il codice delle macro sia leggibile e facilmente gestibile è utile:
Tornare a capo con le righe troppo lunghe
Durante la scrittura, la riga del codice potrebbe diventare molto lunga e uscire dalla schermata, costringendo a scorrere verso destra per leggerlo. In questi casi è consuetudine che il codice venga riportato su più righe spezzandolo e aggiungendo a fondo riga il marcatore di interruzione di riga: uno spazio seguito da “_” (underscore). In questo modo la riga di codice verrà considerata dal vbe come un’unica riga.
Indentare il codice
Le macro possono essere composte anche da centinaia di righe di codice, ma anche in presenza di macro elementari è sempre buona pratica formattare il codice per rendere più facile la lettura, la comprensione e il riconoscimento del codice nidificato, quindi semplificarne la gestione e il debug. Come?
Semplicemente applicando alle righe di codice rientri tali da evidenziarne la “struttura” e i blocchi di codice, in particolare delle strutture di “controllo” come quelle dei cicli (es: For Next) e quelle della gestione delle condizioni (es: If Then Else) e di esplicitare l’annidamento e le relazioni.
Per indentare il codice è sufficiente premere Tab a inizio riga per spostare il cursore e il codice di quattro spazi (questo valore può essere modificato dal menù “Strumenti”, comando “Opzioni”). Premendo Maiusc+Tab si rimuoverà l’effetto del Tab.
Commentare il codice
Durante la scrittura di codice è consigliabile sempre inserire note e commenti per spiegare lo scopo del codice o altro. Per farlo è sufficiente aggiungere a inizio riga il marcatore dei commenti, un singolo apostrofo (’). Le righe cosi marcate cambieranno colore diventando verdi e verranno ignorate durante l’esecuzione del codice. Per questo motivo abitualmente si marcano le righe di codice che non si vuole eseguire, o cancellare, ma conservare, o semplicemente sospendere.
Quali strumenti ci assistono nella scrittura del codice?
Quando scriviamo il codice ci sono diversi strumenti predisposti nell’editor che possono aiutarci. Vediamo i principali:
Il registratore di macro
Non scherzo. Quello che per chi non conosce il vba è uno strumento con cui realizzare macro per automatizzare i fogli di lavoro, per chi vuole imparare il vba diventa un utile strumento di supporto nella prima fase dello studio.
Come spiegato nella guida e nei videotutorial dedicati, il registratore registra le attività e le interazioni su Excel e li trasforma in codice vba con cui replicare quelle attività. Il registratore permette ai principianti che ancora non conoscono a sufficienza il vba, di registrare il codice dei comandi che intervengono su Excel invece di scriverlo. Per poi prendere le macro registrate e svilupparle in macro intelligenti aggiungendo controlli, interazioni, gestione errori, eccetera.
All’inizio il registratore fa risparmiare molto tempo e consiglio a tutti i principianti di utilizzarlo, ma invito sempre a non abusarne, per evitare che ostacoli l’apprendimento del Vba, e soprattutto consiglio di smettere di usarlo dopo le prime fasi dell’apprendimento per evitare che provochi lacune alla tua conoscenza del vba.
Controllo automatico della sintassi
Durante la scrittura il codice vba viene esaminato da questo strumento per individuare la presenza di errori. Ogni volta che ci spostiamo di linea, viene verificata la sintassi del codice e in presenza di errori questi vengono evidenziati e il programmatore viene avvertito dalla comparsa di una finestra apposita.
Dopo una certa esperienza queste finestre popup possono diventare fastidiose e in tal caso è possibile disabilitare o modificare alcune impostazioni attraverso il comando “Opzioni” del menù “Strumenti”, scheda “Editor”, ma ti sconsiglio di farlo finché non conosci il vba almeno a livello intermedio.
Completa parola
È uno strumento utile che completa i comandi del linguaggio vba. Puoi lanciarlo dal menù “Modifica”, o più praticamente premendo Ctrl+Spazio. Come funziona? Analizza la parola selezionata o a sinistra del cursore e la completa. In caso di presenza di alternative apre un elenco a discesa di oggetti, proprietà, eccetera, da cui scegliere la parola corretta. Ottimo strumento di supporto quando si scrive codice, soprattutto per i principianti. Ne consiglio l’uso.
Elenca proprietà/metodi
Un altro strumento di aiuto nella scrittura del codice, simile al precedente è “Elenca proprietà/metodi”, che puoi lanciare dal comando omonimo del menù “Modifica”, o più facilmente con Ctrl+J.
Apre un elenco a discesa che mostra tutte le proprietà e i metodi dell’oggetto che abbiamo digitato, o selezionato, o si trova a sinistra del cursore. Viene attivato in automatico quando si digita un carattere che prevede la presenza di una proprietà o di un metodo, come iun punto dopo un oggetto. Molto utile.
Informazioni rapide
Un altro strumento di supporto alla scrittura del codice è il comando “Informazioni rapide” del menù “Modifica”, richiamabile più comodamente con Ctrl+I. Apre una finestra di aiuto che mostra la sintassi corretta da utilizzare e che rimane durante la digitazione evidenziando i diversi elementi del comando.
La libreria degli oggetti
Strumento classico dell’editor Vba è la libreria degli oggetti, una finestra apribile con F2 che mostra l’elenco completo e consultabile di tutti gli oggetti e delle loro caratteristiche, proprietà, eccetera. Nonostante l’aspetto poco attraente la finestra permette di accedere a tutte le classi/oggetti, di vederne i membri, cioè tutte le proprietà e i metodi, e la gerarchia. Permette anche di fare ricerche per parola chiave e di richiamare la guida di Excel. Lo strumento è utile nelle fasi iniziali dell’apprendimento del linguaggio.
Parole chiave
L’editor protegge una lista di parole chiave riservate al vba e che possono essere utilizzate nel codice solo come parte del linguaggio vba. Questo significa che non puoi usarle per altro (es: variabili). Qualche esempio: Sub, End, Dim, Loop, Do, If, Next, And, Or, Else, Select, eccetera.
La guida dell’editor vba
Nel caso tu abbia bisogno di aiuto sul codice o altro puoi usare la Guida dell’editor: seleziona la parola, il comando, la proprietà, eccetera e premi F1. Questo farà aprire il browser alla pagina del sito microsoft dedicata (la parte per gli svilupaptore, msdn).
Se vuoi approfondire gli strumenti dell’editor Vba ti invito a guardare questo video:
Il Debug nell’editor Vba
Come già detto il debug è il collaudo delle macro o del codice in generale. È un aspetto critico in programmazione, in quanto da esso dipende la qualità delle macro che si realizzano, cioè l’assenza di errori.
Un programmatore è un essere umano e in quanto tale ha sempre bisogno di individuare e rimuovere/correggere gli errori che ha inserito nella scrittura del codice. L’editor fornisce diversi strumenti per individuare gli errori e per gestirli durante l’esecuzione delle macro.
Ecco i principali:
L’esecuzione passo passo del codice
Consiste nell’esecuzione della macro una riga alla volta per permettere di esaminarne il funzionamento con l’obiettivo di individuare la presenza di errori o di imprevisti. Per attivare questa modalità si usa il comando “Esegui” dal menù “Debug” o più facilmente premendo F8.
Immediatamente si attiva l’esecuzione e la si mette in pausa all’inizio della macro prima di eseguire la prima riga. Se abbiamo aperto la finestra delle variabili locali, potremo vederne l’elenco e il valore. Cliccando un’altra volta F8 si esegue la prima riga per poi tornare in pausa, per permettere di vederne gli effetti tramite le finestre dedicate o direttamente su Excel. Premendo ancora si esegue la successiva e via dicendo. Strumento chiave per tutti, da imparare a usare.
I punti di interruzione
Un’alternativa all’esecuzione passo passo è l’esecuzione normale (puoi lanciare la macro con F5) con l’inserimento di punti di interruzione nel codice che interromperanno l’esecuzione. Una volta entrata in modalità interruzione/pausa potrai vedere gli effetti della macro e i valori delle variabili per individuare l’errore che sospetti sia in quella riga di codice o nelle adiacenti.
Per aggiungere i punti di interruzione devi:
- Cliccare sul bordo sinistro della riga,
- Selezionare o spostare il cursore sulla riga e premere F9,
- Andare al menu Debug e cliccare su Imposta/rimuovi punto di interruzione.
Puoi inserire questi punti di interruzione su qualsiasi riga del codice, eccetto sulle dichiarazioni. Per cancellare un punto di interruzione si deve ripetere il comando o in alternativa puoi rimuovere tutti i punti di interruzione premendo Ctrl+Maiusc+F9, o con il comando “Rimuovi punti di interruzione” dal menù “Debug”.
Modalità Interruzione (Pausa)
Uno strumento fondamentale per il debug è la possibilità di interrompere l’esecuzione del codice, attenzione ho detto interrompere non fermare. Con l’interruzione, l’esecuzione della macro è sospesa, messa in pausa, ed è possibile verificare il valore delle variabili e gli effetti della macro.
L’esecuzione delle macro entra in modalità “interruzione” quando:
- in automatico quando si usa l’esecuzione passo passo,
- a un punto di interruzione,
- a seguito della pressione di Ctrl+Pausa,
- eseguendo una istruzione Stop,
- al verificarsi di un errore.
Una volta eseguiti i controlli possiamo continuare l’esecuzione premendo il tasto F5 (o F8 se siamo nell’esecuzione passo passo), o in alternativa possiamo fermare l’esecuzione cliccando sul pulsante “Ripristina”, sulla barra degli strumenti, o dal menu “Esegui”.
Finestra Variabili Locali
Questa è una delle finestre aggiuntive dell’editor, attivabile dal comando omonimo del menù “Visualizza”, ed è usata per vedere in modalità interruzione tutte le variabili dichiarate, il loro tipo e valore. È possibile modificare il valore delle variabili cliccando 2 volte sul valore visualizzato nella finestra e digitando il nuovo valore. È uno strumento molto pratico e utile da utilizzare durante il debugging.
Finestra Immediata
È un’altra finestra utile visualizzabile con il comando omonimo del menu “Visualizza”, o più semplicemente premendo Ctrl+G. La finestra Immediata è utilizzata in modalità interruzione per:
- eseguire direttamente un’istruzione, una riga di codice,
- visualizzare i risultati delle istruzioni,
- modificare i valori delle variabili.
In pratica permette in modalità interruzione di “aggiungere” righe di codice e di cambiare i valori delle variabili. Dell’utilizzo pratico di questa finestra parleremo in un guida avanzata dedicata.
Finestra Espressioni di controllo
Ancora un’altra finestra visualizzabile con il comando omonimo del menu “Visualizza”. In sintesi permette di monitorare i valori delle variabili in modalità di interruzione, ma mentre la finestra Variabili Locali mostra in automatico tutte le variabili dichiarate nella macro, la finestra espressioni di controllo è necessario specificare le variabili che si desidera tracciare.
Cliccando con il pulsante destro del mouse si apre il menù contestuale con i comandi per l’inserimento e la gestione delle espressioni di controllo. Con il comando “Aggiungi Espressione di Controllo” si richiama la finestra omonima con cui è possibile impostare le espressioni e le modalità di controllo.
Una volta impostati i controlli, la finestra mostrerà le variabili e il loro tipo e valore. Come nella finestra variabili sarà possibile modificare il valore delle variabili cliccando 2 volte sul valore visualizzato nella finestra e digitando il nuovo valore.
In questo video del tutorial puoi vedere come si usa l’editor Vba:
Concludiamo questa guida all’editor vba
Abbiamo visto cos’è il l’editor Vba di Excel, quali sono gli strumenti che lo compongono e quali sono i più importanti o utili. Quello che a prima vista appare come un vecchio programma di compilazione poco amichevole, una volta che si impara a conoscere si rivela uno strumento potente, rodato ed efficace per il suo scopo: realizzare e gestire macro e gli altri strumenti per l’automazione di Excel.
Ci sono alternative? Sì. E’ possibile migliorarlo con altri strumenti e librerie? Sì. Ma di tutto questo parleremo nei corsi sull’automazione di Excel e nei post dedicati agli studenti.
Per comodità tua e mia puoi scaricare il PDF della guida tramite Gumroad
Devi solo cliccare sul pulsante sottostante e seguire le istruzioni
NB: non devi pagare, non è necessario lasciare la tua mail
Vuoi seguire un corso gratuito introduttivo all’automazione di Excel?
Ho realizzato un corso introduttivo all’automazione che ti mostra come ottenere il meglio dal registratore di macro.
Cioè approfondisce tutto quello che hai letto in questa guida e continua oltre. Ti offre un percorso guidato passo passo, con decine di esempi, un metodo di progettazione e di ottimizzazione delle macro registrate che ti mostrerà come è possibile realizzare macro registrate flessibili.
La buona notizia è che se ti iscrivi a Excel Professionale il corso te lo offro io.
Se ti interessa puoi registrarti attraverso la maschera qui di seguito.
Se invece vuoi imparare molto di più sull’automazione
Ho preparato un corso di vba e corso di automazione che ti portano da zero all’automazione dei tuoi fogli Excel
PS: Se questa guida ti è piaciuta o ti è stata utile, condividila con gli amici sui social.
Puoi farlo attraverso i pulsanti qui di seguito. Grazie