Come utilizzare Visual Basic for Application (VBA) in Excel?

Visual Basic for Application ( VBA ) è un linguaggio di programmazione che consente di estendere le funzionalità di Excel e automatizzare le attività ripetitive. Con VBA puoi creare macro, moduli, funzioni personalizzate e applicazioni interattive. In questo articolo imparerai le basi di VBA in Excel e come utilizzarlo per eseguire operazioni semplici o complesse.

Come accedere a VBA in Excel?

GetPaidStock.com 64886528e3bbe

Per accedere a VBA in Excel, è necessario abilitare la scheda Sviluppatore nella barra multifunzione. Per fare ciò, attenersi alla seguente procedura:

  • Fare clic sul pulsante File quindi su Opzioni.
    tth img file excel dell'app w10
  • Nella finestra Opzioni di Excel fare clic su Personalizza barra multifunzione.
    tth img w10 app file excel opzione personale nastro dev
  • Nell'elenco delle schede principali, seleziona la casella Sviluppatore e quindi fai clic su OK.

Vedrai quindi apparire la scheda Sviluppatore nella barra multifunzione. Questa scheda contiene diversi strumenti relativi a VBA, come il pulsante Visual Basic, il pulsante Registra macro o il pulsante Inserisci controllo.

tth img w10 app excel dev
tth img w10 app excel dev vba

Il pulsante Visual Basic apre Visual Basic Editor (VBE), in cui puoi creare e modificare il codice VBA. Il pulsante Registra macro genera automaticamente il codice VBA che riproduce le azioni eseguite nell'applicazione. Il pulsante Inserisci controllo ti consente di aggiungere elementi interattivi al tuo foglio di lavoro, come pulsanti, caselle di controllo o elenchi a discesa.

Come scrivere il codice VBA in Excel?

Per scrivere codice VBA in Excel, è necessario utilizzare Visual Basic Editor (VBE). Per aprirlo, fare clic sul pulsante Visual Basic nella scheda Sviluppatore della barra multifunzione.

Il VBE è composto da diverse finestre:

tth img w10 app excel dev vba 1 1
  • La finestra Progetto visualizza la struttura gerarchica degli oggetti contenenti codice VBA. Ad esempio, se disponi di una cartella di lavoro denominata MyWorkbook.xlsm con due fogli denominati Foglio1 e Foglio2, vedrai gli oggetti Foglio1 e Foglio2 nonché un oggetto denominato ThisWorkbook apparire in MyWorkbook.xlsm.
    tth img w10 app excel dev finestra del progetto vba
  • La finestra Proprietà visualizza le proprietà dell'oggetto selezionato nella Finestra Progetto. Ad esempio, se selezioni l'oggetto Sheet1, vedrai le sue proprietà come il nome (Name), il colore (Tab.Color), il codice (CodeName), ecc.
    tth img w10 app excel dev finestra delle proprietà vba
  • La Finestra Codice visualizza il codice VBA associato all'oggetto selezionato nella Finestra Progetto. Ad esempio, se selezioni l'oggetto Foglio1, vedrai il codice VBA che viene eseguito quando interagisci con il foglio di lavoro Foglio1.
    tth img w10 app excel dev codice finestra vba
  • La finestra Immediata visualizza i risultati del codice VBA o i messaggi di errore. Ad esempio, se utilizzi la funzione MsgBox per visualizzare un messaggio all'utente, vedrai il messaggio apparire nella finestra Immediata.
    tth img w10 app excel dev finestra vba

Per scrivere codice VBA è necessario seguire alcune regole di sintassi:

  • Ogni istruzione deve terminare con un carattere di nuova riga o con i due punti (:).
  • Le parole chiave del linguaggio VBA devono essere scritte in maiuscolo o minuscolo, ma non i nomi di oggetti, proprietà o metodi, che fanno distinzione tra maiuscole e minuscole.
  • I commenti devono essere preceduti dall'apostrofo (') o dal carattere Rem e devono essere scritti su una riga separata o dopo un'istruzione.
  • Le stringhe di caratteri devono essere racchiuse tra virgolette doppie (“).
  • Gli operatori aritmetici sono +, -, *, / e ^ (potenza).
  • Gli operatori logici sono And, Or, Not, Xor ed Eqv.
  • Gli operatori di confronto sono =, <>, <, <=, > e >=.
  • Le costanti predefinite sono True, False, Null, Vuoto, Niente e vbNullString.

Ecco un esempio di codice VBA che visualizza un messaggio all'utente:

Sub Hello() ' Questo è un commento di MsgBox "Ciao, sono Bing!" ' Visualizza un messaggio End Sub 

Come utilizzare le funzioni del foglio di calcolo Excel in VBA?

Puoi utilizzare la maggior parte delle funzioni del foglio di calcolo Excel nelle tue istruzioni VBA. Per fare ciò è necessario utilizzare la seguente sintassi:

Application.WorksheetFunction.FunctionName(argomento1, argomento2, ...)

Se ad esempio vuoi utilizzare la funzione SOMMA per calcolare la somma dei valori compresi nell'intervallo A1:A10, puoi scrivere:

Sub Sum() Dim result As Double ' Dichiara una variabile di tipo Double result = Application.WorksheetFunction.Sum(Range("A1:A10")) ' Assegna il risultato della funzione SUM alla variabile MsgBox result ' Visualizza il risultato End Sub

Puoi anche utilizzare funzioni personalizzate create tu stesso in VBA. Per fare ciò è necessario utilizzare la seguente sintassi:

Function NomeFunzione(argomento1 As Tipo1, argomento2 As Tipo2, ...) As ReturnType ' Dichiarazioni e istruzioni NomeFunzione = espressione ' Assegna alla funzione il risultato da restituire End Function

Ad esempio, se vuoi creare una funzione che calcoli il quadrato di un numero, puoi scrivere:

Function Square(number As Double) As Double ' Dichiara una funzione che prende un numero come argomento e restituisce un numero Square = number * number ' Assegna il quadrato del numero alla funzione End Function

Puoi quindi utilizzare questa funzione nelle tue istruzioni VBA o nelle tue formule Excel. Per esempio :

Sub Test() Dim x As Double ' Dichiara una variabile di tipo Double x = 5 ' Assegna il valore 5 alla variabile MsgBox Square(x) ' Visualizza il quadrato di x End Sub

Come creare macro in Excel?

Una macro è un insieme di istruzioni VBA che vengono eseguite tutte contemporaneamente. Puoi creare macro per automatizzare attività ricorrenti o complesse in Excel. Esistono due modi per creare macro: registrandole o scrivendole.

Registra una macro

La registrazione di una macro implica l'utilizzo del pulsante Registra macro nella scheda Sviluppatore della barra multifunzione per acquisire le azioni eseguite in Excel e convertirle in codice VBA. Questo è il modo più semplice e veloce per creare una macro, ma può produrre codice poco ottimizzato o ridondante.

Per registrare una macro, attenersi alla seguente procedura:

  • Fare clic sul pulsante Registra macro nella scheda Sviluppatore della barra multifunzione.
    tth img w10 app excel dev salva macro
  • Nella finestra di dialogo Registra macro, assegna un nome alla macro, scegli una scorciatoia da tastiera se lo desideri, seleziona una posizione in cui archiviare la macro (cartella di lavoro attiva, nuova cartella di lavoro o cartella di lavoro personale) e scrivi una descrizione se lo desideri.
    tth img w10 app excel dev salva macro
  • Fare clic su OK per avviare la registrazione.
  • Esegui le azioni che desideri automatizzare in Excel. Ad esempio, se desideri creare una macro che formatta una tabella, seleziona la tabella, applicagli uno stile, ordinala in ordine alfabetico, ecc.
  • Fare clic sul pulsante Interrompi registrazione nella scheda Sviluppatore della barra multifunzione per terminare la registrazione.

È quindi possibile eseguire la macro utilizzando la scorciatoia da tastiera scelta, facendo clic sul pulsante Macro nella scheda Sviluppatore della barra multifunzione o utilizzando il pulsante Esegui nel VBE.

Scrivi una macro

Scrivere una macro implica utilizzare il VBE per digitare direttamente il codice VBA che corrisponde alle azioni che desideri automatizzare. Questo è il metodo più flessibile e potente per creare una macro, ma richiede conoscenze di programmazione.

Per scrivere una macro, attenersi alla seguente procedura:

  • Apri VBE facendo clic sul pulsante Visual Basic nella scheda Sviluppatore della barra multifunzione.
    tth img w10 app excel dev vba
  • Nella finestra Progetto, seleziona l'oggetto in cui desideri archiviare la macro (cartella di lavoro attiva, nuova cartella di lavoro o cartella di lavoro personale).
  • Nella finestra Codice, digita il codice VBA che corrisponde alle azioni che desideri automatizzare. Ad esempio, se desideri creare una macro che formatta una tabella, digita il seguente codice:
Sub FormatTable() ' Seleziona la tabella Range("A1:D10").Select ' Applica uno stile alla tabella Selection.Style = "Table 1" ' Ordina la tabella in ordine alfabetico per colonna A ActiveWorkbook.Worksheets("Sheet1" ). Sort.SortFields.Clear ActiveWorkbook.Worksheets("Sheet1").Sort.SortFields.Add Key:=Range("A2:A10") _ , SortOn:=xlSortOnValues, Order:=xlAscending, DataOption:=xlSortNormal With ActiveWorkbook .Worksheets ("Foglio1").Sort .SetRange Range("A1:D10") .Header = xlYes .MatchCase = False .Orientation = xlTopToBottom .SortMethod = xlPinYin .Apply End With End Sub

Puoi quindi eseguire la macro utilizzando il pulsante Esegui nel VBE o assegnandogli una scorciatoia da tastiera o un controllo.

tth img w10 app excel dev codice di prova vba

Domande frequenti

Ecco alcune domande frequenti sull'utilizzo di VBA in Excel:

Cos'è VBA e perché usarlo?

VBA è la versione di Visual Basic fornita con Microsoft Office. È un di programmazione orientato agli oggetti che utilizza una sintassi vicina al linguaggio naturale. VBA consente di accedere e manipolare oggetti, proprietà e metodi di Excel utilizzando il codice. Potrai quindi controllare Excel in modo più preciso e potente che tramite l'interfaccia grafica.

L'utilizzo di VBA presenta numerosi vantaggi:

  • Puoi automatizzare attività ripetitive o noiose, come pulire i dati, formattare tabelle, creare grafici e altro ancora.
  • Puoi personalizzare Excel in base alle tue esigenze specifiche, aggiungendo funzionalità che non esistono nel software o modificandone il comportamento.
  • Puoi interagire con l'utente utilizzando finestre di dialogo, moduli o messaggi personalizzati.
  • Puoi integrare Excel con altre applicazioni Office o origini dati esterne, come Outlook, Word, Access, SQL Server, ecc.

Come eseguire il debug del codice VBA in Excel?

Per eseguire il debug del codice VBA in Excel, è possibile utilizzare strumenti VBE, come punti di interruzione, passaggi, finestra di controllo o finestra delle impostazioni locali. Questi strumenti consentono di controllare l'esecuzione del codice, verificare i valori delle variabili e individuare gli errori.

Come proteggere il codice VBA in Excel?

Per proteggere il codice VBA in Excel, puoi bloccare il progetto VBA con una password. Per fare ciò, attenersi alla seguente procedura:

  • Apri VBE facendo clic sul pulsante Visual Basic nella scheda Sviluppatore della barra multifunzione.
  • Nella finestra Progetto, fare clic con il pulsante destro del mouse sul nome del progetto VBA e scegliere Proprietà progetto VBA.
  • Nella finestra di dialogo Proprietà progetto VBA, fare clic sulla scheda Protezione.
  • Seleziona la casella Blocca progetto per la visualizzazione, digita una password e confermala.
  • Fare clic su OK per chiudere la finestra di dialogo.
  • Salvare e chiudere la cartella di lavoro.

Come eseguire una macro all'apertura o alla chiusura di una cartella di lavoro?

Per eseguire una macro all'apertura o alla chiusura di una cartella di lavoro, è necessario utilizzare gli eventi Workbook_Open o Workbook_BeforeClose. Per fare ciò, attenersi alla seguente procedura:

  • Apri VBE facendo clic sul pulsante Visual Basic nella scheda Sviluppatore della barra multifunzione.
  • Nella finestra Progetto selezionare l'oggetto ThisWorkbook sotto il nome della cartella di lavoro.
  • Nella finestra Codice, scegli Cartella di lavoro dall'elenco a discesa Oggetto in alto a sinistra.
  • Scegli Apri o Prima di chiudere dall'elenco a discesa Procedura in alto a destra.
  • Digita il codice VBA che richiama la macro che desideri eseguire. Per esempio :
Private Sub Workbook_Open() ' Esegue la macro Hello all'apertura della cartella di lavoro Hello End Sub Private Sub Workbook_BeforeClose(Cancel As Boolean) ' Esegue la macro AuRevoir alla chiusura della cartella di lavoro AuRevoir End Sub

Come creare un modulo in Excel con VBA?

Per creare un modulo in Excel con VBA, è necessario utilizzare il progettista moduli di VBE. Per fare ciò, attenersi alla seguente procedura:

  • Apri VBE facendo clic sul pulsante Visual Basic nella scheda Sviluppatore della barra multifunzione.
  • Nella finestra Progetto, fai clic con il pulsante destro del mouse sul nome del progetto VBA e scegli Inserisci quindi UserForm.
  • Si apre una nuova finestra UserForm. Puoi aggiungere controlli come etichette, caselle di testo, pulsanti, ecc. trascinandoli dalla casella degli strumenti.
  • È possibile modificare le proprietà dei controlli nella finestra Proprietà o scrivere codice VBA per gestirne gli eventi nella finestra Codice.
  • Per visualizzare il modulo è possibile utilizzare il metodo Mostra. Per esempio :
Sub ShowForm() 'Mostra il modulo UserForm1 UserForm1.Show End Sub

Come creare una funzione personalizzata in Excel con VBA?

Per creare una funzione personalizzata in Excel con VBA è necessario utilizzare la seguente sintassi:

Function NomeFunzione(argomento1 As Tipo1, argomento2 As Tipo2, ...) As ReturnType ' Dichiarazioni e istruzioni NomeFunzione = espressione ' Assegna alla funzione il risultato da restituire End Function

Ad esempio, se vuoi creare una funzione che calcoli il quadrato di un numero, puoi scrivere:

Function Square(number As Double) As Double ' Dichiara una funzione che prende un numero come argomento e restituisce un numero Square = number * number ' Assegna il quadrato del numero alla funzione End Function

Puoi quindi utilizzare questa funzione nelle tue istruzioni VBA o nelle tue formule Excel. Per esempio :

Sub Test() Dim x As Double ' Dichiara una variabile di tipo Double x = 5 ' Assegna il valore 5 alla variabile MsgBox Square(x) ' Visualizza il quadrato di x End Sub

Puoi anche utilizzare funzioni personalizzate create tu stesso in VBA. Per fare ciò è necessario utilizzare la seguente sintassi:

Function NomeFunzione(argomento1 As Tipo1, argomento2 As Tipo2, ...) As ReturnType ' Dichiarazioni e istruzioni NomeFunzione = espressione ' Assegna alla funzione il risultato da restituire End Function

Ad esempio, se vuoi creare una funzione che calcoli il quadrato di un numero, puoi scrivere:

Function Square(number As Double) As Double ' Dichiara una funzione che prende un numero come argomento e restituisce un numero Square = number * number ' Assegna il quadrato del numero alla funzione End Function

Puoi quindi utilizzare questa funzione nelle tue istruzioni VBA o nelle tue formule Excel. Per esempio :

Sub Test() Dim x As Double ' Dichiara una variabile di tipo Double x = 5 ' Assegna il valore 5 alla variabile MsgBox Square(x) ' Visualizza il quadrato di x End Sub

O

=Quadrato(A1) ' Calcola il quadrato del valore della cella A1

Conclusione

In questo articolo hai imparato come utilizzare Visual Basic for Application (VBA) in Excel. Hai visto cos'è VBA e perché usarlo, come accedere a VBA in Excel, come scrivere codice VBA in Excel, come utilizzare le funzioni del foglio di lavoro Excel in VBA, come creare macro in Excel con VBA, come creare moduli in Excel con VBA e come creare funzioni personalizzate in Excel con VBA. Tra le funzioni personalizzate che puoi creare con VBA c'è quella di fare una sottrazione in Excel . Ora puoi sfruttare la potenza di programmazione di VBA per personalizzare e automatizzare Excel secondo necessità.

Articolo precedente Come imparare Python a livello principiante?
Articolo successivoCome connettersi alla casella di posta Bouygues Telecom?