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.
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.
- SUB : la procedura Sub può eseguire azioni ma non restituisce un valore (ma puoi utilizzare un oggetto per ottenere quel valore).
- 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.
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:
- Eventi dell’applicazione: questi eventi sono associati all’applicazione Excel stessa.
- Eventi della cartella di lavoro: questi eventi sono associati alle azioni che si verificano in una cartella di lavoro.
- Eventi del foglio di lavoro: questi eventi sono associati all’azione che si verifica in un foglio di lavoro.
- Eventi grafico: questi eventi sono associati ai fogli grafici (che sono diversi dai fogli di lavoro).
- Eventi userform: questi eventi sono associati all’azione che si verifica con un userform.
- Eventi OnTime: gli eventi OnTime sono quelli che possono attivare il codice in un momento specifico.
- 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
- SELECT 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.
- Errori di sintassi : sono come errori di battitura che fai durante la scrittura dei codici, ma VBA può aiutarti segnalando questi errori.
- Errori di compilazione: si verificano quando scrivi codice per eseguire un’attività, ma tale attività non è valida.
- Errori di runtime : si verifica un errore RUNTIME durante l’esecuzione del codice. Arresta il codice e visualizza la finestra di dialogo di errore.
- 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.
- Vai alla scheda Sviluppatore e apri Visual Basic Editor dal pulsante “Visual Basic”.
- Successivamente, inserire un nuovo modulo dalla “Finestra del progetto” (fare clic con il pulsante destro del mouse ➢ Inserisci → Modulo).
- Successivamente, vai alla finestra del codice e crea una macro con il nome “Enter Done” (creiamo una procedura SUB), come ho sotto.
- 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.
- Inserisci il riferimento della cella e per questo devi utilizzare l’oggetto RANGE e specificare lì l’indirizzo della cella, come di seguito:
- 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.
- 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.
- 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.
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.
- Primi 100 esempi utili di codici macro Excel [VBA].
- Come creare una funzione definita dall’utente [UDF] in Excel utilizzando VBA
- Domande per l’intervista VBA
1. Iniziare con VBA
- Aggiungi una scheda sviluppatore
- Editor di Visual Basic
- Aggiungi un commento in VBA
- Aggiungi un’interruzione di riga nel codice VBA
- Aggiungi una nuova riga (ritorno a capo)
- Esegui una macro in Excel
- Cartella di lavoro macro personale (personal.xlsb)
- Registra una macro in Excel
- Sottoistruzione di output VBA
- Finestra immediata VBA (Debug.Print)
- Modulo VBA
- Finestra di messaggio VBA (MsgBox)
- Oggetti VBA
- VBA con dichiarazione
2. Lavorare con le cartelle di lavoro in VBA
- Comprensione dell’oggetto cartella di lavoro VBA
- Copia un file Excel (cartella di lavoro) utilizzando VBA
- Attiva la cartella di lavoro (file Excel)
- Chiudi la cartella di lavoro (file Excel)
- Combina cartelle di lavoro (file Excel)
- Creare una nuova cartella di lavoro (file Excel)
- Elimina cartella di lavoro (file Excel)
- Apri cartella di lavoro (file Excel)
- Proteggi/annulli la protezione della cartella di lavoro (file Excel)
- Rinominare la cartella di lavoro (file Excel)
- Salvare la cartella di lavoro (file Excel)
- ThisWorkbook (file Excel corrente)
3. Lavora con i fogli di calcolo
- Lavorare con un foglio di calcolo Excel in VBA
- Come CANCELLARE un intero foglio utilizzando VBA in Excel
- Come copiare e spostare un foglio in Excel utilizzando VBA
- Come CONTARE i fogli utilizzando VBA in Excel
- Come ELIMINARE un FOGLIO utilizzando VBA in Excel
- Come nascondere e mostrare un foglio utilizzando VBA in Excel
- Come PROTEGGERE e NON PROTEGGERE un foglio utilizzando VBA in Excel
- Come rinominare un foglio utilizzando VBA in Excel
- Come scrivere codice VBA per creare un nuovo foglio in Excel (macro)
- Come attivare un foglio utilizzando VBA
4. Lavorare con intervallo e celle
- Lavorare con intervallo e celle in VBA
- Contare le righe utilizzando VBA in Excel
- Carattere VBA Excel (colore, dimensione, tipo e grassetto)
- Excel VBA Nascondi e mostra una colonna o una riga
- Come applicare i bordi su una cella utilizzando VBA in Excel
- Come trovare l’ultima riga, colonna e cella utilizzando VBA in Excel
- Come inserire una riga utilizzando VBA in Excel
- Come unire le celle in Excel utilizzando il codice VBA
- Come selezionare un intervallo/cella utilizzando VBA in Excel
- Come SELEZIONARE TUTTE le celle in un foglio di lavoro utilizzando VBA
- Come utilizzare ActiveCell in VBA in Excel
- Come utilizzare il metodo delle celle speciali in VBA in Excel
- Come utilizzare la proprietà UsedRange in VBA in Excel
- Adattamento automatico VBA (righe, colonne o intero foglio di lavoro)
- VBA ClearContents (da una cella, un intervallo o un intero foglio di lavoro)
- Intervallo di copia VBA su un altro foglio + cartella di lavoro
- VBA Inserisci un valore in una cella (Imposta, Ottieni e Modifica)
- Colonna di inserimento VBA (singola e multipla)
- Intervallo denominato VBA | (Statico + Selezione + Dinamico)
- Scostamento intervallo VBA
- Intervallo di ordinamento VBA | (Discendente, più colonne, orientamento dell’ordinamento
- Testo a capo VBA (cella, intervallo e intero foglio di lavoro)
- Come evidenziare i valori duplicati in Excel utilizzando i codici VBA
- Come estrarre l’indirizzo del collegamento ipertestuale (URL) in Excel utilizzando VBA UDF
5. Variabili e costanti
6. Riccioli
7.Condizioni
- VBA IF – Istruzione IF Then Else
- Come verificare se esiste un foglio utilizzando VBA in Excel
- VBA Controlla se una cella è vuota + più celle
- VBA Controlla se esiste una cartella di lavoro in una cartella (file Excel)
- VBA Controlla se una cartella di lavoro è aperta (file Excel)
- VBA Esci SE
- VBA IF And (test a condizioni multiple)
- VBA SE NO
- VBA IF OR (condizioni di test multiple)
- VBA nidificato IF
- Istruzione VBA SELECT CASE (testare più condizioni)
8. Calcoli
- Come calcolare la media dei valori in Excel utilizzando VBA
- Come ottenere la data e l’ora corrente utilizzando VBA
- Come aggiungere valori in Excel utilizzando VBA
- Come utilizzare la funzione di corrispondenza in VBA
- Come utilizzare MOD in VBA
- Numero casuale
- Calcolo VBA (cella, intervallo, riga e cartella di lavoro)
- Concatena VBA
- Funzione foglio di lavoro VBA (utilizza le funzioni di Excel in una macro)
9. Tabelle
10. Errori
- Gestione degli errori VBA
- Errore di automazione VBA (errore 440)
- Errore VBA 400
- Chiamata di procedura VBA o errore di argomento non valido (errore 5)
- L’oggetto VBA non supporta questa proprietà o errore del metodo (errore 438)
- Errore richiesto oggetto VBA (errore 424)
- Errore di memoria insufficiente VBA (errore 7)
- Errore di overflow VBA (errore 6)
- Errore di runtime VBA (errore 1004)
- Errore di esecuzione dell’indice VBA fuori intervallo (errore 9)
- Errore di incompatibilità del tipo VBA (errore 13)
11. Funzioni
- Principali funzioni VBA
- Funzione ABS VBA (ottieni valore assoluto)
- Funzione di array VBA
- Funzione VBA ATN (sintassi + esempio)
- Funzione VBA CBOOL (sintassi + esempio)
- Funzione VBA CBYTE (sintassi + esempio)
- Funzione VBA CCUR (sintassi + esempio)
- Funzione VBA CDATE (sintassi + esempio)
- Funzione VBA CDBL (sintassi + esempio)
- Funzione VBA CDEC (sintassi + esempio)
- Funzione VBA CHR (sintassi + esempio)
- Funzione VBA CINT (sintassi + esempio)
- Funzione VBA CLNG (sintassi + esempio)
- Funzione COS VBA (sintassi + esempio)
- Funzione VBA CSNG (sintassi + esempio)
- Funzione VBA CSTR (sintassi + esempio)
- Funzione VBA CVAR (sintassi + esempio)
- Funzione VBA CVERR (sintassi + esempio)
- Funzione DATA VBA (sintassi + esempio)
- Funzione VBA DATEADD (sintassi + esempio)
- Funzione VBA DATEPART (sintassi + esempio)
- Funzione VBA DATESERIAL (sintassi + esempio)
- Funzione VBA DATEVALUE (sintassi + esempio)
- Funzione VBA DAY (sintassi + esempio)
- Funzione VBA DDB (sintassi + esempio)
- Funzione VBA EXP (sintassi + esempio)
- Funzione VBA FileDateTime
- Funzione FILTRO VBA (sintassi + esempio)
- Funzione VBA FIX (sintassi + esempio)
- Funzione FORMATO VBA (sintassi + esempio)
- Funzione VBA FORMATCURRENCY (sintassi + esempio)
- Funzione VBA FORMATDATETIME (sintassi + esempio)
- Funzione VBA FORMATNUMBER (sintassi + esempio)
- Funzione VBA FORMATPERCENT (sintassi + esempio)
- Funzione VBA FV (sintassi + esempio)
- Funzione VBA HEX (sintassi + esempio)
- Funzione VBA HOUR (sintassi + esempio)
- Funzione VBA IIF (sintassi + esempio)
- Funzione VBA INSTR (sintassi + esempio)
- Funzione VBA INSTRREV (sintassi + esempio)
- Funzione VBA INT (sintassi + esempio)
- Funzione VBA IPMT (sintassi + esempio)
- Funzione VBA IRR (sintassi + esempio)
- Funzione VBA ISARRAY (sintassi + esempio)
- Funzione VBA ISDATE (sintassi + esempio)
- Funzione VBA ISEMPTY (sintassi + esempio)
- Funzione VAL.ERRORE VBA (sintassi + esempio)
- Funzione VBA ISMISSING (sintassi + esempio)
- Funzione VBA ISNULL (sintassi + esempio)
- Funzione ISNUMERICA VBA (sintassi + esempio)
- Funzione VBA ISOBJECT (sintassi + esempio)
- Funzione VBA JOIN (sintassi + esempio)
- Funzione VBA LBOUND (sintassi + esempio)
- Funzione VBA LCASE (sintassi + esempio)
- Funzione VBA SINISTRA (sintassi + esempio)
- Funzione LEN VBA (sintassi + esempio)
- Funzione VBA LOG (sintassi + esempio)
- Funzione VBA LTRIM (sintassi + esempio)
- Funzione VBA MID (sintassi + esempio)
- Funzione VBA MINUTO (sintassi + esempio)
- Funzione VBA MIRR (sintassi + esempio)
- Funzione MESE VBA (sintassi + esempio)
- Funzione VBA NOME MESE (sintassi + esempio)
- Funzione VBA NOW (sintassi + esempio)
- Funzione VBA NPER (sintassi + esempio)
- Funzione VAN VBA (sintassi + esempio)
- Funzione OCT VBA (sintassi + esempio)
- Funzione VBA PMT (sintassi + esempio)
- Funzione VBA PPMT (sintassi + esempio)
- Funzione PV VBA (sintassi + esempio)
- Funzione VBA RATE (sintassi + esempio)
- Funzione VBA REPLACE (sintassi + esempio)
- Funzione VBA RIGHT (sintassi + esempio)
- Funzione VBA RND (sintassi + esempio)
- Funzione VBA ROUND (sintassi + esempio)
- Funzione VBA RTRIM (sintassi + esempio)
- Funzione VBA SECOND (sintassi + esempio)
- Funzione VBA SGN (sintassi + esempio)
- Funzione VBA SIN (sintassi + esempio)
- Funzione VBA SLN (sintassi + esempio)
- Funzione VBA SPACE (sintassi + esempio)
- Funzione VBA SPLIT (sintassi + esempio)
- Funzione VBA SQR (sintassi + esempio)
- Funzione VBA STR (sintassi + esempio)
- Funzione VBA STRCOMP (sintassi + esempio)
- Funzione VBA STRCONV (sintassi + esempio)
- Funzione VBA STRING (sintassi + esempio)
- Funzione VBA STRREVERSE (sintassi + esempio)
- Funzione VBA SYD (sintassi + esempio)
- Funzione VBA TAN (sintassi + esempio)
- Funzione VBA TIME (sintassi + esempio)
- Funzione VBA TIMER (sintassi + esempio)
- Funzione VBA TIMESERIAL (sintassi + esempio)
- Funzione VBA TIMEVALUE (sintassi + esempio)
- Funzione VBA TRIM (sintassi + esempio)
- Funzione VBA UBOUND (sintassi + esempio)
- Funzione VBA UCASE (sintassi + esempio)
- Funzione VBA VAL (sintassi + esempio)
- Funzione VBA WEEKDAY (sintassi + esempio)
- Funzione VBA WEEKDAYNAME (sintassi + esempio)
- Funzione VBA ANNO (sintassi + esempio)
12.Altro
- Come utilizzare la casella di input in VBA
- VBA crea e scrive in un file di testo
- Aggiornamento schermata VBA | Come abilitarlo e disabilitarlo
- Barra di stato VBA (nascondi, mostra e avanza)
- Comandi VBA wait e sleep per sospendere e ritardare
- Una guida passo passo per creare una tabella pivot in Excel utilizzando VBA – CODICE MACRO
- Come cercare su Google utilizzando il codice VBA
- Come inserire una casella di controllo in Excel