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. |