Come registrare macro con Excel

By | 20 Luglio 2018

Come si usa il registratore di macroOggi mettiamo in pratica il metodo più efficace per registrare macro con Excel senza dover conoscere il linguaggio vba (visual basic for application), allo scopo di realizzare strumenti con cui automatizzare i fogli di lavoro e risparmiare tempo.

Nel post “il registratore di macro di Excel” abbiamo visto cos’è, come funziona e come si usa il registratore di macro di Excel. E anche come si usano le macro che registriamo.

Cos’è il registratore di macro?

Finestra registra macro

È uno strumento che permette di tradurre in codice Vba le attività svolte su un foglio Excel. Cioè permette di creare in modo semplice e senza dover conoscere il vba, macro che puoi usare subito nei tuoi fogli di lavoro.

Ogni attività che può essere eseguita su Excel dall’utente, può essere eseguita anche da un’istruzione Vba. Quando lanci la registrazione lo strumento “mappa” ogni attività compiuta sul foglio ecel, la traduce nel corrispondente comando in linguaggio vba e la scrive in una nuova macro. Al termine della registrazione, questa macro viene salvata e può essere utilizzata per ripetere la stessa esatta sequenza di attività che hai registrato.

Il registratore produce macro elementari composte solo da sequenze di comandi diretti, senza intelligenza, cioè senza controlli e interazioni, senza sistemi di gestione, solo comandi diretti non condizionati.

Sul funzionamento e l’operatività pratica ti invito a guardare il primo video del minicorso sul registratore di macro.

In questo post metteremo in pratica il metodo delineato nel post precedente.

Come si dovrebbe usare il registratore di macro di Excel?

Ripetiamo la teoria. Prima di registrare macro è opportuno:

  1. Valutare il tuo obiettivo

Questo può essere realizzato semplicemente rispondendo ad alcune domande. Fallo in 2–3 minuti al massimo. Se ti sei registrato a Excel professionale, puoi aiutarti con la checklist apposita che ti ho inviato. Le domande sono le seguenti:

  1. Qual è l’obiettivo della macro che vuoi realizzare?

Scrivi l’obiettivo che vuoi raggiungere, le attività che vuoi automatizzare. Per esempio: “voglio esportare una copia del report settimanale in un nuovo fogli Excel”. Il mio consiglio è di essere precisi, per esempio “voglio spostare una copia della pagina principale del report settimanale in un nuovo foglio excel, fissare i dati e inserire la data odierna”. Non è necessario che tu faccia una lista particolareggiata delle attività, questa è solo una fase di valutazione preliminare.

  1. Quale utilizzo ne farai?

Scrivi quale uso prevedi di fare della macro. La userai solo in quel foglio di lavoro, o in tutti i fogli di lavoro? La userai solo temporaneamente? Per quanto tempo? Fai una stima.

  1. Quanto tempo ti farà risparmiare?

Fai una stima del tempo che spendi nelle attività che vuoi automatizzare. È sufficiente una stima, o in alternativa prendi nota del tempo la prossima volta che lo farai. Fai una stima delle volte che userai il foglio di lavoro e in cui spenderai il tempo. Calcola un tempo complessivo moltiplicando il tempo per gli usi. Per esempio, se la macro ti farà risparmiare 3 minuti ogni volta e la userai ogni settimana per 45 settimane lavorative, all’anno ti farà risparmiare 135 minuti, 2 ore e 15 minuti.

  1. Quanto tempo spenderai per realizzare la macro?

Fai una stima del tempo di realizzazione della macro. All’inizio non avrai un’idea precisa di quanto tempo spenderai per registrare la macro e, finché non prenderai dimestichezza con la procedura, spenderai il doppio o il triplo del tempo necessario. Quindi all’inizio considera come tempo di creazione circa 60 minuti. Una volta che avrai fatto esperienza spenderai 10–30 minuti a seconda della complessità delle attività.

  1. La macro raggiungerà pienamente o parzialmente l’obiettivo?

Le macro registrate sono limitate, sono semplici liste di comandi diretti, quindi spesso non ti permetteranno di automatizzare tutte le attività che vorresti, ma solo una parte. Prova a prevedere quali attività la macro riuscirà a gestire e quali no.

All’inizio non saprai dare una risposta precisa a questa domanda, ma con l’esperienza, conoscendo meglio i limiti del registratore e le caratteristiche dei tuoi fogli di lavoro, saprai valutare in anticipo fin dove le macro possono arrivare.

  1. Ci sono altri modi o strumenti con cui puoi ottenere lo stesso risultato? Sono migliori o peggiori? Richiedono più o meno tempo o risorse?

Questa domanda ti invita a pensare in modo strategico, a valutare se la macro è l’unico modo per raggiungere il tuo obiettivo. Potresti eliminare certe attività cambiando la struttura delle pagine? Oppure potresti usare delle tabelle pivot? Ti invito a valutare nello stesso modo il tuo foglio di lavoro e il suo scopo. Ci sono modi o strumenti migliori per ottenere quello che vuoi?

Fatto? Complimenti. Rispondere a queste domande ti spinge a comprendere quale macro ti serve, se è la migliore soluzione al tuo problema e se merita di spenderci tempo e risorse.

  1. Definire l’obiettivo

Dedica 2 minuti per scrivere in modo particolareggiato l’obiettivo che vuoi raggiungere con la macro che vuoi realizzare. Se hai scritto un obiettivo in modo preciso, ottimo, altrimenti riscrivilo. Nell’esempio sopra citato abbiamo scritto: “voglio spostare una copia della pagina principale del report settimanale in un nuovo foglio excel, fissare i dati e inserire la data odierna”. Non male.

Se preferisci puoi scriverlo come una lista di attività, per esempio:

  1. spostare una copia della pagina del report in un nuovo foglio excel,
  2. aggiungere la data sulla pagina,
  3. fissare i dati della pagina.

Prima di continuare è meglio ricordare quali sono i limiti del registratore e quindi della macro che produce. Il registratore scrive solo i comandi diretti, le interazioni con gli oggetti che compongono l’ambiente di Excel, e i valori inseriti o impostati nelle diverse proprietà degli oggetti (es: che il testo della cella deve essere rosso, la grandezza del font deve essere 14, eccetera).

Quindi le macro registrate non potranno:

  1. eseguire controlli di nessun genere, per esempio per controllare la presenza di oggetti,
  2. interagire con l’operatore, per esempio chiedendo informazioni o conferme,
  3. gestire errori, causati da variazioni o imprevisti,
  4. gestire decisioni, per esempio dove salvare il foglio excel,
  5. gestire variabili, per esempio per indicare la data nel nome della pagina o del foglio di lavoro.

Le macro registrate eseguono comandi, senza flessibilità o intelligenza, ma in certe rare situazioni possono essere aiutate dagli altri strumenti di Excel (per esempio per impostare e fissare la data odierna nel foglio si può usare la funzione OGGI() ).

Ripetuto questo, esamina la lista delle attività e depenna fin da subito quelle che contengono implicitamente o esplicitamente decisioni, controlli, intervento dell’operatore e così via.

Chi se ne occuperà?

Tu, l’operatore. O in alternativa devi procurarti macro più evolute.

  1. Pianificare la registrazione

Scrivi ogni singola attività elementare che vuoi o devi registrare per ottenere la tua macro. Se hai già fatto una lista delle attività, controlla che sia espressa in attività elementari. Se non è così allora riscrivila, preferibilmente usando frasi del tipo: “azione + oggetto + eventuale valore da inserire o impostare + eventuale effetto o conseguenza”. Naturalmente il soggetto sei tu o la macro, a seconda da quale punto di vista guardi.

Per esempio, “voglio spostare una copia della pagina principale del report settimanale in un nuovo foglio excel, fissare i dati e inserire la data odierna” diventa:

  1. “Seleziona la pagina da copiare,
  2. clicca con il pulsante destro sulla linguetta della pagina, si aprirà il menù relativo,
  3. clicca con il pulsante sinistro sul comando sposta o copia, si aprirà la finestra “sposta o copia”,
  4. apri il menu a tendina sotto ‘Nella cartella’ e seleziona (nuova cartella),
  5. tagga “crea una copia”,
  6. clicca su Ok per copiare la pagina in un nuovo foglio di lavoro,
  7. clicca sulla cella K1 per selezionarla,
  8. digita “=oggi()”,
  9. premi invio,
  10. seleziona l’intera pagina cliccando sul triangolo nell’angolo in alto a sinistra tra il campo A e la riga 1,
  11. premi Ctr+C,
  12. premi Ctrl+Alt+V, per aprire la finestra incolla speciale,
  13. clicca su ‘valori’,
  14. clicca su ‘OK’, per incollare”.

Il risultato è una pagina con il report, con data e senza formule, pronto per essere salvato con la semplice pressione di F12.

Come sai quali sono le attività e le azioni a svolgere?

Sono quelle che già fai quando usi il foglio di lavoro.

Lista attività elementari

E se la tua lista è lunga, anzi molto lunga?

Quando le attività sono molte, allora vale la pena considerare la registrazione modulare delle macro. Cioè non registri tutti le attività insieme, ma suddividi la lista in parti che registri separatamente. Lo consiglio quando hai più di 20–30 attività da registrare. In tal caso dividi la lista in parti uguali e registrare con attenzione un gruppo alla volta.

E poi?

Una volta registrate tutte le parti, devi unire le macro in una sola. Per farlo, se non conosci il codice vba il modo più semplice è aprire la finestra “Macro” (Alt+F8), seleziona la prima macro che hai registrato, clicca il pulsante “Modifica” per aprire il Vbe direttamente alla macro. Ora cancella il comando “End Sub” in blu alla fine della prima macro e quello “Sub NOMEMACRO()” all’inizio di quella successiva per unire le due macro. Se sono più di due elimini anche quelli tra le altre macro successive, fino ad avere tutto il codice tra un solo “Sub NOMEMACRO()” ed “End Sub”.

  1. Registrare macro

Ora è tempo di eseguire la registrazione:

  1. salva il foglio di lavoro,
  2. lancia la registrazione, o dal comando sulla barra di stato in basso a sinistra, o dalla scheda ‘Sviluppo’ della barra multifunzione cliccando sul pulsante ‘Registra macro’,
  3. esegui la lista delle attività da registrare, con calma e precisione,
  4. arresta il registratore.

Se fai un errore?

O sei in grado di correggere il codice vba alla fine della registrazione attraverso il VBE, il Visual Basic Editor, o devi ripetere la registrazione. In questo caso ferma la registrazione e rilanciane una nuova. La macro sbagliata la puoi cancellare attraverso la finestra “Macro” (Alt+F8).

Macro registrata

  1. Verificare la macro

Una volta che hai terminato una registrazione perfetta, devi verificarne il funzionamento. Come? Lanciandola per verificare che abbia gli effetti previsti, con condizioni di partenza analoghe a quelle della registrazione. Controlla con attenzione che svolga tutte le attività nel modo corretto. In caso contrario ripeti la registrazione con le modifiche necessarie e ripeti la verifica finché non ottieni il risultato voluto.

Il mio consiglio è quello di lanciarla almeno 3 volte:

  1. la prima volta partendo dalle stesse condizioni iniziali, quindi prima ripristini le condizioni preregistrazione e poi la lanci,
  2. la seconda rilanciandola con le condizioni post primo lancio;
  3. la terza, modificando le condizioni iniziali in modo credibile, cioè provando a lanciarla prima del previsto, per esempio di compiere le altre attività sul foglio o dopo averne compiute solo una parte e via dicendo.

La seconda e le volte successive, a seconda dei comandi, la macro potrebbe generare errori, comportarsi in modo diverso, non funzionare affatto, alterare il foglio di lavoro o peggio. Prendine nota e valutali con attenzione. In certi casi puoi prevenire errori o problemi cambiando le attività e riregistrando la macro, spesso è sufficiente ricordarsi di lanciarla al momento giusto, quindi aggiungere note e istruzioni precise, in altri casi la macro può provocare complicazioni.

Ricorda sempre di salvare il foglio prima di eseguire una macro. E agli inizi salva sempre una copia di backup prima di lavorare con le macro.

Dove salvare le macro?

Le macro del registratore sono di solito legate agli oggetti del foglio di lavoro per cui vengono concepite appositamente e difficilmente sono utilizzabili in più di un foglio di lavoro. Quindi nella maggior parte dei casi le macro registrate vengono salvate nei fogli di lavoro specifici e utilizzate attraverso pulsanti posti in pannelli di comando appositi o direttamente nelle pagine su cui devono lavorare.

Quando progetti la macro e le attività che esegue, spesso è opportuno tenere in considerazione l’uso della macro stessa, il suo posizionamento e definire con precisione le “premesse”, cioè le attività precedenti necessarie, per esempio la necessità che sia selezionato un oggetto preciso.

Come si crea un pulsante?

Dalla scheda ‘Sviluppo’ sulla barra multifunzione, cliccando sul comando “Inserisci controlli” e selezionando il primo controllo tra i ‘Controlli modulo’. Il cursore cambierà in una croce e cliccando con il sinistro potrai tracciare sulla pagina un pulsante della grandezza voluta. Si aprirà la finestra assegna macro da cui potrai seleziona la macro da linkare al pulsante appena creato. Fai una prova. Adesso.

Scheda sviluppo

È l’unico modo per lanciare una macro?

No, come abbiamo visto nel post precedente ci sono molti modi diversi per lanciare una macro, ma il modo più comodo è un pulsante, posizionato sulla pagina o sulle barre di Excel.

Ma installare sulla barra multifunzione o quella di accesso rapido un’icona agganciata a una macro ha senso se questa può essere utilizzata su molti fogli diversi. E nonostante la rigidità delle macro registrate, ci sono situazioni in cui possono effettivamente essere usate su molti fogli di lavoro, dipende cosa fanno e come lo fanno.

Un piccolo strumento per rendere le macro registrate più flessibili è la possibilità di “usare riferimenti relativi”, comando selezionabile (lo attivi con un clic, lo disattivi con un clic) sulla scheda “Sviluppo” della barra multifunzione, sotto al comando “Registra macro”.  Normalmente il registratore indica nel codice i riferimenti diretti delle celle (es: “K1”), con “usare riferimenti relativi” attivo riporterà invece l’indicazione rispetto alla selezione (es: 2 celle a destra, una in basso), permettendo di cambiare l’effetto a seconda della selezione iniziale.

La macro che abbiamo usato come esempio potrebbe essere utilizzata in fogli diversi per esportare report da salvare, se le pagine avessero lo stesso nome, per esempio un nome generico come “Report”, e la cella “K1” in cui viene inserita la data fosse sempre libera.

Ma come faccio a usarla quando cambiamo il foglio di lavoro?

Il modo più efficace è usare una cartella personale.

La cartella personale è un contenitore di moduli e macro sempre disponibile all’apertura di Excel qualunque sia il foglio che hai aperto. Quindi copiare o salvare le macro in una cartella personale, le rende sempre disponibili.

Come si crea la cartella personale?

È sufficiente farlo una sola volta e il modo più semplice è registrare una macro anche fittizia (che poi puoi cancellare), impostando nella finestra “registra macro”, nel menù a tendina “Memorizza macro in”, la voce “cartella macro personale”.

Una volta creata puoi usarla come una cassetta degli automatismi in cui salvare tutte le macro polivalenti. Usando il Visual Basi Editor, puoi importare ed esportare le macro da questa cartella, che a sua volta puoi esportare in altre installazioni. Ma di questo parleremo in altri post dedicati al VBE.

Conclusioni

Il registratore è uno strumento classico e potente di Excel che si impara a usare facilmente e che permette di affacciarsi nel mondo delle macro e del codice Vba.

Le macro “registrate” sono per loro natura limitate e poco intelligenti, ma non richiedono lunghi tempi di apprendimento e in presenza di attività ripetitive rilevanti possono rivelarsi molto utili per risparmiare tempo e lavoro. Per esempio con macro “registrate” è possibile realizzare o aggiornare report settimanali, facendoti risparmiare pochi minuti alla volta, ma molte ore all’anno.

Quindi il registratore e le macro “registrate” sono uno strumento in più che vale la pena conoscere e impiegare. Naturalmente se e quando è più opportuno farlo. Quindi prima di lanciarti nella creazione di macro, valuta con attenzione i tuoi obiettivi, le risorse a disposizione e quali strumenti sono i più efficaci ed efficienti.

Infine il registratore è anche un utile strumento di supporto per lo studio del linguaggio vba, in quanto permette di registrare in modo veloce “bozze” su cui lavorare per creare le macro. Se hai tempo e voglia di imparare il vba, il registratore ti sarà utile all’inizio. Fai attenzione però a non farti prendere la mano: rischi di trascurare l’apprendimento del linguaggio e di imparare modi sbagliati o poco efficienti di programmare.

 

 

Ti piacerebbe imparare molto di più sull’automazione di Excel?

Questo corso ti guida da zero all’automazione dei tuoi fogli:

corso vba corso automazione di Excel

 

Grazie dell’attenzione e a presto ;D

 

 

PS: Se questo post ti è piaciuto o ti è stato utile, condividilo con gli amici sui social.

Puoi farlo attraverso i pulsanti qui di seguito. Grazie. Grazie

Rispondi

Questo sito usa Akismet per ridurre lo spam. Scopri come i tuoi dati vengono elaborati.