Discussione: Corso VBA
Visualizza messaggio singolo
Vecchio 15-05-2014, 17.59.55   #15
Alexsandra
Senior Member
WT Expert
 
L'avatar di Alexsandra
 
Registrato: 19-05-2007
Loc.: Verona
Messaggi: 1.302
Alexsandra è conosciuto da tuttiAlexsandra è conosciuto da tuttiAlexsandra è conosciuto da tuttiAlexsandra è conosciuto da tuttiAlexsandra è conosciuto da tutti
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.
___________________________________

- Il primo fondamento della sicurezza non e' la tecnologia, ma l'attitudine mentale -
Alexsandra non è collegato   Rispondi citando