Il registratore di macro di Excel

By | 6 Mag 2018

registratore di macroStasera parliamo del registratore di macro di Excel, uno strumento storico del foglio di calcolo di casa microsoft con cui è possibile realizzare macro in modo intuitivo, secondo in principio “ripeti quello che faccio”. Vediamo insieme di cosa si tratta e come funziona.

Cos’è il registratore di macro?

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

Come funziona?

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 excel, la traduce nel corrispondente comando in linguaggio vba (visual basic for application) e la scrive in una nuova macro. Al termine della registrazione, questa macro viene salvata e può essere subito utilizzata per ripetere la stessa esatta sequenza di attività che hai registrato.

Magnifico, no? Allora cosa serve imparare il vba?

Come hai già intuito il registratore produce macro elementari composte solo da sequenze di comandi, senza nessuna intelligenza, cioè senza controlli, senza sistemi di gestione, solo comandi diretti non condizionati.

Questo non significa che queste macro non siano utili, anzi. Per esempio si possono realizzare macro che con un click creano pagine, titoli e tabelle per la preparazione di report o fogli di lavoro, oppure che impostano il layout delle pagine o dei grafici, e molto altro ancora. Possono rivelarsi molto utili per risparmiare il tempo che spendiamo in attività ripetitive che non richiedono decisioni o condizioni.

Se abbiamo bisogno di macro intelligenti e flessibili che devono gestire decisioni o condizioni o devono interagire con l’utente, allora le macro ottenute con il registratore non bastano, devono essere modificate e questo richiede la conoscenza del linguaggio vba.

Paradossalmente per queste sue caratteristiche il registratore è un utile strumento per lo studio del linguaggio vba. Pensaci. Permette di registrare in modo veloce e intuitivo istruzioni che a un principiante del vba richiederebbero molto più tempo solo per scriverle.

Quindi permette ai principianti di registrare una “bozza” dei comandi su cui lavorare per creare quello che vogliono. Questa metodo di studio però rischia di far trascurare agli studenti aspetti importanti del vba, limitando le competenze e il loro approccio ai problemi da gestire, oltre che spingere a realizzare macro con più codice del necessario.

Ma partiamo dall’inizio: dov’è il comando e come uso il registratore?

Dove trovo il registratore di macro?

Il comando del registratore si trova nella scheda “Sviluppo” della barra multifunzione o come pulsante nella barra di stato in fondo a sinistra. Nelle ultime versioni di Excel la scheda “Sviluppo” non viene visualizzata stabilmente nella barra multifunzione per impostazione predefinita, ma solo per eventi o interazioni per esempio con le macro e all’uso controlli/comandi.

Scheda sviluppo

È comunque possibile aggiungere la scheda alla barra multifunzione se lo desideriamo, in questo modo:

  1. clicca con il pulsante destro del mouse sulla barra multifunzione, per far apparire il menù relativo,
  2. clicca sul comando “Personalizzazione barra multifunzione”, per far comparire la finestra dedicata,
  3. nella parte destra, sotto a “personalizza barra multifunzione”, “schede principali”, cerca e tagga la scheda “sviluppo”,
  4. poi clicca “Ok” per uscire.

In alternativa puoi farlo anche in questo modo:

  1. clicca sulla scheda “File”,
  2. clicca su “Opzioni”,
  3. clicca su “Personalizzazione barra multifunzione”.
  4. nella parte destra, sotto a “personalizza barra multifunzione”, “schede principali”, cerca e tagga la scheda “sviluppo”,
  5. clicca “Ok” per uscire.

In excel 2007 invece si procede come segue:

  1. clicca sul pulsante Office,
  2. clicca su “Opzioni di Excel”,
  3. scegli “Impostazioni generali”,
  4. cerca e seleziona la casella di controllo “Mostra scheda Sviluppo sulla barra multifunzione”,
  5. clicca “Ok” per confermare.

Un ulteriore passo, se non l’hai già fatto prima, è quello di modificare le impostazioni di sicurezza relative alle macro, per permetterne l’esecuzione. In questo modo:

  1. vai alla barra multifunzione,
  2. seleziona la scheda “Sviluppo”,
  3. nel gruppo “Codice” della scheda clicca sul comando “Sicurezza macro”, si aprirà direttamente la finestra del centro protezione dedicata alle macro,
  4. clicca su “Abilita le macro” per permetterne la libera esecuzione senza controlli, scelta che può diventare rischiosa se lavori con fogli di fonti sconosciute; in alternativa clicca su “Disabilita tutte le macro con notifica”, manterrà il controllo sulla presenza di macro nei fogli nuovi: ogni volta che aprirai un foglio con macro il sistema ne bloccherà l’uso e te lo notificherà dandoti la possibilità di dare il permesso di lanciarle, in tal caso le volte successive il foglio non verrà bloccato e le macro saranno utilizzabili.
  5. clicca “Ok” per confermare la scelta.

In alternativa è possibile accedere al Centro protezione tramite il menù “File” (o il pulsante Office per Excel 2007), “Opzioni”, “Centro protezione” e pulsante “Impostazioni Centro protezione”.

Pulsante registratore barra di stato

Infine se non vedi l’icona di avvio veloce del registratore di macro sulla barra di stato in fondo a sinistra, molto comoda, allora puoi attivarla cliccando con il destro sulla barra per far comparire il menu contestuale con la lista delle opzioni attive e attivabile. Tra queste troverai la voce “registrazione macro”, cliccala per far comparire l’icona all’istante.

Come si lancia il registratore di macro?

Scheda sviluppo

Il registratore si può lanciare dal menù/scheda “Sviluppo” della barra multifunzione (richiamabile in Excel 2016 anche con i tasti ALT+Q+R) cliccando sul pulsante “Registra macro”, oppure cliccando sul pulsante della barra di stato in basso a sinistra della finestra Excel.

Lanciando il registratore si apre la relativa finestra di registrazione dove si può:

  1. immettere il nome della macro, ti invito a usare nomi parlanti e descrittivi con eventualmente numeri progressivi all’inizio e alla fine del nome,
  2. assegnare una sequenza di tasti per richiamarlo velocemente, io preferisco usare altri modi per lanciare le macro, ma se lo preferisci ti invito a utilizzare sequenze CTRL+MAIUSC+Tastoascelta per evitare di sovrapporti a sequenze preesistenti;
  3. selezionare la cartella di lavoro in cui si vuole memorizzare la macro, dall’elenco “Memorizza macro”, scegliendo tra la cartella di lavoro in uso, una nuova o la cartella personale, una cartella nascosta dedicata (Personal.xlsb) che ti permetterà di avere sempre le macro a disposizione sul tuo computer. Io preferisci lavorare sui fogli di lavoro in uso.
  4. Assegnare una descrizione della macro che si vuole registrare, cosa che ti consiglio di fare, a meno che tu non stia facendo prove per imparare a usare lo strumento; la descrizione ti permette di ricordarti.

Finestra registra macro

Una volta inserite le impostazioni clicca sul tasto “Ok” per iniziare a registrare le azioni che compi sul foglio di lavoro. Una volta che hai terminato è sufficiente ripremere il pulsante “interrompi registrazione” sulla barra multifunzione, menù “Sviluppo”, oppure il pulsante sulla barra di stato in basso a sinistra.

Come si dovrebbe usare il registratore di macro?

Prima di registrare macro è opportuno dedicare un poco di tempo a valutare il tuo obiettivo e confermare la tua scelta. Per farlo in modo efficace è utile rispondere ad alcune domande preliminari:

  1. Qual è l’obiettivo della macro che voglio realizzare?
  2. Quale utilizzo penso di farne?
  3. Quanto tempo mi permette di risparmiare?
  4. Quanto tempo devo lavorarci per realizzare la macro?
  5. Risolve pienamente il mio bisogno? Raggiunge il mio obiettivo?
  6. Ci sono altri modi o strumenti per ottenere lo stesso risultato?

Queste domande mirano a farti comprendere se la macro è effettivamente la migliore soluzione al nostro problema e se vale la pena spenderci tempo e risorse. Forse ci sono alternative meno onerose, forse è sufficiente usare una tabella pivot, o modificare le impostazioni di excel. Oppure non ne vale la pena perché per realizzare la macro spenderei più tempo di quello che risparmierei.

Una volta che hai confermato la tua scelta, è consigliabile gestire la realizzazione della macro come se fosse un progetto di sviluppo e procedere come segue:

  1. Definisci l’obiettivo: dedica 2 minuti per scrivere in modo particolareggiato l’obiettivo che vuoi raggiungere con la macro che vuoi realizzare, per esempio “voglio che la macro aggiunga nella pagina in cui viene lanciata una riga, un titolo e data”;
  2. Pianificare la registrazione: scrivi ogni singola attività che vuoi o devi registrare per ottenere la tua macro, per esempio:
    1. “Seleziona prima riga,
    2. inserisci riga,
    3. seleziona cella A1,
    4. scrivi ‘Report produzione’,
    5. Seleziona cella A6,
    6. Inserisci ‘=oggi()’,
    7. Copia,
    8. Incolla valori”.
  3. Registrare la macro: lancia la registrazione come descritto sopra ed esegui le attività programmate, procedi con calma e una volta terminato, arresta il registratore;
  4. Verificare la macro: verifica il funzionamento della macro almeno una volta lanciandola in condizioni analoghe e controllando che funzioni nel modo corretto. In caso contrario ripeti la registrazione con le modifiche necessarie e ripeti la verifica finché non ottieni il risultato voluto.

Finestra macro

Come si lancia una macro?

Ci sono molti modi per lanciare una macro in Excel, le vedremo tutte più avanti, ma quelle dirette sono le seguenti:

  1. attraverso la finestra “Macro”, richiamabile premendo Alt+F8, oppure cliccando sul comando “Macro” della scheda “Sviluppo” della barra multifunzione;
  2. premendo la sequenza di tasti se l’hai impostata al momento della registrazione;
  3. da dentro il vba editor (premi ALT+F11 per aprirlo, F5 per lanciare una macro), se lavori direttamente sul codice.

Se hai bisogno di lanciare una macro per verificare che funzioni correttamente, la finestra “Macro” è la soluzione tipica: premi ALT+F8, scegli la macro dalla lista delle macro visualizzate e clicchi sul pulsante “Esegui” per lanciarla (ti consiglio di salvare prima farlo).

Dalla stessa finestra puoi aprire l’editor Vba (pulsante “Modifica”), puoi eleminare la macro (“pulsante “Elimina”), modificare le proprietà della macro (pulsante “Opzioni”), per esempio la descrizione o i tasti di scelta rapida, oppure puoi lanciare direttamente il debug nell’editor (pulsante “Esegui istruzione”).

Come lavori sul codice della macro?

Se vuoi vedere e modificare il codice della macro devi usare l’editor vba. Per aprire l’editor premi ALT+F11, oppure premi il comando “Visual Basic” della scheda “Sviluppo” della barra multifunzione, oppure come abbiamo appena visto, dalla finestra “Macro” premi il pulsante “Modifica”. Ti invito a leggere il post “Introduzione al Visual Basic Editor” per una prima infarinatura sull’editor.

Quando apri l’editor Vba vedrai nella finestra del codice la macro appena registrata. Per modificare il codice in modo efficace devi imparare a usare l’editor, le basi della programmazione e il linguaggio vba. Tutto questo richiede tra apprendimento ed esperienza diverse centinaia di ore di lavoro. Se usi Excel occasionalmente o poco ti consiglio di non pensarci neppure.

Però puoi sempre imparare a fare un po’ di copia e incolla. Per esempio se vuoi realizzare una macro piuttosto lunga, puoi registrarla a piccoli passi per poi fondere le diverse macro in una sola. Come? Entri nell’editor, individui le macro dai nomi che hai dato loro e cancelli le righe “End sub” e “Sub titolo()” che trovi tra le macro che dovrebbero essere consecutive.

Quali macro è utile registrare?

In teoria tutte le macro che ti fanno risparmiare tempo eseguendo in automatico attività ripetitive. Questo naturalmente solo se il tempo per realizzare la macro è minore del tempo che risparmierai non facendo quelle attività.

Come abbiamo già visto in altri post, il lavoro con excel si divide tra il tempo speso per la costruzione del foglio di lavoro e quello per la gestione del foglio di lavoro. La costruzione del foglio di lavoro richiede competenza, limitata ripetitività e di solito una spesa significativa di tempo. La gestione del foglio richiede poca competenza, maggiore ripetitività e una spesa ripetuta di tempo, che può diventare considerevole se il foglio di lavoro deve essere usato per tempi molto lunghi.

Detto questo, in pratica i modi migliori per ridurre le attività ripetitive sono:

  1. avere già il foglio di lavoro pronto per l’uso, o averne uno che possiamo adattare in fretta; questo significa realizzare una propria “cassetta degli attrezzi” costituita da modelli e fogli fatti da altri, o costruita da noi stessi;
  2. durante la realizzazione del foglio di lavoro, applicare buone pratiche per la riduzione del tempo di lavoro/gestione e usare strumenti avanzati dinamici che richiedono poco tempo per l’uso e la gestione.

La fase in cui si realizza il foglio di lavoro è il momento in cui si decidono gli obiettivi, quali strumenti impiegare, la complessità del foglio, la dinamicità e l’interattività delle soluzioni, quindi i tempi di gestione. Usare strumenti più evoluti, per esempio le “tabelle Excel” invece di tabelle non strutturate, o tabelle e grafici pivot invece di tabelle di formule e funzioni e grafici statici, semplifica il lavoro di aggiornamento e gestione del foglio e riduce le attività ripetitive e gli eventuali controlli, quindi riduce il tempo speso.

D’altra parte usare strumenti più evoluti significa acquisire maggiori competenze, quindi spendere tempo per farlo. Questo non è sempre la soluzione migliore, spesso per esempio è più vantaggioso usare il lavoro fatto da altri, modelli pronti o perfino programmi diversi. In ogni modo le attività ripetitive si minimizzano, ma non si possono mai eliminare del tutto, per la natura di excel e perché richiederebbe troppo tempo per l’apprendimento delle competenze, per la personalizzazione e l’automazione del progetto.

Comunque dove le attività ripetitive sono significative è possibile creare delle macro che ci permettono di risparmiare tempo. Il problema è che le macro ottenute dal registratore sono precise, ma non sono intelligenti, eseguono comandi diretti, ma senza controlli, condizionalità o decisionalità.

Quando inizi a realizzare macro con il registratore è importante che lo ricordi sempre per evitare di sprecare tempo. È anche opportuno che tenga sempre presente che modifiche al foglio di lavoro possono rendere inutilizzabile la macro costringendoti a rifarla e che difficilmente potrai usare le stesse macro in un altro foglio. È possibile fare macro “registrate” adatte a lavorare su fogli diversi, ma saranno comunque limitate e per realizzarle sarà necessario conoscere bene Excel e un minimo di Vba.

Come si usano le macro che hai realizzato?

Come accennato in precedenza esistono molti modi per eseguire una macro in Excel. Abbiamo visto come funziona la finestra delle “Macro”, la possibilità di lanciarle tramite sequenza di tasti o dentro il vba editor, ma nella pratica questi metodi vengono usati in momenti e per esigenze specifiche. Ci sono altri metodi più comodi e intuitivi per lanciare una macro:

  1. un oggetto grafico a cui colleghiamo una macro; per esempio puoi usare una forma, un’immagine, o un disegno; un classico è usare un rettangolo per la sua somiglianza a un pulsante; per assegnare la macro fai in questo modo:
    1. clicca con il pulsante destro sulla forma per aprire il menù,
    2. clicca su “Assegna macro” per aprire la finestra relativa,
    3. seleziona la macro dalla lista,
    4. clicca sul pulsante “Ok”.

    Per lanciare la macro clicca sulla forma, il disegno o l’immagine come se fosse un pulsante.

  1. un pulsante posizionato in una pagina del foglio di lavoro; il pulsante è uno dei controlli, oggetti speciali concepiti per permettere all’utente di agire o interagire con il foglio di lavoro; possono essere aggiunti al foglio di lavoro tramite il comando “Inserisci” della scheda “Sviluppo” della barra multifunzione. Ai controlli possono essere assegnate macro, di solito al momento del posizionamento nella pagina, o cliccando con il destro e selezionando il comando “Assegna macro” per aprire la finestra relativa. Li tratteremo in modo particolareggiato in altri post futuri dedicati all’uso dei controlli.
  1. un pulsante della barra di accesso rapido, la prima in alto, che è possibile impostare come segue:
    1. clicca su File,
    2. clicca su Opzioni,
    3. clicca su Barra di accesso rapido,
    4. apri l’elenco sotto “Scegli comandi da”,
    5. clicca su “macro”,
    6. seleziona la macro che vuoi assegnare al pulsante.
    7. clicca sul pulsante “Aggiungi” per spostare la macro nell’elenco di pulsanti presenti sulla barra di accesso rapido,
    8. clicca sul pulsante “Ok”.

    Cliccando sul nuovo pulsante lancerai la macro.

  1. un pulsante in un gruppo personalizzato della barra multifunzione, che puoi impostare come segue:
    1. clicca su File,
    2. clicca su Opzioni,
    3. clicca su Personalizzazione barra multifunzione,
    4. seleziona la scheda della barra a cui vuoi aggiungere il gruppo personalizzato,
    5. clicca sul pulsante “Nuovo gruppo” per aggiungere un nuovo gruppo,
    6. seleziona il nuovo gruppo appena creato,
    7. clicca con il pulsante destro per aprire il menù,
    8. clicca sul comando rinomina e digita il nome del nuovo gruppo,
    9. apri l’elenco sotto “Scegli comandi da”,
    10. clicca su “macro”,
    11. seleziona la macro che vuoi assegnare al pulsante.
    12. clicca sul pulsante “Aggiungi” per spostare la macro nel nuovo gruppo, la macro verrà aggiunta alle macro personali e sarà disponibile nella barra per tutti i fogli excel,
    13. clicca sul pulsante ok
  1. un pulsante posizionato in una maschera preparata tramite l’editor vba; realizzarle richiede la conoscenza del vba, dell’editor e degli strumenti avanzati di Excel. Tratteremo questo argomento in post futuri dedicati alla realizzazione e all’uso delle maschere.
  1. eseguire la macro in modo automatico all’avvenire di un dato avvenimento, per esempio l’apertura del foglio di lavoro, o la selezione di una pagina. Questo sistema deve essere impostato tramite l’editor vba e richiede elevate competenze nel vba e in Excel.

I metodi più semplici e classici sono i primi 2, usare un pulsante o un oggetto che somiglia a un pulsante, posizionati in una pagina specifica, a cui assegnare la macro che hai preparato in precedenza.

Conclusioni

Il registratore di macro è uno strumento classico e potente di Excel che si impara facilmente a usare 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. Per esempio con macro “registrate” è possibile realizzare o aggiornare report settimanali, facendoti risparmiare 5 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 di macro è 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.

Grazie per avermi seguito fin qui. Spero che questo post ti possa aiutare nel tuo lavoro. A presto ;D

 

PS: ho preparato una checklist con la traccia del metodo e diversi esempi di macro flessibili, utilizzabili in diversi fogli di lavoro. Può essere utile, perciò ti invito a registrarti a Excel professionale attraverso la maschera qui di seguito. Potrai accedere a tutti i contenuti gratuiti finora pubblicati e a quelli futuri.

 

 

PSS: Se questa guida ti è piaciuta o ti è stata utile, condividilo con gli amici sui social.
Puoi farlo attraverso i pulsanti qui di seguito. Grazie

Rispondi

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