Editor di Visual Basic for Applications
Abbiamo visto nella lezione precedente come registrare ed eseguire una macro, ora vediamo l’Editor di Visual Basic che offre numerosi strumenti avanzati di sviluppo e programmazione per modificare o scrivere delle macro, creare finestre di dialogo personalizzate e tanto altro, consentendo di far interagire le applicazioni di Microsoft Office con moduli programmati. Faremo una panoramica generale dell’editor di VBA e approfondiremo i comandi dei suoi menù, dei pulsanti delle barre strumenti e di come essi si ambientano in Excel. Le macro in
Visual Basic for Applications sono memorizzate in una speciale parte della cartella di lavoro di Excel detta
Modulo. Un modulo VBA contiene il codice sorgente della macro, ossia l’insieme delle istruzioni della macro stessa. Quando si registra una macro di Excel si può specificare la cartella di lavoro in cui verrà salvata, che può essere:
- La cartella corrente
- Una nuova cartella di lavoro
- La cartella macro personale (File Personal.xls)
Fig. 1
Excel sceglie, o crea, se necessario, il modulo in cui memorizza la macro registrata e gli assegna il nome di default
Modulo1, dove
1 è un numero progressivo che indica i moduli che sono stati creati in una cartella di lavoro. Per esempio, la prima volta che si salva una macro registrata nella cartella macro personale (Personal.xls per Excel 2003 e Personal.xlsb per Excel superiore alla 2003) Excel crea un modulo di nome
Modulo1, se si continua a registrare macro e si salvano sempre nella cartella macro personale, Excel continua a memorizzare le macro nel medesimo Modulo1.
Se in seguito si sceglie di memorizzare una macro in una cartella di lavoro diversa, (questa cartella di lavoro) Excel aggiungerà un nuovo modulo denominato sempre Modulo1 in cui memorizzare la macro. Successivamente se si ritorna a memorizzare una macro nella cartella macro personale Excel aggiungerà un nuovo modulo denominato
Modulo2 nella cartella di lavoro Personal.xls
Teniamo presente che la cartella macro personale viene caricata all’apertura di Excel pertanto se memorizziamo delle macro in questa cartella esse saranno disponibili per tutte le cartelle di Excel che andremo ad aprire o creare. In pratica se memorizziamo una macro in un foglio di calcolo normale una volta che questo file viene chiuso la macro non sarà più disponibile, mentre se scriviamo una macro che rappresenta una interessante funzione che potrebbe esserci utile in altri file la memorizziamo nel file Personal.xls rendendola così disponibile anche per altri file Excel. Il file Personal.xls non è altro che un normale file di Excel con estensione xls, o xlsb per versioni di Excel superiori alla 2003, che ha solo la particolarità di essere caricato all’avvio di Excel e di essere un file nascosto, cioè non verrà visualizzato, inoltre quando inseriamo una macro al suo interno, alla chiusura del file di Excel ci viene richiesto il salvataggio del file personale in questo modo
Fig. 2
Se per qualche motivo viene memorizzata una macro nella cartella macro personale e dovesse sorgere qualche problema o interferire con le normali cartelle di lavoro di Excel si deve editare il file
Personal.xls e cancellare o modificare la macro che presenta le anomalie. Se per qualche motivo non si riesce a modificare la macro e si vuole risolvere rapidamente il problema è possibile ricorrere a maniere drastiche, come la cancellazione del file, senza che la rimozione del file Personal.xls pregiudichi la normale esecuzione di Excel, in quanto se il file Personal.xls è assente nel sistema Excel lo ricrea con le impostazioni di default. A solo scopo informativo il percorso dove viene localizzato il file Personal.xlsb (per Excel 2007 o superiori) è il seguente:
C: \Utenti\NOME UTENTE\AppData\Roaming\Microsoft\Excel\XLStart
Ovviamente dovete prima attivare la visualizzazione dei file nascosti, ma per il momento tralasciamo questo argomento che esula dal contesto della lezione. Per poter vedere i moduli contenuti in un file con estensione xls bisogna ricorrere
all'Editor di Visual Basic, che è uno strumento che consente di creare moduli, esaminare i contenuti, creare o modificare il codice sorgente delle macro, creare finestre di dialogo e fare tante altre cose relative alla creazione e alla manutenzione di programmi in Visual Basic For Applications. Per vedere i moduli o il codice sorgente VBA in esso contenuto bisogna avviare l’editor VB e per farlo si può scegliere una di queste opzioni: Selezionare dal menu
Strumenti - Macro - Editor Visual Basic oppure premere semplicemente i tasti
ALT+F11, Excel avvierà l’editor VB che viene visualizzato come in figura sotto riportata
Fig. 3
L’Editor di VB visualizza tre finestre contenute in una finestra principale e ciascuna delle tre finestre visualizza importanti informazioni sul progetto VBA (un progetto è l’insieme di moduli e oggetti memorizzati in una cartella di lavoro). Ognuna delle tre finestre dell’Editor VB viene visualizzata di default nella posizione ancorata come mostrato in
figura 3. Le tre finestre dell’Editor VB e le relative funzioni sono:
Gestione Progetti: Questa sotto finestra (
Posiz. A Fig. 3) contiene un diagramma ad albero delle cartelle di lavoro aperte e degli oggetti Excel in esse contenute (oggetti, moduli, riferimenti, Form e così via). Si userà questa finestra per navigare fra i vari moduli e altri oggetti di un progetto VBA
Finestra delle Proprietà: In questa finestra (
Posiz. B Fig. 3) compare un elenco di tutte le proprietà dell’oggetto attualmente selezionato. La scheda “Alfabetico”, della finestra proprietà presenta un elenco ordinato alfabeticamente delle proprietà dell’oggetto selezionato. La scheda per “Categoria" sempre nella stessa finestra le elenca invece ordinate per categoria
Finestra del Codice: La finestra del codice (
Posiz. C Fig. 3) è quella in cui si può esaminare, modificare o creare ex-novo il codice sorgente VBA. Questa finestra viene usata per scrivere nuove macro o editare macro esistenti
Finestra Gestione Progetti
La finestra “
Gestione progetti” consente di visualizzare un elenco gerarchico di tutti gli elementi del progetto che sono contenuti nella cartella di lavoro, che includono fogli di lavoro, Forms e moduli. Per default questa finestra utilizza un sistema di visualizzazione definito “
diagramma a albero”. Basta fare clic su uno dei segni
+ che si trovano alla sinistra di una voce del progetto per espandere l’elenco mostrandone la ramificazione. Una volta espanso il diagramma il segno
+ si trasforma in segno
– e basta cliccare su quest’ultimo per far collassare la ramificazione e chiuderla. La finestra della Gestione progetti contiene altri due pulsanti:
Visualizza codice e
Visualizza oggetto evidenziati nella
figura 4 dal rettangolo rosso
Fig 4
Il pulsante
Visualizza codice mostra i contenuti o listato del codice del modulo nella finestra del Codice (
Posiz. C Fig. 3) mentre il pulsante
Visualizza oggetto mostra l’oggetto che corrisponde alla voce selezionata, può essere un foglio di calcolo o una Form. Quando si lavora col codice sorgente di una macro nella sotto finestra Codice, si possono anche chiudere le finestre Gestione progetti e Proprietà, per dare più spazio al codice in modo da vederne una parte maggiore. Si può chiudere quando si vuole una qualsiasi sotto finestra dell’Editor VB (Gestione progetti, Proprietà e Codice) con un clic sul pulsante di chiusura posto nel vertice superiore destro (la classica X) e per visualizzare una delle finestre si può fare clic sul relativo pulsante nella barra strumenti dell’Editor VB evidenziati dal rettangolo rosso in
Figura 4
Fig. 5
Oppure tramite il percorso dal menù:
Visualizza - Gestione progetti
La Finestra delle Proprietà
Tutti gli oggetti di Excel hanno delle proprietà che ne controllano l’aspetto e il comportamento, un foglio di lavoro ha la proprietà di essere visibile oppure no, un pulsante ha una proprietà per altezza e larghezza e così via. Per modificare l’aspetto e il comportamento di un oggetto dobbiamo cambiarne le proprietà, e lo possiamo fare selezionando un foglio di lavoro, un modulo o una Form nella finestra
Gestione progetti e controllare le sue proprietà nella finestra delle proprietà. La
finestra Proprietà contiene due schede:
Alfabetico e
Categoria. Nella scheda Alfabetico, le proprietà sono visualizzate in ordine alfabetico senza alcun riferimento alla categoria di appartenenza, mentre nella scheda per Categoria, le proprietà sono disposte in ordine alfabetico all'interno di varie categorie.
Fig. 6
Le proprietà riportano i valori assegnati agli oggetti che definiscono l'aspetto e le funzionalità degli stessi, solitamente questi valori possono essere letti oppure assegnati, in questo caso si dice che la proprietà è di lettura e scrittura, esistono anche proprietà di sola lettura, alle quali è possibile accedervi in sola lettura. Se la finestra non fosse visibile è possibile accedervi attraverso il percorso dal menu
Visualizza - Finestra proprietà
La Finestra del Codice
La modalità di visualizzazione di default del codice sorgente VBA è
visualizza modulo intero, in cui tutto il codice sorgente di un modulo è visualizzato in una finestra di testo che permette lo scorrimento ed ogni macro in questa finestra è separata da una linea continua grigia. L’Editor di VB permette anche di vedere i contenuti di un modulo in modalità Visualizza routine attivabile dalle due icone presenti nel vertice inferiore sinistro della finestra del codice evidenziate dalla freccia rossa in
Figura 7
Fig. 7
Quando la finestra Codice è in modalità Routine, come si nota nella
figura 8 si può vedere soltanto il codice sorgente di una macro alla volta
Fig. 8
Per visualizzare una determinata routine nella finestra del codice in modalità Routine basta solo posizionare il cursore col mouse sulla routine e cliccare sull'icona relativa nella
figura 7, per tornare poi alla visualizzazione a modulo intero si deve cliccare sull'icona a fianco. Nella modalità a Modulo intero si può usare l’elenco a discesa delle procedure per passare rapidamente da una macro all'altra.