Le macro VBA (Visual Basic for Applications) sono sequenze di comandi e funzioni scritte in VBA che automatizzano attività ripetitive in Excel. Permettono di eseguire operazioni complesse in pochi clic, risparmiando tempo e riducendo errori.
Per accedere agli strumenti VBA è necessario abilitare la scheda ‘Sviluppo’: File → Opzioni → Personalizzazione barra multifunzione → Attiva ‘Sviluppo’.
Le macro possono contenere codice potenzialmente dannoso, quindi Excel imposta diversi livelli di sicurezza: disattiva tutte le macro senza notifica, disattiva tutte le macro con notifica, disattiva tutte le macro eccetto quelle firmate digitalmente, abilita tutte le macro (non consigliato). Percorso: File → Opzioni → Centro protezione → Impostazioni Centro protezione → Impostazioni macro.
Quando si salva un file con macro, è necessario usare il formato .xlsm (Cartella di lavoro con attivazione macro Excel). Se si salva nel formato .xlsx, le macro verranno eliminate. Percorso: File → Salva con nome → Tipo file → Cartella di lavoro con attivazione macro (*.xlsm).
Tipi di Macro VBA e Creazione di Macro in Excel
Le macro in VBA si suddividono in due categorie principali: Subroutine (Sub) e Funzioni (Function).
Le subroutine (Sub) sono blocchi di codice che eseguono compiti ma non restituiscono valori. Sintassi: Sub NomeSub() ‘ codice VBA End Sub.
Le funzioni VBA restituiscono un valore e possono essere usate nei fogli di Excel come qualsiasi funzione nativa. Sintassi: Function NomeFunzione(Parametri) As Tipo ‘ codice NomeFunzione = Valore End Function.
Puoi creare macro VBA registrandole con il registratore di macro o scrivendole direttamente nell’Editor VBA (Alt+F11). Per creare manualmente: apri l’Editor VBA con Alt+F11, inserisci un modulo: Inserisci → Modulo, scrivi il codice, salva il file in formato .xlsm per mantenere le macro attive.
Registrazione di Macro in VBA
Excel permette di registrare una sequenza di azioni e convertirle automaticamente in codice VBA. Questo è utile per automatizzare attività ripetitive senza conoscere la sintassi di programmazione.
Per registrare una macro: vai alla scheda Sviluppo, clicca su ‘Registra macro’, dai un nome alla macro e scegli dove salvarla, esegui le azioni che vuoi automatizzare, clicca su ‘Interrompi registrazione’.
Dopo aver registrato la macro, puoi visualizzare il codice generato: Alt+F11 → Moduli → seleziona il modulo con la macro registrata.
Puoi modificare il codice VBA generato automaticamente per ottimizzare le istruzioni, aggiungere controlli condizionali, o generalizzare il comportamento.
La registrazione relativa applica le azioni rispetto alla cella attiva, mentre quella assoluta usa riferimenti fissi. Puoi attivare la modalità relativa dalla scheda Sviluppo prima di registrare.
Scrivere codice VBA in Excel
Il codice VBA si scrive nell’Editor VBA (Alt + F11). Puoi creare un modulo tramite Inserisci → Modulo e iniziare a scrivere Sub o Function.
Excel è strutturato come una gerarchia di oggetti (Application > Workbook > Worksheet > Range). Ogni elemento può essere controllato via codice.
Un oggetto rappresenta un’entità come un foglio o una cella. Una collezione è un insieme di oggetti simili, es. Workbooks o Worksheets.
Le proprietà rappresentano caratteristiche di un oggetto. Ad esempio: Range(“A1”).Value restituisce o imposta il contenuto di A1.
I metodi sono azioni che un oggetto può eseguire. Esempio: Range(“A1”).ClearContents cancella il contenuto di A1.
Range è l’oggetto più utilizzato. Può riferirsi a una o più celle. Permette operazioni su valori, formati, formule, ecc.
Le variabili memorizzano valori temporanei. Sintassi: Dim nome As Tipo. Esempio: Dim somma As Double.
Puoi usare If, For, Do While, Select Case per controllare il flusso del codice e la logica di esecuzione.
Alcune macro avanzate (es. uso di cicli, condizioni, manipolazione dinamica) non possono essere registrate e devono essere scritte a mano.