Estratto da:
Capitolo 7 – Le Macro e il VBA
Registrare una macro significa permettere a Excel di annotare tutti i passaggi eseguiti dall’utente e le informazioni relative a ciascun passaggio fino a quando non si ferma la registrazione.
Va chiarito fin d’ora che non è assolutamente detto che Excel interpreti correttamente una certa azione, anzi è molto comune che la registrazione vada ritoccata. Per esempio, se la cella A301 rappresenta il limite inferiore dell’elenco e si fa clic se di essa, Excel registra il comando seleziona cella A301 e non seleziona la cella della colonna A più in basso dell’elenco. Questo implica che, se eseguissimo la macro in un altro foglio dove la riga inferiore di un elenco è la 600, la macro selezionerebbe comunque la cella A301.
Per registrare una macro si usa un tool chiamato registratore di macro, che consente di registrare le azioni che si eseguono nel normale utilizzo di Excel. Non tutte le azioni vengono registrate; per esempio, Excel non registra quando:

- aprite un menu a tendina (per esempio il menu Formato);
- aprite una finestra di dialogo senza modificare alcuna impostazione (per esempio, quando aprite la finestra Imposta pagina ma uscite premendo Annulla);
- passate da un programma all’altro (per esempio, da un documento Word a un foglio Excel);
- eseguite un’azione e l’annullate con Ctrl+Z (in passato, il registratore memorizzava il passaggio e poi anche l’annullamento).
Negli altri casi, Excel registrerà sempre quello che state facendo, compreso quando passate da un foglio all’altro o quando selezionate una cella.
Quando registriamo una macro il tempo che passa non è rilevante. Non dobbiamo pensare di trovarci di fronte a un registratore di suoni che incide degli eventi sonori su un supporto magnetico. Nella registrazione di una macro, se tra un’operazione e l’altra lasciamo passare delle ore, le operazioni (chiamate anche eventi) verranno registrate come se il tempo non fosse passato. Determinante è invece la sequenza dei comandi.
Con le nuove versioni di Excel esiste la possibilità di attivare la scheda Sviluppo, che consente di avere accesso immediato ad alcune opzioni utili per la programmazione. Per attivarla basta accedere al menu File, scegliere Opzioni di Excel e da Personalizzazione barra multifunzione spuntare la casella Sviluppo dalla scheda Personalizza barra multifunzione.

Per iniziare la registrazione di una macro, basta selezionare Registra macro nel menu del pulsante Macro, nel gruppo Macro della scheda Visualizza.

Nella finestra di dialogo bisogna inserire il nome della macro: se non lo fornite, Excel attribuirà automaticamente, nella versione italiana, il nome Macro1, Macro2, Macro n a seconda del numero di registrazioni effettuate in precedenza. Il nome di una macro non può contenere spazi o simboli quali punti di domanda, virgole o altro. Uno dei simboli ammessi e utilizzati per sostituire lo spazio è il trattino basso (_), detto anche underscore.
Nello stesso menu potete stabilire qual è l’eventuale tasto di scelta rapida da usare (che sarà sempre abbinato al tasto Ctrl).
La macro può essere memorizzata nella stessa cartella di lavoro, in una nuova cartella di lavoro oppure nella cartella Macro personale.
L’ultima casella della finestra di dialogo permette di inserire un breve commento per ricordare quali sono le operazioni salienti che la macro eseguirà. Se a questo puntopremete il pulsante OK, la registrazione ha inizio e nella Barra di stato compare il pulsante Interrompi registrazione, caratterizzato da un quadrato scuro.
Sotto il pulsante Macro della scheda Visualizza esiste un pulsante chiamato Usa riferimenti relativi. Esso consente di interpretare la selezione di una cella come distanza relativa o assoluta rispetto a un’altra cella; questa opzione non è molto utile poiché Excel di solito fatica a capire che non state selezionando la cella D400, ma l’ultima cella in basso di un certo intervallo. Lo stesso comando si trova anche nella scheda Sviluppo che, però, va attivata (si veda qualche riga addietro per vedere come farlo).
Vediamo un esempio utilizzato spesso nella spiegazione del Registratore di macro: la registrazione delle impostazioni di pagina. Desideriamo creare una macro che sistemi la stampa del foglio di lavoro in orizzontale, con una stampa adattata a un foglio di larghezza per un foglio di lunghezza.
