Utilizzare il VBE ossia: L'Editor di Visual Basic.

Utilizzare il VBE ossia: L'Editor di Visual Basic.

Raggiungere l'Editor di Visual Basic o Visual basic Editor (secondo le versioni di Excel) è semplice, dal Menù Strumenti/Macro/Visual Basic Editor (vedi immagine sotto), oppure premendo i tasti ALT + F11.

Con l'editor aperto dovreste avere una pagina come l'immagine sottostante

In questa pagina, oltre al menù, troviamo tre finestre :

  • la prima in alto a sinistra è la finestra degli "OGGETTI" che compongono la cartella di lavoro (ThisWorkbook) e sono i Fogli che compongono la cartella (di default 3). Nella stessa finestra compariranno i MODULI Standard, se inseriti (nell'esempio vediamo il Modulo1).

  • Nella finestra a sinistra, immediatamente sotto, c'è la finestra delle Proprietà degli oggetti presenti nella finestra soprastante.(nell'esempio le Proprietà del Foglio1, attualmente selezionato)

  • Nella terza finestra, quella grande sulla destra, troviamo la zona dove si può scrivere il codice (nell'esempio appare l'area modulo del Foglio1). Nella parte superiore di questa finestra, ci sono due "menù a tendina". Ogni foglio ha una propria pagina modulo dove poter scrivere il codice che riguarda istruzioni da eseguire all'interno della pagina stessa e che riguarderanno solo il foglio in questione; il primo sottomenù sulla sinistra ci offre due possibilità di scelta (vedi immagine sottostante)

  • Generale : verranno inserite istruzioni che avranno validità su tutto il foglio, come dimensionamento di variabili, di funzioni personalizzate, ecc.

  • Worksheet : verranno inserite istruzioni "locali" che non si influenzeranno le une con le altre, cioè se dichiareremo una variabile, la stessa sarà attiva solo all'interno della propria routine. Nel sottomenù sulla destra, appare la scelta della selezione degli  "EVENTI", (vedi articolo) cioè delle cause (Azioni) che attiveranno l'esecuzione di una o delle macro. Quando scegliamo, cliccandoci sopra, un "evento", il compilatore predispone nel modulo sottostante le istruzioni per l'apertura (Private Sub Worksheet_ecc..(evento)) e la chiusura (End Sub) della routine. E' tra Private Sub e End Sub che dovremo inserire le istruzioni che desideriamo far avviare quando si verificherà l'evento scelto.(vedi immagine sottostante).

  • Gli eventi sono scritti in inglese, come d'altra parte tutto il codice, ma sono facilmente comprensibili nel significato: se scegliamo per esempio, l'evento "Change", diremo ad Excel che tutte le volte che nel foglio avviene un cambiamento, si attiverà la macro e svolgerà il compito assegnatole. In questo modo, sempre per esempio, automatizzeremo l'esecuzione delle istruzioni: basterà cambiare il valore in una cella, per avere un evento "Change" che attiverà l'esecuzione della macro. Ovviamente ci sono controindicazioni, per questo è opportuno valutare l'evento da scegliere per evitare effetti indesiderati. Consideriamo per esempio, che il semplice inserimento di un numero in una nuova cella, causerebbe l'esecuzione della macro, anche se in quel momento a noi la macro non servisse. Eventualmente usare il Metodo Intersect per agire su celle o intervalli ben definiti (vedi articolo). Aiutatevi con la guida in linea per avere le spiegazioni relative ad ogni "evento". Un possibile accorgimento per usare istruzioni eseguibili su Eventi del foglio è quello di inserire istruzioni legate alla formattazione delle celle, o dei caratteri (font) o di un colore di fondo, o di selezione di un area di stampa, ecc. insomma per istruzioni di carattere generale o parziale, che non tocchino formule o celle con valori che vorrete modificare su vostro comando. L'intestazione della macro, comunque, inizierà così :

         Private Sub Worksheet_Change(ByVal Target As Range) (Nome e inizio della Macro o Routine )

           ....in questo spazio vanno inserite le istruzioni (il "codice" Vba)

        End Sub  (Fine della macro e uscita)

Quando non vogliamo usare un EVENTO abbinato ad un foglio per attivare una macro, perchè vogliamo decidere noi quando attivarlo, potremo usare un MODULO STANDARD e scrivere il codice nel modulo, dando un nome alla routine (macro) per poi associarla ad un pulsante usando il nome assegnato in precedenza (vedi: Associazione Macro). L'inserimento di un Modulo è semplicissima: dal menù scegliamo Inserisci/Modulo (vedi immagine sottostante).

Nella finestra degli oggetti, apparirà il simbolo di una cartella con il nome "Moduli". DoppioClick sulla cartella e si aprirà mostrando il contenuto: "Modulo1", "Modulo2", e così via. Va precisato che in un modulo, si possono inserire più macro, non occorre quindi creare un modulo per ogni macro; queste infatti saranno riconosciute dal nome assegnato, non dalla residenza in un modulo piuttosto che un altro. Attenzione a non affollare comunque troppo il modulo (quando il modulo viene letto per cercare la macro richiesta, vengono lette comunque tutte le macro presenti nel modulo stesso). La finestra che si aprirà sulla destra conterrà, nei sotto menù in alto, solo "GENERALE" e "DICHIARAZIONI", zona che servirà ad assegnare variabili utilizzabili in tutte le macro presenti nel Modulo. L'inserimento della macro è semplice, basta scrivere il nome che vogliamo, preceduto da Sub e seguito da () parentesi aperta e chiusa, e alla fine del codice, scrivere "End Sub". Esempio.

        Sub Ciccio()

         in questa zona scrivere le istruzioni

        End Sub

Un altro modo di inserire il codice lo vedremo nell'articolo "Casella degli strumenti" ora detta "Strumenti di controllo", anche se è simile al precedente.