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

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

Come posso accedere a VBA in Excel?

GetPaidStock.com 64886528e3bbe

Per accedere a VBA in Excel, è necessario attivare la scheda Sviluppo nella barra multifunzione. Per farlo, segui questi passaggi:

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

Verrà quindi visualizzata la scheda Sviluppo nella barra multifunzione. Questa scheda contiene diversi strumenti relativi a VBA, come il pulsante Visual Basic, il pulsante Registra macro e 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), dove è possibile creare e modificare il codice VBA. Il pulsante Registra Macro genera automaticamente codice VBA che replica le azioni eseguite nell'applicazione. Il pulsante Inserisci Controllo consente di aggiungere elementi interattivi al foglio di calcolo, come pulsanti, caselle di controllo o elenchi a discesa.

Come si scrive 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 Sviluppo della barra multifunzione.

Il VBE è costituito 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 si dispone di una cartella di lavoro denominata MyWorkbook.xlsm con due fogli denominati Sheet1 e Sheet2, gli oggetti Sheet1 e Sheet2 appariranno sotto MyWorkbook.xlsm, oltre a un oggetto denominato ThisWorkbook.
    tth img w10 app excel dev vba fenetre projet
  • La finestra Proprietà mostra le proprietà dell'oggetto selezionato nella finestra Progetto. Ad esempio, se selezioni l'oggetto Sheet1, ne vedrai le proprietà come il nome (Name), il colore (Tab.Color), il codice (CodeName), ecc.
    tth img w10 app excel dev vba proprietà finestra
  • La finestra Codice visualizza il codice VBA associato all'oggetto selezionato nella finestra Progetto. Ad esempio, se selezioni l'oggetto Sheet1, vedrai il codice VBA che viene eseguito quando interagisci con il foglio di lavoro Sheet1.
    tth img w10 app excel dev vba codice finestra
  • La finestra Immediata mostra i risultati del codice VBA o i messaggi di errore. Ad esempio, se si utilizza la funzione MsgBox per visualizzare un messaggio all'utente, il messaggio verrà visualizzato nella finestra Immediata.
    tth img w10 app excel dev vba fenetre

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

  • Ogni istruzione deve terminare con un'interruzione di riga o con un carattere 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 sono sensibili alle maiuscole e alle minuscole.
  • I commenti devono essere preceduti dal carattere apostrofo (') o 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, Empty, Nothing e vbNullString.

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

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

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

È possibile utilizzare la maggior parte delle funzioni dei fogli di calcolo Excel nelle istruzioni VBA. Per farlo, è necessario utilizzare la seguente sintassi:

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

Ad esempio, se si desidera utilizzare la funzione SOMMA per calcolare la somma dei valori nell'intervallo A1:A10, è possibile 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 SOMMA alla variabile MsgBox result ' Visualizza il risultato End Sub

È anche possibile utilizzare funzioni personalizzate create autonomamente in VBA. Per farlo, è necessario utilizzare la seguente sintassi:

Funzione NomeFunzione(argomento1 As Tipo1, argomento2 As Tipo2, ...) As TipoRestituito ' Dichiarazioni e istruzioni NomeFunzione = espressione ' Assegna il risultato da restituire alla funzione Fine Funzione

Ad esempio, se si desidera creare una funzione che calcoli il quadrato di un numero, è possibile scrivere:

Funzione Quadrato(numero As Double) As Double ' Dichiara una funzione che accetta un numero come argomento e restituisce un numero Quadrato = numero * numero ' Assegna il quadrato del numero alla funzione Fine funzione

Puoi quindi utilizzare questa funzione nelle tue istruzioni VBA o nelle tue formule Excel. Ad 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 si creano macro in Excel?

Una macro è un insieme di istruzioni VBA che vengono eseguite una sola volta. È possibile creare macro per automatizzare attività ricorrenti o complesse in Excel. Esistono due modi per creare macro: registrandole o scrivendole.

Registra una macro

Per registrare una macro, è necessario utilizzare il pulsante Registra macro nella scheda Sviluppo 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ò generare codice scarsamente ottimizzato o ridondante.

Per registrare una macro, segui questi passaggi:

  • Fare clic sul pulsante Registra macro nella scheda Sviluppo 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 memorizzare 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 iniziare la registrazione.
  • Esegui le azioni che desideri automatizzare in Excel. Ad esempio, se desideri creare una macro per formattare una tabella, selezionarla, applicarle uno stile, ordinarla alfabeticamente, ecc.
  • Per terminare la registrazione, fare clic sul pulsante Interrompi registrazione nella scheda Sviluppatore della barra multifunzione.

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

Scrivi una macro

Scrivere una macro implica l'utilizzo di VBE per digitare direttamente il codice VBA corrispondente alle azioni che si desidera automatizzare. È il metodo più flessibile e potente per creare una macro, ma richiede conoscenze di programmazione.

Per scrivere una macro, segui questi passaggi:

  • Aprire 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 memorizzare la macro (cartella di lavoro attiva, nuova cartella di lavoro o cartella di lavoro personale).
  • Nella finestra Codice, digita il codice VBA corrispondente alle azioni che desideri automatizzare. Ad esempio, se desideri creare una macro che formatti 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 alfabeticamente 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("Sheet1").Sort .SetRange Range("A1:D10") .Header = xlYes .MatchCase = False .Orientation = xlTopToBottom .SortMethod = xlPinYin .Apply End With End Sub

È quindi possibile eseguire la macro utilizzando il pulsante Esegui nel VBE oppure assegnandole una scorciatoia da tastiera o un controllo.

tth img w10 app excel dev vba test codice

Domande frequenti

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

Che cos'è VBA e perché utilizzarlo?

VBA è la versione di Visual Basic inclusa in 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 tramite codice. Questo offre un controllo più preciso e potente su Excel rispetto all'interfaccia grafica.

L'utilizzo di VBA offre diversi vantaggi:

  • È possibile automatizzare attività ripetitive o noiose, come la pulizia dei dati, la formattazione delle tabelle, la creazione di grafici, ecc.
  • È possibile personalizzare Excel in base alle proprie esigenze specifiche, aggiungendo funzionalità non presenti nel software o modificandone il comportamento.
  • È possibile interagire con l'utente tramite finestre di dialogo, moduli o messaggi personalizzati.
  • È possibile integrare Excel con altre applicazioni Office o fonti 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 i punti di interruzione, lo stepping, la finestra Espressione di controllo o la finestra 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, è possibile bloccare il progetto VBA con una password. Per farlo, segui questi passaggi:

  • Aprire 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à del progetto VBA, fare clic sulla scheda Protezione.
  • Seleziona la casella per bloccare la visualizzazione del progetto e digita una password, quindi confermala.
  • Fare clic su OK per chiudere la finestra di dialogo.
  • Salvare e chiudere la cartella di lavoro.

Come faccio a eseguire una macro quando apro o chiudo 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 farlo, attenersi alla seguente procedura:

  • Aprire VBE facendo clic sul pulsante Visual Basic nella scheda Sviluppatore della barra multifunzione.
  • Nella finestra Progetto, seleziona l'oggetto ThisWorkbook sotto il nome della cartella di lavoro.
  • Nella finestra Codice, seleziona Cartella di lavoro dall'elenco a discesa Oggetto nell'angolo in alto a sinistra.
  • Selezionare Apri o Prima di chiudere dall'elenco a discesa Procedura nell'angolo in alto a destra.
  • Digita il codice VBA che richiama la macro che desideri eseguire. Ad esempio:
Private Sub Workbook_Open() ' Esegue la macro Bonjour quando la cartella di lavoro viene aperta Bonjour End Sub Private Sub Workbook_BeforeClose(Cancel As Boolean) ' Esegue la macro AuRevoir quando la cartella di lavoro viene chiusa AuRevoir End Sub

Come creare un modulo in Excel utilizzando VBA?

Per creare un modulo in Excel utilizzando VBA, è necessario utilizzare VBA Form Designer. Per farlo, segui questi passaggi:

  • Aprire 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 Inserisci, quindi UserForm.
  • Si apre una nuova finestra UserForm. È possibile aggiungere controlli come etichette, caselle di testo, pulsanti, ecc. trascinandoli dalla casella degli strumenti.
  • È possibile modificare le proprietà dei controlli nella finestra Proprietà oppure scrivere codice VBA per gestire i relativi eventi nella finestra Codice.
  • Per visualizzare il modulo, puoi utilizzare il metodo Show. Ad esempio:
Sub ShowForm() ' Visualizza il modulo UserForm1 UserForm1.Show End Sub

Come creare una funzione personalizzata in Excel utilizzando VBA?

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

Funzione NomeFunzione(argomento1 As Tipo1, argomento2 As Tipo2, ...) As TipoRestituito ' Dichiarazioni e istruzioni NomeFunzione = espressione ' Assegna il risultato da restituire alla funzione Fine Funzione

Ad esempio, se si desidera creare una funzione che calcoli il quadrato di un numero, è possibile scrivere:

Funzione Quadrato(numero As Double) As Double ' Dichiara una funzione che accetta un numero come argomento e restituisce un numero Quadrato = numero * numero ' Assegna il quadrato del numero alla funzione Fine funzione

Puoi quindi utilizzare questa funzione nelle tue istruzioni VBA o nelle tue formule Excel. Ad 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

È anche possibile utilizzare funzioni personalizzate create autonomamente in VBA. Per farlo, è necessario utilizzare la seguente sintassi:

Funzione NomeFunzione(argomento1 As Tipo1, argomento2 As Tipo2, ...) As TipoRestituito ' Dichiarazioni e istruzioni NomeFunzione = espressione ' Assegna il risultato da restituire alla funzione Fine Funzione

Ad esempio, se si desidera creare una funzione che calcoli il quadrato di un numero, è possibile scrivere:

Funzione Quadrato(numero As Double) As Double ' Dichiara una funzione che accetta un numero come argomento e restituisce un numero Quadrato = numero * numero ' Assegna il quadrato del numero alla funzione Fine funzione

Puoi quindi utilizzare questa funzione nelle tue istruzioni VBA o nelle tue formule Excel. Ad 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 nella cella A1

Conclusione

In questo articolo, hai imparato come utilizzare Visual Basic for Applications (VBA) in Excel. Hai visto cos'è VBA e perché utilizzarlo, come accedere a VBA in Excel, come scrivere codice VBA in Excel, come utilizzare le funzioni dei fogli di lavoro di Excel in VBA, come creare macro in Excel con VBA, come creare maschere in Excel con VBA e come creare funzioni personalizzate in Excel con VBA. Tra le funzioni personalizzate che puoi creare con VBA c'è la funzione per eseguire la sottrazione in Excel . Ora puoi sfruttare la potenza di programmazione di VBA per personalizzare e automatizzare Excel in base alle tue esigenze.

Articolo precedente: Come imparare Python a livello principiante?
Articolo successivo: Come connettersi al proprio account di posta elettronica Bouygues Telecom?