Vai al contenuto principale

VBA in Excel: da dove iniziare e come semplificarti il lavoro

Scopri come usare efficacemente VBA in Excel per automatizzare attività, creare macro e migliorare le tue competenze di elaborazione dati con esempi pratici e best practice.
Aggiornato 3 giu 2026  · 10 min leggi

Visual Basic for Applications (VBA) in Excel è un linguaggio che ti permette di automatizzare attività ripetitive e ampliare le funzionalità di Excel ben oltre le sue caratteristiche standard. Che tu sia un principiante in cerca di produttività o un utente esperto che vuole snellire flussi di lavoro complessi, VBA è qui per rendere le cose più semplici.

In questa guida, spiegherò concetti VBA di base e avanzati. Tuttavia, se sei alle prime armi con Excel, inizia da Excel Fundamentals per costruire basi solide prima di passare a VBA.

Cos'è VBA in Excel?

Visual Basic for Applications (VBA) è un linguaggio di programmazione usato per automatizzare attività e ampliare le funzionalità delle applicazioni Microsoft Office. Puoi usarlo con Excel, Word, Access e altri programmi Office, anche se probabilmente viene usato soprattutto per creare macro personalizzate in Excel, che vedremo a breve.

Personalmente, la prima volta che ho usato VBA è stato per automatizzare un report settimanale che richiedeva ore per essere compilato manualmente. Con poche righe di codice ho ridotto il processo a un solo clic e ho risparmiato un sacco di tempo. Da allora ho capito che investire un po' di tempo per padroneggiarlo ripaga enormemente in termini di produttività.

Termini importanti di VBA in Excel

Prima di lavorare con VBA, è essenziale capire i suoi termini e concetti chiave. Ecco quindi un elenco di alcuni dei termini più usati che incontrerai quando inizierai ad automatizzare attività e a creare soluzioni personalizzate in Excel.

  • Moduli sono i contenitori del codice VBA, dove sono archiviati procedure e funzioni.

  • Oggetti sono i mattoni di VBA. Rappresentano elementi come cartelle di lavoro, fogli di lavoro e celle.

  • Procedure sono blocchi di codice che svolgono compiti specifici, spesso classificati in subprocedure o funzioni.

  • Istruzioni sono i comandi all'interno di una procedura che dicono a Excel (o Word o Access) quali azioni eseguire.

  • Variabili memorizzano dati che possono essere usati e manipolati nel codice.

  • Operatori logici confrontano valori e prendono decisioni in base ai risultati. Includono operatori come And, Or e Not.

Iniziare con VBA in Excel

Per iniziare a usare VBA, devi accedere all'editor VBA. È qui che scriverai e modificherai il tuo codice. Vediamo come arrivarci:

Abilitare la scheda Sviluppo 

Il primo passaggio è abilitare la scheda Sviluppo, spesso nascosta nella Barra multifunzione. Per farlo:

  • Fai clic con il tasto destro in un punto qualsiasi della Barra multifunzione

Ribbon in Excel

Barra multifunzione in Excel. Immagine dell'autore.

  • Seleziona l'opzione Personalizza barra multifunzione...

customizing the ribbon in Excel

Personalizza la barra multifunzione per abilitare la scheda Sviluppo. Immagine dell'autore.

  • Si aprirà una finestra di dialogo. Seleziona la casella Sviluppo e fai clic su OK.

Selecting the Developer Option from a dialog box and hit OK in Excel

Selezione dell'opzione Sviluppo. Immagine dell'autore.

Ora vedrai la scheda Sviluppo in alto nella Barra multifunzione.

Developer tab in Excel

La scheda Sviluppo è abilitata nella barra multifunzione. Immagine dell'autore.

Aprire l'editor VBA 

Una volta abilitata la scheda Sviluppo, puoi accedere all'editor VBA. Per farlo, fai clic sulla scheda Sviluppo e seleziona Visual Basic tra le opzioni. Puoi anche usare la scorciatoia da tastiera ALT + F11 per aprire direttamente l'editor.

Interface of VBA editor in Excel

Editor VBA. Immagine dell'autore.

Orientarsi nell'interfaccia di VBA 

L'editor VBA può sembrare inizialmente intimidatorio, ma è semplice da usare. Vediamo alcune aree chiave:

  • Finestra del codice: qui scrivi e modifichi il tuo codice VBA.
  • Esplora progetti: mostra una visuale gerarchica dei progetti e dei moduli nella tua cartella di lavoro.
  • Finestra Proprietà: visualizza le proprietà degli oggetti selezionati per personalizzarne le impostazioni.

Interface of VBA in Excel

Interfaccia VBA in Excel. Immagine dell'autore.

Scrivere codice VBA in Excel

Ora che conosci l'editor VBA, è il momento di scrivere un po' di codice. Il codice VBA è composto da parti diverse, come subprocedure e funzioni. Sono insiemi di istruzioni che dicono a Excel cosa fare. Non preoccuparti se non hai mai programmato: andremo per gradi. 

Scrivere una subroutine VBA

Prima di scrivere una macro, devi creare l'ambiente per la macro. Per farlo, segui questi passaggi:

  • Nell'editor VBA, seleziona Inserisci > Modulo. Verrà creato un nuovo modulo con il nome predefinito Modulo1. 

Insert a new module in VBA

Seleziona Modulo nella scheda Inserisci. Immagine dell'autore.

  • Puoi cambiare il nome del modulo nel riquadro Proprietà.

Rename the newly created module in VBA in Excel

Rinomina il modulo VBA. Immagine dell'autore.

Ora che sai come impostare l'ambiente per creare una macro, creiamo insieme la prima macro per visualizzare un messaggio. Per impostazione predefinita, la finestra del codice si apre quando viene creato il modulo. Se nel tuo caso non succede, fai clic con il tasto destro sul modulo che hai creato e poi su Visualizza codice. Apparirà la finestra del codice, dove potrai scrivere le tue macro.

Qui creo una macro per visualizzare il messaggio Hello, World!. Per farlo, scrivo il seguente codice nel riquadro del codice:

Sub ShowMessage()
    MsgBox "Hello, World!"
End Sub 

Ecco cosa succede:

  • Sub è la parola chiave per una subroutine, un blocco di codice che esegue un compito specifico. In VBA, una subroutine non restituisce un valore.

  • ShowMessage è il nome della subroutine. Puoi chiamarla come preferisci, purché rispetti le convenzioni di denominazione VBA (ad es. niente spazi, non può iniziare con un numero).

  • () qui servono a definire i parametri della subroutine. Poiché per questo compito non servono parametri, le parentesi sono vuote.

  • MsgBox è una funzione incorporata in VBA che visualizza una finestra di messaggio sullo schermo. 

  • End Sub indica la fine della subroutine. Tutto ciò che sta tra Sub ed End Sub è il codice che verrà eseguito quando la subroutine viene richiamata.

  • Le stringhe di testo in VBA sono racchiuse tra virgolette. Qui vogliamo che la stringa Hello, World! appaia nella finestra di messaggio.

Writing a VBA macro in a code pane in Excel

Scrivere una macro. Immagine dell'autore.

  • Ora è il momento di eseguire il codice. Usa il tasto di scelta rapida F5. Se vuoi farlo manualmente, vai alla scheda Sviluppo e seleziona Macro. Fai clic su Esegui. 

Select the Macros option under the developer tab and run the Macro in Excel

Seleziona l'opzione Macro nella scheda Sviluppo. Immagine dell'autore.

Ora vedrai apparire la finestra di messaggio nel tuo foglio Excel.

message box in Excel

Finestra di messaggio. Immagine dell'autore.

Capire gli oggetti in VBA 

In VBA, gli oggetti ti consentono di controllare diversi elementi di Excel e automatizzare attività per flussi di lavoro più efficienti. Ci sono tre oggetti chiave: Workbook, Worksheet e Range. Vediamoli con esempi pratici.

L'oggetto Workbook (cartella di lavoro) è qualsiasi file Excel attualmente aperto. Consente di eseguire azioni come aggiungere nuovi fogli o salvare i fogli esistenti nella cartella di lavoro. In questo esempio voglio aggiungere un foglio alla cartella aperta e poi salvarla. All'inizio avevo Sheet1. Per aggiungere un altro foglio, scrivo il seguente codice:

Sub AddSheetAndSaveWorkbook()
    ' Adds a new worksheet to the active workbook
   ActiveWorkbook.Sheets.Add
    
    ' Saves the workbook
    ActiveWorkbook.Save
End Sub

Questo codice funziona esattamente come il precedente, ma qui ho aggiunto dei commenti. I commenti iniziano con ' e non influiscono sul codice. Li aggiungiamo solo per comodità, per rendere il codice più chiaro. 

Ora vedi che è stato creato un altro foglio, Sheet2.

Add and save a new sheet in the existing sheet using VBA in Excel

Aggiungere e salvare un nuovo foglio nella cartella esistente con VBA. Immagine dell'autore.

L'oggetto Worksheet rappresenta il foglio attivo in Excel. Con questo puoi modificare o manipolare il foglio attivo. Per esempio, voglio cambiare il nome del foglio attivo. Per farlo, inserisco il seguente codice:

Sub RenameActiveSheet()
    ' Renames the active sheet to "Sales Report".
    ActiveSheet.Name = "Sales Report"
End Sub

Code for changing the name of the worksheet using VBA in Excel

Cambiare il nome del foglio di lavoro con VBA. Immagine dell'autore.

Ora, Sheet1 è stato rinominato in Sales Report.

Renamed the worksheet using VBA in Excel

Rinominare il foglio di lavoro di Excel con VBA. Immagine dell'autore.

L'oggetto Range si riferisce a un gruppo specifico di celle o a una singola cella che possiamo gestire secondo necessità.  Nel seguente esempio, seleziono un intervallo di celle da F3 a I3 e ne cambio il colore di sfondo. Per farlo, scrivo il seguente codice:

Sub FormatRange()
    ' Selects the range from A1 to C6
    Range("F3:I3"). Select
    
    ' Changes the background color of the selected range to Green
    Selection.Interior.Color = RGB(101, 255, 143)
End Sub

Code for changing the color of the selected range using VBA in Excel

Selezionare un intervallo e cambiarne il colore con VBA. Immagine dell'autore.

Puoi vedere la differenza nei risultati. 

Results of changing the color of the selected range using VBA in Excel

Cambiare il colore con VBA in Excel. Immagine dell'autore.

Creare variabili in VBA

Come altri linguaggi di programmazione, le variabili in VBA memorizzano due tipi principali di dati, numeri e testo. Per usarle in VBA, devi prima dichiarare la variabile usando la parola chiave in base alle tue preferenze, seguita dal nome della variabile e dal tipo di dato.

Keyword variableName As DataType

Qui: 

  • Keyword può essere Dim, Static, Public e Private.

  • variableName si riferisce al nome scelto per questa variabile (senza spazi).

  • As è usato per dichiarare il tipo della variabile.

  • DataType si riferisce al tipo della variabile, come Integer.

Quando lavori con le variabili, devi anche rispettare alcune regole:

  • La lunghezza deve essere inferiore a 255 caratteri.
  • Non sono consentiti spazi tra i caratteri.
  • Il nome non può iniziare con un numero.
  • Non usare punti nel nome.

Tipo di dato numerico

I tipi di dato numerici in VBA vengono usati per memorizzare valori numerici.

Tipo di dato Memoria Intervallo di valori
Byte 1 Byte Memorizza interi da 0 a 255
Integer 2 Byte Memorizza numeri interi nell'intervallo da -32.768 a 32.767
Long 4 Byte Memorizza interi più grandi, da -2.147.483.648 a 2.147.483.647
Single 4 Byte Memorizza numeri decimali a singola precisione
Double 8 Byte Memorizza numeri decimali a doppia precisione
Currency 8 Byte Memorizza numeri con decimali fissi
Variant (testo) Lunghezza del testo + 22 byte Da 0 a 2 miliardi di caratteri

Tipo di dato non numerico

I tipi di dato non numerici in VBA memorizzano valori che non sono numeri.

Tipo di dato Memoria Intervallo di valori
String Lunghezza stringa Memorizza testo
Date 8 Byte Memorizza data e ora
Boolean 2 Byte Memorizza True o False
Variant 16 Byte Memorizza qualsiasi tipo di dato ed è usato quando il tipo non è noto in anticipo

Automatizzare attività con le macro VBA di Excel

Le macro sono essenzialmente una serie di istruzioni create in VBA per svolgere attività ripetitive. Con una macro puoi registrare una serie di azioni, come formattare celle, copiare dati o eseguire calcoli. Dopo aver salvato la macro, puoi riapplicare queste azioni con un solo clic. Questo fa risparmiare tempo, soprattutto quando lavori con dataset grandi o compiti ripetitivi.

Per esempio, se formatti spesso i tuoi report sempre allo stesso modo, puoi registrare una macro che applica tutti i passaggi di formattazione necessari invece di farlo manualmente ogni volta. In seguito potrai eseguire questa macro per formattare nuovi dati. Abbiamo mostrato un paio di esempi di base, ma immagina di fare molte più piccole azioni con un solo clic. Anche se non hai esperienza di coding, puoi comunque automatizzare le attività di routine per semplificare il flusso di lavoro e ridurre le possibilità di errore che possono verificarsi quando si ripetono azioni manualmente.

Registrare una macro di Excel 

Vediamo come puoi registrare una macro per applicare alcune modifiche di formattazione:

  • Vai alla scheda Sviluppo > pulsante Registra macro
  • Si aprirà una finestra di dialogo. Dai un nome alla macro come ho fatto io, FormatCells.
  • Assegna una scorciatoia da tastiera se vuoi. Io le ho assegnato Ctrl+S.
  • Fai clic su OK per iniziare la registrazione.

Ora che la macro sta registrando, esegui le azioni che vuoi automatizzare. In questo esempio, sto registrando alcune modifiche di formattazione su una tabella semplice. Una volta completato, torna alla scheda Sviluppo e fai clic sul pulsante Interrompi registrazione. Qui sotto puoi vedere la macro in azione.

Registrare una macro con VBA in Excel. Gif dell'autore.

Ora, se hai un altro dataset in un altro foglio e vuoi applicare la stessa formattazione anche lì, invece di riformattare tutto da capo, premi la scorciatoia che hai creato (nel mio caso Ctrl+S). Altrimenti vai su foglio2 > scheda Sviluppo > Macro > Esegui per farlo manualmente.

Usare la macro di Excel. Gif dell'autore.

Modificare le macro di Excel 

Dopo aver registrato una macro, puoi anche ritoccarne o personalizzarne le azioni. Ecco come: 

  • Vai alla scheda Sviluppo e fai clic su Visual Basic
  • Si aprirà l'editor VBA. Ora, in Esplora progetti, cerca la cartella di lavoro in cui è archiviata la macro. 
  • Espandi la cartella Moduli, quindi fai doppio clic sul modulo che contiene la tua macro. La finestra del codice mostrerà il codice VBA della macro registrata.

Illustration of code performed when recording a macro in Excel

Codice della macro registrata in Excel. Immagine dell'autore.

Ogni riga di codice mostra l'azione eseguita durante la registrazione. Da qui, puoi modificare il codice registrato per personalizzare la macro come preferisci. Nel mio caso, ho impostato Selection.Font.Bold su False per rimuovere il grassetto. Una volta effettuate le modifiche, salva cliccando sul pulsante Salva o premi Ctrl+S ed Esegui il codice per applicare i cambiamenti. Customizing the macro in VBA in Excel

Personalizzare la macro VBA di Excel. Immagine dell'autore.

Dopo aver eseguito la macro, puoi vedere i risultati: le colonne che prima erano in grassetto ora non lo sono più. 

Results of the macro edited manually in VBA Excel

Usare una macro in Excel. Immagine dell'autore

Scrivere macro personalizzate in Excel 

Potrebbero esserci compiti avanzati per cui non puoi registrare una macro. In questi casi, devi scrivere una macro da zero. Per esempio, voglio copiare i dati da un foglio di lavoro a un altro. Ecco come scrivo una macro personalizzata:

  • Apri manualmente l'editor VBA nel primo foglio o premi Alt+F11.
  • Inserisci un nuovo modulo.
  • Scrivi il seguente codice nel riquadro del codice.
Sub CopyData()
Sheets("Sheet1").Range("B1:E21").Copy Destination:=Sheets("Sheet2").Range("B1")
End Sub
  • Salva la macro e fai clic su Esegui.

Ora puoi vedere che i dati da Sheet1 sono stati copiati su Sheet2.

Step by step guide on writing a custom macro in VBA in Excel

Scrivere una macro personalizzata con VBA. Gif dell'autore.

Considerazioni finali 

Dall'automazione di attività ripetitive alla creazione di macro complesse, VBA apre un mondo di possibilità all'interno di Excel. Man mano che prendi confidenza con le basi, esercitati a scrivere codice ed esplora gradualmente le funzionalità più avanzate di VBA. Ricorda: la chiave per padroneggiare VBA — o qualsiasi linguaggio di programmazione — è la pratica costante e la voglia di sperimentare. Per migliorare ulteriormente le tue competenze, valuta queste risorse aggiuntive. I corsi Data Analysis in Excel e Learn Excel sono ottimi per approfondire le funzionalità di Excel. 

Se vuoi ampliare le tue conoscenze di programmazione oltre VBA, la guida How to Become a Programmer in 2024 offre una roadmap. Dagli un'occhiata se l'argomento ti interessa. Inoltre, il corso Financial Modeling in Excel è perfetto per chi vuole creare modelli finanziari dettagliati.


Laiba Siddiqui's photo
Author
Laiba Siddiqui
LinkedIn
Twitter

Sono una content strategist: mi piace semplificare argomenti complessi. Ho aiutato aziende come Splunk, Hackernoon e Tiiny Host a creare contenuti coinvolgenti e informativi per il loro pubblico.

Domande frequenti su VBA in Excel

Qual è lo scopo dell'istruzione Explicit in VBA?

Option Explicit aiuta a garantire che tutte le variabili siano dichiarate esplicitamente prima dell'uso, riducendo i bug e rendendo il codice più manutenibile.

Come posso proteggere con password il mio codice VBA?

Puoi proteggere il tuo codice VBA andando su Editor VBA > Strumenti > Proprietà VBAProject > scheda Protezione. Seleziona Blocca progetto per la visualizzazione e imposta una password.

Qual è la differenza tra ActiveWorkbook e ThisWorkbook in VBA?

ActiveWorkbook si riferisce alla cartella di lavoro attualmente in primo piano, che potrebbe non contenere il codice VBA. Thisworkbook si riferisce alla cartella di lavoro in cui risiede il codice VBA, indipendentemente da quale cartella sia attiva.

Cosa sono gli UserForm in VBA e come possono essere utilizzati?

UserForms sono finestre di dialogo personalizzate in VBA che consentono agli utenti di inserire dati. Possono essere usate per creare moduli interattivi per l'inserimento dati, la selezione o qualsiasi interazione che richieda un'interfaccia personalizzata.

Argomenti

Impara Excel e VBA con DataCamp

Programma

Fondamenti di Excel

16 h
Acquisisci le competenze essenziali per utilizzare Excel, dalla preparazione dei dati alla scrittura di formule e alla creazione di visualizzazioni. Non è richiesta alcuna esperienza precedente.
Vedi dettagliRight Arrow
Inizia il corso
Mostra altroRight Arrow
Correlato

blog

Tokenizzazione nel NLP: come funziona, sfide e casi d'uso

Guida al preprocessing NLP nel machine learning. Copriamo spaCy, i transformer di Hugging Face e come funziona la tokenizzazione in casi d'uso reali.
Abid Ali Awan's photo

Abid Ali Awan

10 min

blog

Che cos'è Snowflake? Guida per principianti alla piattaforma dati cloud

Esplora le basi di Snowflake, la piattaforma dati cloud. Scopri la sua architettura, le sue funzionalità e come integrarla nelle tue pipeline di dati.
Tim Lu's photo

Tim Lu

12 min

blog

I 15 migliori server MCP remoti che ogni AI builder dovrebbe conoscere nel 2026

Scopri i 15 migliori server MCP remoti che stanno trasformando lo sviluppo AI nel 2026. Scopri come migliorano automazione, ragionamento, sicurezza e velocità dei workflow.
Abid Ali Awan's photo

Abid Ali Awan

15 min

Mostra altroMostra altro