Uso delle macro in Excel (con esempi)

Argomenti trattati: ,
Pubblicato il: 16 Febbraio 2021 , Ultimo aggiornamento: 18 Febbraio 2021

Le macro di Excel sono uno degli strumenti più versatili e potenti disponibili nei fogli di calcolo Excel; nella pratica, si tratta di sequenze di operazioni (che poi si traducono in click e editing di caselle da tastiera) che possiamo sfruttare in modo “visuale”, registrandole e riproducendole in contesti diversi da quelli in cui sono state create. Le macro vengono “tradotte” a tempo di run in sequenze di istruzioni, che sono formalizzate in linguaggio di scripting per Excel detto VBA. La registrazione è “selettiva”, nel senso che non tiene conto eventuali pause nell’esecuzione dei comandi, massimizzando così facendo, i tempi di esecuzione della macro stessa.

Formato file Excel con Macro

Le macro nei fogli Excel si possono distinguere dal nome dell’estensione del file, per cui

file.xls

è un file Excel senza macro mentre

file.xlsm (Excel Macro-Enabled WorkBook)

è un file con macro. I file con estensione .xlsm possono essere convertiti in .xls o .xlsx senza alcuna perdita: solo le macro (nel secondo caso) sono disattivate.

Su alcune versioni di Excel, le macro possono essere utilizzate per scopi illeciti e per malware di vario genere (soprattutto mediante invio di allegati via email), per quanto la cosa sia sempre progressivamente controllata e gestita con attenzione da Microsoft e dai principali gestori di posta elettronica.

Come abilitare le macro in Excel

È possibile creare un bottone nel foglio che attivi le macro mediante click (es. un bottone “Compila dati”)

  1. Sviluppo -> Inserisci -> Controllo Modulo -> PULSANTE
  2. Tasto destro sul bottone -> Assegna Macro

Esempio pratico di macro in Excel

Ecco un esempio pratico di macro: nel vediamo vediamo l’abilitazione iniziale dentro Excel, anzitutto. Subito dopo andiamo a vedere un esempio con dei dati di prova: una tabella che rappresenta una semplice anagrafica con (NOME, INDIRIZZO, TELEFONO). La popoliamo a mano, per la prima volta, e poi vogliamo inventarci una macro che permetta di copiare tutti i dati in una nuova scheda, sempre nello stesso file.

Per farlo, registriamo la macro con l’apposito pulsante: questo andrà fatto PRIMA di inserire i dati, ovviamente, e dando un nome significativo alla macro personalizzata – altrimenti il rischio è che non venga registrato nulla. Avviata la registrazione, ogni singola operazione che faremo, nell’ordine, sarà memorizzata (e poi ovviamente andrà stoppata una volta che abbiamo finito). E quindi sarà immediato aprire una nuova scheda ed inserire i dati emulando la registrazione che abbiamo appena concluso.

Linguaggio VBA per le macro (cenni)

VBA è un linguaggio di programmazione cosiddetto ad alto livello, specifico per file Excel. I principali oggetti di questo linguaggio sono le subroutine e le funzioni. La subroutine, dette anche anche procedure o macro, eseguono automaticamente un insieme di operazioni, nella cartella, foglio o cella selezionate al momento del lancio.

VBA è uno strumento utile come strumento per estendere, personalizzare o fare meglio/prima ciò che facciamo ogni giorno, e dovrebbe sempre essere visto come uno strumento da usare all’occorrenza.

In molti casi, sul web, trovate moltissimi script VBA già pronti all’uso (soprattutto in inglese e nella documentazione ufficiale di Excel).

VBA lavora sui singoli “pezzi” del file Excel: ad esempio celle, fogli di lavoro, menù, … e nel farlo sfrutta gli elementi tipici dei linguaggi di programmazione come loop, variabili, funzioni predefinite (gli stessi di linguaggio server side come PHP, in qualch modo).

In generale:

  • Ogni istruzione va su una singola riga
  • Ogni istruzione è un “passo” o step “atomico” (non scomponibile) che viene eseguito
  • Non ci sono delimitatori da usare nella sintassi
  • Il tasto RUN permette di avviare la macro

Hello world in VBA

Vediamo un esempio per visualizzare una schermata di notifica con un semplice saluto, ovvero ciò che in informatica si chiama Hello world.

  • hello() è il nome della funzione
  • Sub – End Sub delimitano inizio e fine delle istruzioni al suo interno
  • MsgBox “Testo” è il comando per mostrare una finestra di notifica con l’avviso “Testo”

E per usare le variabili? In questo caso scriveremo:

val1=“”

e sto definendo un’area di memoria in cui memorizzo un valore (una stringa vuota, nell’esempio)

Per prendere valori della cella A1 e salvarli nella variabile scriveremo:

val1= Range(“A1”)

Funzioni utili VBA

Dim MyFile, MyPath, MyName
‘ path che contiene il file “WIN.INI” (su Microsoft Windows), ammesso che esista

MyFile = Dir(“C:\WINDOWS\WIN.INI”)
‘ restituisce il nome del file dato il percorso, nello specifico WIN.INI

MyFile = Dir
‘assegna il valore della variabile Dir dentro la variabile MyFile

5/5 (1)

Che te ne pare?

Grazie per aver letto Uso delle macro in Excel (con esempi) di Salvatore Capolupo su Trovalost.it
Uso delle macro in Excel (con esempi) (Guide, Assistenza Tecnica, guide excel)

Articoli più letti su questi argomenti: