Guida al registratore di Excel

registratore di ExcelQui introduciamo il registratore di Excel, uno strumento storico di Office 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 Excel?

Il registratore di macro di Excel permette di tradurre in codice Vba (visual basic for application) le attività svolte su un foglio Excel. 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 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 siano inutili, 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 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, è necessaria la conoscenza del linguaggio vba.

Il registratore aiuta a studiare il 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 tempo solo per scriverle.

Quindi permette ai principianti di registrare una “bozza” dei comandi su cui lavorare per creare quello che vogliono. Questo metodo di studio però rischia di far trascurare agli studenti aspetti importanti del vba, limitando le competenze e il loro approccio alla gestione degli oggetti e delle proprietà sulla pagina, oltre che spingere a realizzare macro con più codice del necessario.

Dove trovo il registratore di macro?

Partiamo dall’inizio: dov’è il comando del registratore?

Pulsante registra macro

Il comando si trova nella scheda “Sviluppo” della barra multifunzione. La scheda non viene visualizzata stabilmente nella barra per impostazione predefinita, ma appare solo a seguito di eventi o interazioni, per esempio con macro o controlli. È 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. premi 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. premi 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”.

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

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 registra macro 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 attivabili. Tra queste troverai la voce “registrazione macro“, cliccala per far comparire l’icona all’istante.

Come si lancia il registratore di macro?

Il registratore si può lanciare dal 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 di Excel.

Finestra registra macro

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 eventuali numeri progressivi all’inizio o alla fine del nome,
  2. assegnare una sequenza di tasti per richiamarlo velocemente, te lo sconsiglio, ci sono altri modi per lanciare le macro, ma se lo preferisci evita di sovrapporti a sequenze preesistenti (vedi tabelle del corso Usa Excel come un professionista per sapere quali);
  3. selezionare la cartella di lavoro in cui si vuole memorizzare la macro, dall’elenco “Memorizza macro”; puoi scegliere tra la cartella di lavoro in uso, una nuova o la cartella personale, una speciali cartella nascosta (Personal.xlsb) che ti permetterà di avere le macro sempre a disposizione sul tuo computer qualunque sia il foglio che aprirai.
  4. Assegnare una descrizione della macro che si vuole registrare, cosa che consiglio di fare, utile per ricordarti in futuro uso e scopo della macro.

Una volta inserite le impostazioni clicca sul tasto “Ok” per iniziare a registrare le azioni che compi sul foglio di lavoro. Come puoi vedere l’icona del comando, sia sulla barra multifunzione che sulla barra di stato è cambiato proprio per indicare lo stato di registrazione in corso.

Una volta che hai terminato la registrazione è sufficiente ripremere il pulsante per interrompere la registrazione, sempre sulla barra multifunzione, menù “Sviluppo”, oppure sulla barra di stato in basso a sinistra.

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

Come si dovrebbe usare il registratore di macro?

La registrazione di una macro non comincia dal pulsante del comando “Registra macro”, ma dall’obiettivo che ti sei posto e il metodo più efficace prevede una valutazione e una progettazione della macro prima dell’esecuzione.

In particolare le fasi sono le seguenti:

  1. Valutazione dell’obiettivo,
  2. Progettazione della macro,
  3. Registrazione della macro,
  4. Test della macro,
  5. (eventuale) Revisione della macro.

Approfondiamo ogni singola fase. Se ti sei registrato a Excel professionale, puoi aiutarti con la checklist che hai scaricato o che ti ho inviato. Se non sei registrato, ti invito a farlo attraverso il form nella barra in alto a destra.

 

1. Valutazione del tuo obiettivo

Questo può essere realizzato semplicemente rispondendo ad alcune domande. E’ sufficiente qualche minuto. 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 fin da subito, 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”, ma non è necessario che tu faccia una lista particolareggiata delle attività.

  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? Devi definire quale sarà il ruolo della macro nelle tue attività future per progettarla e realizzarla nel modo migliore.

  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 svolgerai le attività. Poi fai una stima delle volte che userai il foglio di lavoro e in cui spenderai il tempo. Infine calcola il 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 circa 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 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.

2. Progettazione della macro

Dedica 2 minuti per scrivere in modo particolareggiato l’obiettivo che vuoi raggiungere con la macro che vuoi realizzare. Se hai già 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, eliminando formule e connessioni.

La fase successiva è quella di trasformare l’obiettivo o la lista di macro attività in azioni elementari da svolgere sul foglio Excel e da registrare.

Scrivi ogni singola attività elementare che vuoi o devi registrare per ottenere la tua macro 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” potrebbe diventare:

  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, per copiare
  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, che quindi già conosci, ma solo una parte di esse potranno essere registrate correttamente.

Quali?

Quelle che non prevedono decisioni da parte tua, che non hanno alternative, che non richiedono verifiche e che vengono sempre eseguite. Questo perché il registratore registra azioni e null’altro e le macro registrate eseguono azioni e null’altro. Prima di continuare è meglio ricordare quali sono i limiti del registratore e quindi delle macro che produce.

Quali sono i limiti delle macro registrate?

Il registratore scrive solo i comandi diretti, la creazione e l’interazione con gli oggetti che compongono l’ambiente di Excel, 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, per esempio:

  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
  6. e altro ancora.

Inoltre le macro registrate saranno legate direttamente agli oggetti con cui interagiscono e su cui agiscono, come tabelle, pagine, eccetera, che dovranno essere presenti all’inizio dell’esecuzione e saranno indicati specificatamente. Il funzionamento delle macro registrate dipende dalle condizioni preliminari definite a livello di progetto e registrazione.

Cosa sono le condizioni preliminari?

Le condizioni preliminari o condizioni iniziali sono le condizioni richieste per l’esecuzione corretta della macro, per esempio:

  1. la presenza degli oggetti specifici con cui deve interagire,
  2. la presenza o assenza di impostazioni o proprietà che escludono una o più azioni della macro con o senza errori, (per esempio non si può proteggere una pagina che è già protetta),
  3. la selezione o attivazione di oggetti,
  4. l’assenza di errori o di valori richiesti.

E altro ancora. Se le condizioni iniziali non corrispondono a quelle previste o implicite dalle attività che la macro svolge, allora i risultati saranno diversi da quelli attesi e si potranno verificare anche effetti negativi per il foglio o i dati.

Per questo ti invito a scrivere le condizioni iniziali delle tue macro, perché è opportuno prevedere le condizioni iniziali necessarie a una macro, sia per poterle ripristinare o garantire, per esempio tramite istruzioni precise sulla pagina, sia per eliminarle dove possibile o modificarle allo scopo di rendere le macro registrate più flessibili.

Macro flessibili

Come rendere la macro registrate utilizzabili su più fogli di lavoro?

Sostanzialmente i modi più efficaci sono i seguenti:

  1. ridurre le condizioni iniziali, o meglio eliminarle proprio, un modo è creare gli oggetti sul momento e non interagire con quelli esistenti, per esempio un nuovo foglio di lavoro o una nuova pagina;
  2. usare oggetti con nomi generici e predefiniti, per esempio chiamare la pagina dei dati “Dati” e quella del report “Report”, la tabella “TabellaRisultati”, o identificare intervalli con nomi standard come “fatture”, “vendite”, eccetera;
  3. usare strumenti dinamici, che si adattano da soli alle variazioni, che potranno gestire una parte delle variazioni delle condizioni, per esempio usando tabelle excel (Ctrl+T) o le tabelle pivot, funzioni indipendenti come Oggi();
  4. muoversi nella pagina il meno possibile, e dove necessario usare i comandi veloci, per esempio Ctrl+Fine per saltare all’ultima cella in basso a destra dell’area di lavoro, o Ctrl+Destra per saltare alla prima o ultima cella vuota o piena (ti invito a leggere e studiare il corso Usa Excel come un professionista);
  5. 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.
  6. e altro ancora.

Ora torniamo alla lista delle attività da selezionare e registrare.

Seleziona le attività da registrare

Dopo aver compreso i limiti delle macro registrate e aver definito le condizioni iniziali della macro, è importante riesaminare la lista delle attività per eliminare quelle che contengono implicitamente o esplicitamente decisioni, controlli, e così via che normalmente vengono realizzati dall’operatore.

Non potrai automatizzare quelle attività a meno di:

  1. “fissarle”, cioè a meno di intervenire a monte per eliminare alternative o variazioni;
  2. registrare macro diverse per ogni alternativa, che dovranno essere gestite e utilizzate dall’operatore in modo corretto.

Se non puoi automatizzare le attività, chi se ne occuperà?

Tu, l’operatore. O in alternativa devi procurarti macro evolute in grado di farlo.

Registra la macro in più parti

E se la tua lista è molto lunga?

Quando le attività sono molte, allora vale la pena considerare la registrazione modulare delle macro. Invece di registrare tutte le attività in una sola volta, la suddividi in parti che registri separatamente. Quando hai liste con più di 30 attività da registrare lo consiglio, dividi la lista in parti uguali e registrane una alla volta.

Una volta registrate tutte le parti, devi unirle in una sola macro. Anche se non conosci il codice vba è piuttosto semplice:

  1. apri la finestra “Macro” (premi Alt+F8),
  2. seleziona la prima macro che hai registrato,
  3. clicca il pulsante “Modifica” per aprire il Vbe direttamente alla macro.
  4. 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”.

 

3. Registrazione della macro

Ora è tempo di eseguire la registrazione:

  1. salva il foglio di lavoro, ricordatelo, è importante,
  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

4. Testa la macro

Una volta che hai terminato una registrazione perfetta, devi verificarne il funzionamento. Sono sicuro che tu abbia registrato la macro perfettamente, ma vuoi esserne sicuro, vero? Quindi lanciala per verificare che abbia gli effetti previsti. Controlla con attenzione che svolga tutte le attività nel modo corretto.

Il mio consiglio è quello di verificarla 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 subito dopo il primo lancio;
  3. la terza, modificando le condizioni iniziali o a simulare un lancio non voluto, per esempio provando a lanciarla prima del previsto.

È importante conoscere lo strumento che hai creato e che utilizzerai nel tuo lavoro. 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.

5. Revisione della macro

Nel caso in cui la macro non funzioni correttamente o provochi danni rilevanti in caso di lancio errato, è opportuno revisionarla modificandone le azioni elementari per ottenere i risultati previsti o ridurre i rischi. Ripeti la registrazione con le modifiche e successivamente ripeti la fase di test, tutto questo finché non ottieni il risultato voluto.

Sul metodo per registrare macro utili ed efficaci che ho appena descritto ti invito a guardare il secondo video del minicorso sul registratore di macro.

Nota importante: 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.

Ora hai una macro funzionante, ma come la usi?

Come si lancia una macro?

Ci sono molti modi per lanciare una macro in Excel, quelle utilizzate in fase di realizzazione 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.

Finestra macro

Di solito quando testi la macro, se hai bisogno di lanciarla 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 (premi il 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:

  1. premi ALT+F11,
  2. oppure premi il comando “Visual Basic” della scheda “Sviluppo” della barra multifunzione,
  3. oppure come abbiamo appena visto, dalla finestra “Macro” premi il pulsante “Modifica”.

visual basic editor

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. Però puoi sempre imparare a fare un po’ di taglie e cuci, per esempio come spiegato più sopra per la registrazione in più parti della macro.

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

Come si usano le macro che hai realizzato?

Come accennato in precedenza esistono molti modi per eseguire una macro in Excel. Abbiamo visto la finestra “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, per esempio:

  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 e di solito viene richiesto al momento del posizionamento nella pagina. Altrimenti è possibile assegnare la macro al pulsante:
    1. cliccando con il pulsante destro del mouse sul pulsante
    2. cliccando sul comando “Assegna macro” per aprire la finestra relativa
    3. seleziona la macro dalla lista,
    4. clicca sul pulsante “Ok”.
  2. un’alternativa al pulsante è l’uso di un oggetto grafico a cui colleghiamo una macro; per esempio puoi usare una forma, un’immagine, o un disegno; un classico è usare un rettangolo colorato per la sua somiglianza a un pulsante; per assegnare la macro:
    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”.
  3. un pulsante della barra di accesso rapido, la prima barra 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
  2. un pulsante posizionato in una maschera preparata tramite l’editor vba; realizzarle richiede la conoscenza del vba e tratteremo questo argomento in post futuri dedicati alla realizzazione e all’uso delle maschere.
  3. 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.

Il metodo più semplice ed efficace è usare un pulsante posizionato in un pannello di comando in una pagina dedicata, ma è sempre vero? No, dipende dal tipo di macro che crei e usi. È quindi il momento di parlare su come gestire le macro.

Dove sono salvate le macro?

Come descritto in precedenza, al momento della registrazione è possibile salvare le macro nel foglio di lavoro in uso, o in un nuovo foglio di lavoro, oppure nella cartella personale. Come spiegato nel capitolo dei limiti, le macro del registratore sono di solito legate agli oggetti del foglio di lavoro per cui vengono concepite per lavorare in uno specifico foglio Excel e difficilmente sono utilizzabili in più di un foglio di lavoro.

Quindi nella maggior parte dei casi si preferisce salvare le macro nei fogli di lavoro in cui vengono registrate e in cui utilizzate attraverso pulsanti posti in pannelli di comando appositi o direttamente nelle pagine su cui devono lavorare.

Come si crea un pulsante?

Ripetiamolo: dalla scheda “Sviluppo” della barra multifunzione, clicchi sul comando “Inserisci controlli” e selezioni 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 selezionare la macro da linkare al pulsante appena creato. Fai una prova

Le cose cambiano quando realizziamo macro che possono essere utilizzate in fogli di lavoro diverse. In tal caso possiamo:

  1. installare gli automatismi in ogni foglio, copiando le macro da un foglio all’altro con il visual basi editor in questo modo
  2. apri entrambi i fogli excel,
  3. seleziona quello che contiene la macro,
  4. premi Ctrl+F11 per aprire il Vbe,
  5. dalla finestra del codice, quella grande, con il mouse seleziona il codice da copia (clicca e tieni premuto il tasto sinistro),
  6. copialo,
  7. nella finestra dei progetti in alto a sinistra seleziona il nome del file excel destinazione e clicca con il destro sul nome,
  8. dal menù seleziona “inserisci”, poi clicca su “modulo” per creare un modulo in cui copiare le macro,
  9. incolla il codice delle macro.

per poi agganciare la macro a pulsanti e pannelli di comando, altrimenti puoi

  1. salvare o copiare le macro nella cartella macro personale.

Cos’è la 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 come descritto sopra, puoi importare ed esportare le macro da questa cartella.

Come lanciare le macro dalla cartella personale?

Se hai macro flessibili e preferisci usarle dalla cartella personale, il metodo più efficienti per lanciarle è quello di posizionare un pulsante sulla barra veloce o su quella multifunzione a cui assegnare la macro che hai preparato in precedenza, come descritto in precedenza.

Considerazioni sulle macro e sul risparmio di tempo

In teoria tutte le macro 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à.

Ma le macro sono gli unici modi per risparmiare tempo?

No.

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 molta competenza, prevede una 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.

La fase in cui si realizza il foglio di lavoro è il momento in cui si decidono e definiscono i tempi di gestione, a seconda della complessità del foglio, degli strumenti impiegati, degli obiettivi, della dinamicità, eccetera.

Detto questo, in pratica i modi migliori per risparmiare tempo 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 noi stessi o da modelli e fogli fatti da altri, risultato ottenibili nel lungo periodo;
  2. durante la realizzazione del foglio di lavoro, è consigliato applicare buone pratiche per la riduzione del tempo di gestione e usare strumenti avanzati dinamici che richiedono meno tempo per natura. Usare strumenti più evoluti semplifica il lavoro di gestione del foglio e riduce le attività ripetitive, ma questo richiede di acquisire maggiori competenze e spendere tempo per farlo.
  3. una volta realizzato il foglio è opportuno creare e usare macro per automatizzarne le attività ripetitive se queste richiedono troppo tempo.

Ricorda che le attività ripetitive si minimizzano, ma non si possono mai eliminare del tutto, per la natura di excel e perché oltre un certo limite richiederebbe troppo tempo per l’apprendimento delle competenze, per la personalizzazione e l’automazione del progetto.

Comunque dove le attività ripetitive sono rilevanti è spesso possibile creare delle macro che ci permettono di risparmiare tempo. Se conosciamo il vba potremo creare strumenti intelligenti e più efficienti da impiegare, ma anche le macro registrate per quanto poco intelligenti, sono comunque precise ed efficaci e permettono di risparmiare tempo.

Quando inizi a realizzare macro con il registratore è importante che ricordi sempre che lo scopo è risparmiare tempo.

È anche opportuno tenere sempre presente i limiti delle macro registrate e che, per esempio, modifiche al foglio di lavoro possono rendere inutilizzabili la macro costringendoti a ricrearle nuovamente.

Con l’esperienza è possibile realizzare macro registrate adatte a lavorare su fogli diversi, ma saranno comunque limitate rispetto alle macro sviluppate direttamente.

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.

 

checklist registratore di macro

PS: come accennato all’inizio 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.