Macro Excel

samuele agnolin
  • 16 ottobre 2017
  • livello: avanzato   5 minuti

Vuoi sapere cos’è una macro? Come registrare ed eseguire una macro? Come associare una macro ad un pulsante? In questo tutorial sulle macro di Excel troverai tutte le risposte!

Della serie ‘come non creare troppe aspettative nel lettore’ :-)

1. Che cos’è una macro

La macro è uno strumento avanzato di Excel che consente di automatizzare e velocizzare attività che svolgiamo periodicamente.

Una macro ci consente di registrare una serie di azioni che compiamo ripetutamente in Excel, dalla formattazione ai calcoli, per poi far eseguire da Excel stesso quelle stesse operazioni tutte le volte in cui dovremo ripetere quelle stesse identiche azioni.

Facciamo un esempio. Ogni lunedì mattina ci arriva un file con un elenco prodotti. Il file ha sempre la stessa struttura. E noi dobbiamo svolgere su quel file 30 operazioni: selezioniamo ed eliminiamo righe, cambiamo l’ordine delle colonne, cambiamo il formato di alcune celle, applichiamo dei filtri, inseriamo delle funzioni…




Vogliamo ad esempio partire da questo file:

elenco da modificare

Ed ottenere un risultato finale come questo:

risultato macro con filtro

Le nostre 30 operazioni, pur semplici, ci portano via 15/20 minuti ogni volta che ci arriva il file del fornitore.

Come possiamo risparmiare tempo con le macro? Noi possiamo svolgere le nostre 30 operazioni una sola volta e, mentre le svolgiamo, possiamo “registrarle” in una macro. Dalla volta successiva a noi basterà eseguire la macro precedentemente registrata e far così svolgere in pochi secondi ad Excel tutte le 30 operazioni ripetitive.

Nei prossimi paragrafi di questo tutorial sulle macro partiremo da zero. Vedremo come si registra una macro, come si esegue, come la si associa ad un pulsante. Negli aggiornamenti che seguiranno ti mostrerò anche degli esempi pratici, ispirati a quello che i miei corsisti mi chiedono più frequentemente.

2. Registrare una macro

Registrare una macro Excel significa andare a “salvare” una serie di azioni per poterle poi rieseguire in un secondo momento.

Questi i punti che dobbiamo seguire per svolgere una macro:

 A  Scheda “Visualizza”, clic su Macro e comando Registra macro
visualizza macro
Inseriamo le informazioni nella finestra “Registra macro”:
nome descrizione macro
 B  Nome macro: specifichiamo un nome che richiami il motivo per cui stiamo creando la macro
 C  Tasto di scelta rapida: possiamo associare l’esecuzione della macro all’utilizzo di una combinazione di tasti, opportunità a mio avviso poco ragionevole
 D  Memorizza macro in: “Questa cartella di lavoro” significa che associamo la macro al file in cui stiamo lavorando, “Cartella macro personale” vuol dire che stiamo per registrare la macro in un contenitore di macro accessibile in futuro da tutti i file Excel aperti dall’utente che sta creando la macro
 E  Descrizione: un commento che descriva lo scopo della macro, non farà parte del codice che verrà eseguito dalla macro
 F  Eseguiamo tutte le attività che vogliamo registrare nella macro (come, ad esempio, allargare colonne, selezionare ed eliminare righe, impostare un filtro)
operazione larghezza colonneoperazione selezione righe vuoteoperazione inserimento filtro

Interrompiamo la registrazione: su Visualizza / Macro ora il pulsante “Registra macro…” è stato sostituito da “Interrompi registrazione” (oppure utilizziamo il quadratino di STOP posto in basso a sinistra nella barra di stato)

3. Salvare il file con la macro

Quando proviamo a salvare il nostro file ci viene mostrata questa finestra.
salvataggio con attivazione macro

Excel ci avvisa che il formato standard (.xlsx) non ci permette di salvare la macro. Dobbiamo rispondere No. Se rispondessimo Sì manterremmo il formato attuale (.xlsx) e perderemmo la macro registrata. Dopo aver cliccato sul pulsante No ci viene proposta la finestra del “Salva con nome”. Qui dobbiamo cambiare il formato scegliendo “Cartella di lavoro con attivazione macro”.

Il formato sarà quindi “.xlsm” invece che lo standard “.xlsx”.

La necessità di utilizzare un formato specifico per le macro è stato introdotto per aumentare il livello di sicurezza dei file di Excel. Come approfondiremo nel corso di questo tutorial sulle macro, è possibile inserire del codice visual basic all’interno delle macro. Con il codice è possibile teoricamente scrivere anche istruzioni volte a danneggiare chi le utilizza: eliminazione di contenuti, modifiche alla struttura dei file, ecc..

Con l’estensione “.xls” era ed è possibile salvare i file con le macro create. Se riceviamo un file “.xls” quindi non possiamo sapere a priori se nel file c’è o meno una macro. Se riceviamo un file “.xlsx” sappiamo invece che nel file non ci sono macro.

4. Eseguire una macro

Eseguire una macro significa far compiere ad Excel i comandi che abbiamo registrato nella macro.

ATTENZIONE: l’esecuzione della macro andrà ad apportare modifiche che non potremo annullare con il classico comando Annulla (o CTRL+Z). Non potremo quindi “tornare indietro” come facciamo quando effettuiamo le classiche attività in Excel. L’unico modo per tornare alla situazione pre-macro sarà quello di chiudere il file senza salvare.

Buona norma è, quindi, cominciare a fare “esperimenti” con le macro su copie dei nostri file.

Per eseguire una macro i passaggi sono i seguenti:
 A  Scheda “Visualizza”, clic su Macro e comando Visualizza macro
esegui macro B  In questa scheda vengono mostrate le macro create in tutti i file al momento Tutte le cartelle di lavoro aperte”
 C  Clic sul nome della macro da eseguire
 D  Clic sul pulsante “Esegui
 E  La macro eseguirà tutte le istruzioni che avevamo registrato.

Nelle versioni 2007 e successive l’esecuzione della macro, così come la sua registrazione, può essere avviata anche dalla scheda Sviluppo della barra multifunzione.

Non vedi la scheda Sviluppo nel tuo Excel? Nel prossimo paragrafo vediamo come visualizzarla.
La scheda Sviluppo ci tornerà utile anche nel paragrafo “Associare una macro ad un pulsante”.

5. Come visualizzare la scheda Sviluppo

Se tra le schede della barra multifunzione non vedi la scheda Sviluppo i passaggi per visualizzarla sono i seguenti:
tasto destro personalizza barra multifunzione A  Tasto destro su un qualsiasi punto della barra multifunzione
 B  Clic su “Personalizza barra multifunzione…
 Nell’elenco di destra, che mostra le schede di Excel, metti la spunta sulla voce Sviluppo
scheda sviluppo

Nella scheda Sviluppo trovi una serie di comandi che servono per lavorare con le macro e con altri strumenti avanzati utili.

gruppo codice barra sviluppo Nella parte sinistra trovi il gruppo Codice, contenente i comandi per visualizzare l’elenco delle macro disponibili (pulsante Macro), quello per registrare le macro (Registra macro) e quello per visualizzare l’ambiente VBA (il primo, il pulsante Visual Basic).

Cos’è l’ambiente VBA? Te ne parlo in uno dei prossimi paragrafi, per ora ti anticipo, o ti ricordo, che VBA sta per Visual Basic for Applications. Visual Basic è un noto linguaggio di programmazione, ed è il linguaggio con cui Excel “traduce” le azioni che noi compiamo in fase di registrazione della macro. La A di VBA sta per “for Applications”, dicitura che fa capire che il linguaggio usato da Excel (e da gli altri applicativi Office) è una particolare declinazione del linguaggio Visual Basic, adattato e personalizzato per Excel.

Ti mostrerò esempi di codice per poter capire meglio cosa vuol dire che Excel “traduce” in linguaggio VBA le azioni che registriamo.

Per il momento restiamo nella barra Sviluppo appena resa visibile perché in essa si trova lo strumento che ci permette di inserire un pulsante che cliccato andrà ad eseguire una macro.

6. Associare una macro ad un pulsante

Ora vogliamo inserire un bottone che, premuto, ci vada ad avviare una delle macro da noi precedentemente create. È quindi un’alternativa all’esecuzione dalla macro dal comando Visualizza macro, visto nel paragrafo Eseguire una macro.

Per poter lanciare una macro con un pulsante i passaggi da svolgere sono i seguenti:
 A  Nella scheda Sviluppo si clicca sulla voce Inserisci
 B  Si clicca sul primo controllo, il Pulsante
 C  Ora che il puntatore è diventato una croce sottile possiamo tener premuto il tasto sinistro e definire così la forma del pulsante
 D  Una volta rilasciato il tasto sinistro si apre una finestra che chiede di scegliere quale macro vogliamo che venga eseguita al clic sul bottone
assegna macro
 E  Scegliamo la macro da associare e diamo Ok
 F  Clicchiamo ora alla scritta provvisoria che è stata data al pulsante, poi clicchiamo su una qualsiasi cella.

Ad ogni clic sul pulsante la nostra macro verrà eseguita!

A breve ti mostrerò esempi pratici sul codice e risponderò a frequenti dubbi che ci sorgono quando iniziamo ad utilizzare le macro.

2 Comments

You can post comments in this post.


  • Ciao grazie mille per aver creato questo tutorial. Le operazioni di registrazioni macro di solito vanno bene per un’unico foglio. Ma se devo fare l’operazione su più fogli e questi possono avere nomi diversi o spostati di ordine allora bisogna usare il codice VBA che permette di spostarsi tra i fogli in base al nome o in base alla posizione assoluta.
    In poco tempo ho fatto cose impensabili….

    Fabio 2 mesi ago Reply


    • Grazie a te Fabio. Hai ragione, l’utilizzo di più fogli può creare qualche intoppo nell’utilizzo della macro. Come dici tu bisogna personalizzare il codice VBA. La mi intenzione è quella di approfondire sempre più questo tutorial sulle macro ed inserire anche esempi di codice per ovviare a problematiche come quella che tu segnali.

      samuele 2 mesi ago Reply


Inserisci un commento