Cos'è vba in excel? (da base ad avanzato)

Cos’è il VBA?

VBA (Visual Basic for Applications) è un linguaggio di programmazione che ti consente di automatizzare quasi tutto in Excel. Con VBA è possibile fare riferimento agli oggetti di Excel e utilizzare le proprietà, i metodi e gli eventi ad essi associati. Ad esempio, puoi creare una tabella pivot, inserire un grafico e visualizzare una finestra di messaggio all’utente utilizzando una macro.

La cosa folle è:

Per tutte le attività che svolgi manualmente in pochi minuti, VBA può farlo in pochi secondi, con un solo clic, con la stessa precisione. Anche tu puoi scrivere codici VBA che possono essere eseguiti automaticamente quando apri un documento, una cartella di lavoro o anche in un momento specifico.

Lascia che ti mostri un esempio concreto:

Ogni mattina quando vado in ufficio, la prima cosa che devo fare è creare una tabella pivot per le vendite mensili e presentarla al mio capo. Ciò include gli stessi passaggi, ogni giorno. Ma quando ho capito che potevo usare VBA per creare una tabella pivot e inserirla con un solo clic, ho risparmiato 5 minuti al giorno.

Codici macro per creare una tabella pivot

Ecco come funziona VBA

VBA è un linguaggio orientato agli oggetti e come linguaggio orientato agli oggetti, in VBA strutturiamo i nostri codici in modo da utilizzare oggetti e quindi definirne le proprietà.

In termini semplici definiamo prima l’oggetto e poi l’attività che vogliamo svolgere. Esistono oggetti, raccolte, metodi e proprietà che puoi utilizzare in VBA per scrivere il tuo codice.

>Non perdetelo<

Diciamo che vuoi dire a qualcuno di aprire una scatola. Le parole che useresti sarebbero “Apri la scatola”. È un inglese semplice, vero? Ma quando si tratta di VBA e di scrivere una macro, sarà:

 Box.Open

Come puoi vedere, il codice qui sopra inizia con la casella che è il nostro oggetto qui, quindi abbiamo utilizzato il metodo “Apri” per questo. Andiamo un po’ più nello specifico, diciamo se vuoi aprire la scatola che è colorata di ROSSO. E per questo il codice sarà:

 Boxes(“Red”).Open

Nel codice precedente, box rappresenta la raccolta e open è il metodo. Se disponi di più caselle, qui definiamo una casella specifica. Ecco un altro modo:

 Box(“Red”).Unlock = True

Nel codice precedente, le caselle rappresentano nuovamente la raccolta e Unlock è la proprietà impostata su TRUE.

A cosa serve VBA in Excel?

In Excel puoi utilizzare VBA per cose diverse. Eccotene alcune:

  • Inserisci dati : puoi inserire dati in una cella, un intervallo di celle. Puoi anche copiare e incollare dati da una sezione all’altra.
  • Automazione delle attività : puoi automatizzare le attività che richiedono molto tempo. Il miglior esempio che posso fornire è l’utilizzo di una macro per creare una tabella pivot.
  • Crea una funzione Excel personalizzata : con VBA puoi anche creare una funzione personalizzata definita dall’utente e utilizzarla nel foglio di lavoro.
  • Crea componenti aggiuntivi : in Excel puoi convertire i tuoi codici VBA in componenti aggiuntivi e condividerli anche con altri.
  • Integrazione con altre applicazioni Microsoft : puoi anche integrare Excel con altre applicazioni Microsoft. Ad esempio, puoi inserire dati in un file di testo.

Nozioni di base sulla programmazione Excel

1. Procedura

Una procedura in VBA è un insieme di codici o una singola riga di codice che esegue un’attività specifica.

  1. SUB : la procedura Sub può eseguire azioni ma non restituisce un valore (ma puoi utilizzare un oggetto per ottenere quel valore).
  2. Funzione : Utilizzando la procedura Funzione, crei la tua funzione, che puoi utilizzare nel foglio di calcolo o nelle altre procedure SUB e FUNZIONE (Vedi questo: Funzione VBA ).

2. Variabili e costanti

Sono necessarie variabili e costanti per utilizzare i valori più volte nel codice.

  • Variabile : una variabile può memorizzare un valore, ha un nome, è necessario definire il suo tipo di dati ed è possibile modificare il valore che memorizza. Come suggerisce il nome, “VARIABILE” non ha un valore fisso. È come una scatola di immagazzinaggio che viene archiviata nel sistema.
  • Costante : anche una costante può memorizzare un valore, ma non è possibile modificare il valore durante l’esecuzione del codice.

3. Tipi di dati

È necessario dichiarare il tipo di dati per VARIABILI e COSTANTI.

define data type

Quando specifichi il tipo di dati per una variabile o costante, ne garantisci la validità. Se ometti il tipo di dati, VBA applica il tipo di dati Variant alla variabile (questo è il più flessibile), VBA non indovinerà quale dovrebbe essere il tipo di dati.

Suggerimento: opzione VBA esplicita

4. Oggetti, proprietà e metodi

Visual Basic for Applications è un linguaggio orientato agli oggetti e per trarne il massimo; è necessario comprendere gli oggetti di Excel.

La cartella di lavoro utilizzata in Excel contiene diversi oggetti e con tutti questi oggetti sono disponibili diverse proprietà a cui è possibile accedere e metodi che è possibile utilizzare.

5. Eventi

Ogni volta che fai qualcosa in Excel, è un evento: inserisci un valore in una cella, inserisci un nuovo foglio di lavoro o inserisci un grafico. Di seguito la classificazione degli eventi in base agli oggetti:

  1. Eventi dell’applicazione: questi eventi sono associati all’applicazione Excel stessa.
  2. Eventi della cartella di lavoro: questi eventi sono associati alle azioni che si verificano in una cartella di lavoro.
  3. Eventi del foglio di lavoro: questi eventi sono associati all’azione che si verifica in un foglio di lavoro.
  4. Eventi grafico: questi eventi sono associati ai fogli grafici (che sono diversi dai fogli di lavoro).
  5. Eventi userform: questi eventi sono associati all’azione che si verifica con un userform.
  6. Eventi OnTime: gli eventi OnTime sono quelli che possono attivare il codice in un momento specifico.
  7. Eventi OnKey: gli eventi OnKey sono quelli che possono attivare un codice quando viene premuto un tasto particolare.

6.Ambito

L’oggetto intervallo è il modo più comune e popolare per fare riferimento a un intervallo nei codici VBA. Devi fare riferimento all’indirizzo della cella, lascia che ti dica la sintassi.

 Worksheets(“Sheet1”).Range(“A1”)

7.Condizioni

Come qualsiasi altro linguaggio di programmazione, puoi anche scrivere codici per testare le condizioni in VBA. Ti consente di farlo in due modi diversi.

  • IF THEN‌ ELSE‌ : questa è un’istruzione IF che puoi utilizzare per testare una condizione e quindi eseguire una riga di codice se tale condizione è VERA. Puoi anche scrivere condizioni di nidificazione con
  • SELEC‌T‌ CASE : nel caso selezionato, è possibile specificare una condizione e quindi diversi casi di risultati del test per eseguire diverse righe di codice da eseguire. È un po’ più strutturato dell’istruzione IF.

8. Loop VBA

Puoi scrivere codici in grado di ripetere e ripetere un’azione in VBA ed esistono diversi modi per scrivere codice come questo.

  • Per successivo : la soluzione migliore per utilizzare Per successivo è quando si desidera ripetere una serie di azioni un numero fisso di volte.
  • For Each Next : è perfetto da utilizzare quando si desidera scorrere un gruppo di oggetti da una raccolta di oggetti.
  • Do While Loop: la semplice idea alla base del Do While Loop è eseguire un’attività mentre una condizione è vera.
  • Ciclo Do Until: nel ciclo Do Until, VBA esegue un ciclo e continua ad eseguirlo se la condizione è FALSE.

9. Casella di immissione e casella di messaggio

  • Casella di input : Casella di input è una funzione che visualizza una casella di input per l’utente e raccoglie una risposta.
  • Finestra di messaggio : la finestra di messaggio ti aiuta a visualizzare un messaggio per l’utente, ma hai la possibilità di aggiungere pulsanti alla finestra di messaggio per ottenere la risposta dall’utente.

10. Errori

Excel è sfortunato quando si tratta di errori di programmazione e devi affrontarli qualunque cosa accada.

  1. Errori di sintassi : sono come errori di battitura che fai durante la scrittura dei codici, ma VBA può aiutarti segnalando questi errori.
  2. Errori di compilazione: si verificano quando scrivi codice per eseguire un’attività, ma tale attività non è valida.
  3. Errori di runtime : si verifica un errore RUNTIME durante l’esecuzione del codice. Arresta il codice e visualizza la finestra di dialogo di errore.
  4. Errore logico : non è un errore ma un errore durante la scrittura del codice e talvolta può causare problemi durante la ricerca e la correzione.

Scrivere una macro (programma VBA) in Excel

Sono fermamente convinto che inizialmente quando qualcuno inizia a programmare in Excel, LUI/LEI dovrebbe scrivere sempre più codici da zero. Più codici scrivi da zero, più capisci come funziona VBA.

Ma dovresti iniziare scrivendo codici semplici invece di passare a codici complessi. Questo è il PERCHÉ non voglio che tu pensi a nulla di complesso in questo momento.

Puoi anche scrivere un codice macro per creare una tabella pivot, ma per il momento non voglio che tu ci pensi così lontano. Pensiamo a un’attività che desideri svolgere nel tuo foglio di calcolo e puoi scrivere il codice per essa.

  1. Vai alla scheda Sviluppatore e apri Visual Basic Editor dal pulsante “Visual Basic”.
    visual-basic-button
  2. Successivamente, inserire un nuovo modulo dalla “Finestra del progetto” (fare clic con il pulsante destro del mouse ➢ Inserisci → Modulo).
    insert-a-new-module
  3. Successivamente, vai alla finestra del codice e crea una macro con il nome “Enter Done” (creiamo una procedura SUB), come ho sotto.
    code-window
  4. Da lì, devi scrivere del codice di cui abbiamo appena parlato sopra. Aspetta un secondo e pensa in questo modo: devi specificare la cella in cui vuoi inserire il valore, quindi il valore che vuoi inserire.
  5. Inserisci il riferimento della cella e per questo devi utilizzare l’oggetto RANGE e specificare lì l’indirizzo della cella, come di seguito:
    cell-reference-range-object
  6. Successivamente, inserisci un punto e nel momento in cui aggiungi un punto, avrai un elenco di proprietà che puoi impostare e attività che puoi svolgere con l’intervallo.
    enter-a-dot
  7. Da qui devi selezionare la proprietà “Valore” e impostare il testo che desideri inserire nella cella “A1” e, così facendo, il tuo codice sarà simile a quello riportato di seguito.
    select-value
  8. Infine, sopra la riga di codice, inserisci il testo (“questo codice inserisce il valore “Fatto” nella cella A5). Questo è un commento VBA che puoi inserire per definire la riga di codice che hai scritto.
    enter-the-text-above-line-code
 Sub Enter_Done() 'this code enters the value “Done” in the cell A5 Range("A1").Value = "Done" End Sub

Capiamo questo…

Puoi dividere questo codice in due parti diverse.

  • Nella PRIMA parte abbiamo specificato l’indirizzo della cella utilizzando l’oggetto RANGE. Inoltre, per fare riferimento a una cella utilizzando un oggetto intervallo, è necessario racchiudere l’indirizzo della cella tra virgolette doppie (puoi anche utilizzare parentesi quadre).
  • Nella SECONDA parte abbiamo specificato il valore da inserire nella cella. Quello che hai fatto è impostare la proprietà value per la cella A5 utilizzando “.Value”. Successivamente, la cosa successiva che hai specificato è il valore relativo alla proprietà value . Ogni volta che definisci un valore (se è testo), devi racchiuderlo tra virgolette doppie.

Il modo migliore per imparare VBA

Qui ho elencato alcuni dei tutorial più sorprendenti (non in una sequenza particolare) che possono aiutarti a imparare VBA in pochissimo tempo.

11. Funzioni

Aggiungi un commento

Il tuo indirizzo email non sarà pubblicato. I campi obbligatori sono contrassegnati *