In molte pagine di questo
sito si parla di Macro, di programmazione e di funzioni create ad hoc
dall'utente in modo "custom". Come già messo in evidenza questo
tipo di personalizzazioni di Excel sono ciò che rende Excel uno
strumento tanto potente ma d'altra parte sono anche funzionalità
di difficile apprendimento.
Esistono libri che spiegano dalla A alla Z le regole per programmare e
costruire macro in Excel che dotino lo strumento di
funzionalità mirabolanti. Si veda ad esempio la
nostra pagina
dedicata ai libri. In realtà per molti utenti le Macro
possono semplicemente esser utilizzate e create SENZA conoscere
assolutamente nulla di ciò che viene raccontato in questi libri.
I nostri utenti alle prime passi possono utilizzare uno strumento di
Excel denominato "
Registratore di Macro". Come
vedremo questo strumento non garantisce nulla delle funzionalità
specifiche di una buona macro programmata ad hoc ma invece risolvono
uno dei problemi più noiosi che chiunque utilizzi Excel incontra
ogni giorno: la ripetitività a volte parossistica delle
operazioni da compiere sempre nella stessa sequenza. Un esempio
potrebbe essere l'impostazione di un foglio per la srtampa oppure una
serie di operazioni da eseguire per importare la nuova versione di dati
provenienti da un differente sistema aziendale per i quali è
necessario come prima cosa eseguire una successione routinaria di
azioni per renderli "masticabili" a Excel.
Bene il Registratore di Macro è stato pensato esattamente per
questo scopo: automatizzare le operazioni ripetitive in modo rapido e
sicuro (senza errori).
Come funziona: Il principio è molto semplice: ogni azione che
può essere compiuta su Excel ha il suo corrispondente esatto in
una istruzione VBA. In fase di registrazione, Excel si pone all'ascolto
delle azioni compiute dall'utente, traccia ogni azione e la traduce nel
corrispondente comando VBA e la inserisce all'interno di una macro
creata ex-novo. Al termine della registrazione, Excel chiude e salva la
Macro che può essere, a questo punto eseguita: essa
eseguirà la stessa esatta sequenza di comandi di fatto
"sostituendosi" all'utente. La cosa interessante è che i comandi
vengono eseguiti in pochi secondi e senza errori!
Vediamo come funziona il registratore di macro:
1. per prima cosa bisogna visualizzare il menu corrispondente (versioni
fino a 2003):
A questo punto compare una nuova barra
degli strumenti:
2. Su di essa copaiono due tasti che ricordano quelli della musica:
quello del "play" e quello del "record". Essi hanno esattamente queste
funzioni: il primo (Play) serve per eseguire le macro registrate, il
secondo (Record) serve per registrare una nuova macro. Registriamo una
nuova macro premendo sul tasto "Record". Compare una nuova finestra che
elenca le propietà della nuova Macro che si sta per registrare:
è possibile pure selezionare una combinazione di tasti veloce
per chiamare la macro esattamente come si fa per il grassetto (CTRL+B)
per il copia (CTRL+C) e incolla (CTRL+V):
3. Premendo "Invio" si comincia a registrare la macro. Compare una
nuova piccola barra di strumenti. Contiene un solo tasto. E' il tasto
di interruzione della registrazione della macro, da premere, ovviamente
alla fine della procedura:
4. Registriamo una Macro. In questo esempio selezioneremo il Foglio2,
poi ancora il Foglio 1 e poi imposteremo la stampa. Alla fine premiamo
sul tasto di interruzione della Macro. Per visualizzare la macro si
deve premere la combinazione di tasti ALT+F11 (
si veda il
tutorial animato per maggior dettagli).
La macro rislutante è la seguente:
Vediamola in dettaglio: Il nome è Macro1, esattamente come nella
finestra all'inizio delle ragistrazione.
Viene poi una parte in verde di commenti (le righe di commento iniziano
con un apice ' ) che sono ancora una volta i commenti inseriti
all'inizio della registrazione. Vengono poi tre righe che dicono
sostanzialmente di selezionare (attivare, visualizzare sull'interfaccia
di Excel) il Foglio1 poi il Foglio2 e poi ancora il Foglio1. A
questo punto trovate una sequenza di comandi che null'altro non sono se
non la dichiarazione di ognuno dei vari aspetti che potete modificare
quando impostate la stampa di una pagina dalla corrispondente voce di
Menu sotto
File
-> Imposta pagina.... La macro termina con un End Sub dato
che abbiamo, a quel punto premuto il tasto di termine registrazione.
5. Ora potete eseguire la macro: premete ALT+F8 oppure il tasto Play
del menu di Visual Basic:
Compare una finestra dove selezionare la macro da eseguire. Si
seleziona il nome della macro, si fa un doppio click oppure si preme
sul tasto "Esegui" e Excel ripeterà al massimo della
velocità le istruzioni contenute nella Macro lanciata.
Limitazioni:
Le limitazioni sono sostanzialmente due e sono quelle che portano alla
realizzazione delle Macro in VBA programmando direttamente:
1. Non si possono eseguire cicli e esecuzioni sotto condizioni
particolari (per chi ne sa di programmazione, il registratore di
macro non inserisce cicli For..Next o is truzioni
If..Then..Else.) Questo fatto rende la macro un semplice elenco di
istruzioni da eseguire in modo cieco sui dati.
2. Non possono essere personalizzate in fase di registrazione. Se si
vuole una macro che ad esempio generi il nome del file da salvare e
gestisca delle variabili, il registratore di macro non riesce a venirvi
incontro.
Vantaggi:
Due i vantaggi:
1. si registra velocissimamente una sequenza di istruzioni,
riporogrammare in VBA porterebbe via moltissimo tempo.
2. Spesso non si conosce il comando VBA che esegue una certa
operazione: è sufficiente resgistrare una macro che esegue quel
compito e poi andare a vedere come è fatta, raccogliere
l'istruzione chiave sconosciuta e utilizzarla nelle proprie macro
articolate!