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â€)
- Sviluppo -> Inserisci -> Controllo Modulo -> PULSANTE
- 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.
Usa il codice
189ed7ca010140fc2065b06e3802bcd5
per ricevere 5 € dopo l'iscrizione
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 esistaMyFile = Dir(“C:\WINDOWS\WIN.INI”)
‘ restituisce il nome del file dato il percorso, nello specifico WIN.INIMyFile = Dir
‘assegna il valore della variabile Dir dentro la variabile MyFile
👇 Contenuti da non perdere 👇
- Gratis 🎉
- Informatica 🖥
- intelligenza artificiale 👁
- Marketing & SEO 🌪
- monitoraggio servizi online 📈
- Programmare 🖥
- Reti 💻
- Scrivere 🖋
- 💬 Il nostro canale Telegram: iscriviti
- 🟠 Visibilità su Google: quanto tempo ci vuole per indicizzare un sito
- 🔵 Che significa ubiquo
- 🟢 Come aggiornare WordPress all’ultima versione