La piattaforma Programmazione VBA che funziona su quasi tutti i prodotti Microsoft Office è uno degli strumenti più potenti che chiunque può usare per migliorare l'uso di tali prodotti.
Questa guida VBA per i principianti ti mostreranno come aggiungere il menu Developer all'applicazione Office, come accedere alla finestra dell'editor VBA e come funzionano le istruzioni e i loop VBA di base in modo da poter iniziare a utilizzare VBA in Excel, Word, Powerpoint, Outlook e OneNote .
Questo La guida VBA utilizza l'ultima versione dei prodotti Microsoft Office. Se hai una versione precedente potresti notare alcune lievi differenze rispetto agli screenshot.
Come abilitare e usare l'editor VBA
In qualsiasi ufficio prodotti utilizzati in questa guida, è possibile notare che non si dispone del menu Sviluppatore di riferimento. Il menu sviluppatore è disponibile solo in Excel, Word, Outlook e Powerpoint. OneNote non offre uno strumento per modificare il codice VBA dall'interno dell'applicazione, ma puoi comunque fare riferimento all'API OneNote per interagire con OneNote da altri programmi di Office.
Imparerai come farlo nella nostra prossima guida VBA avanzata.
L'elenco a sinistra include tutti i menu e i comandi di menu disponibili nell'applicazione Office. L'elenco a destra sono quelli attualmente disponibili o attivati.
In_content_1 all: [300x250] / dfp: [640x360]->Suggerimenti generali sulla programmazione VBA per principianti
Noterai quando si apre l'editor VBA, le opzioni di navigazione nel pannello di sinistra appaiono diverse da un'applicazione Office all'altra.
Questo perché gli oggetti disponibili in cui è possibile posizionare il codice VBA dipendono dagli oggetti presenti nell'applicazione. Ad esempio, in Excel, puoi aggiungere il codice VBA alla cartella di lavoro o agli oggetti del foglio. In Word, puoi aggiungere il codice VBA ai documenti. In Powerpoint, solo per i moduli.
Quindi, non essere sorpreso dai diversi menu. La struttura e la sintassi del codice VBA è la stessa in tutte le applicazioni. L'unica differenza sono gli oggetti a cui puoi fare riferimento e le azioni che puoi intraprendere su quegli oggetti attraverso il codice VBA.
Prima di immergerci nei diversi oggetti e azioni che puoi intraprendere tramite il codice VBA, per prima cosa guarda la struttura e la sintassi VBA più comuni che puoi usare quando scrivi il codice VBA.
Dove mettere il codice VBA
Quando sei nel Editor VBA, devi utilizzare le due caselle a discesa nella parte superiore della finestra di modifica per scegliere a quale oggetto vuoi collegare il codice e quando vuoi che il codice venga eseguito.
Ad esempio, in Excel, se scegli Foglio di lavoroe Attiva, il codice verrà eseguito ogni volta che il foglio di lavoro viene aperto.
Altro foglio di lavoro le azioni che puoi utilizzare per attivare il tuo codice VBA includono quando il foglio di lavoro cambia, quando è chiuso (disattivato), quando viene eseguito il calcolo del foglio di lavoro e altro.
Quando aggiungi il codice VBA nell'editor, fai sempre posizionando il codice VBA sull'oggetto e utilizzando l'azione corretta che si desidera utilizzare per attivare quel codice.
Dichiarazioni IF VBA
Un IF L'istruzione funziona in VBA proprio come in qualsiasi altro linguaggio di programmazione.
La prima parte dell'istruzione IF verifica se una condizione o un insieme di condizioni sono vere. Queste condizioni possono essere unite da un operatore AND o OR per collegarle insieme.
Un esempio potrebbe essere quello di verificare se un voto in un foglio di calcolo è al di sopra o al di sotto di un voto "superato" e assegnare il pass o fallisci lo stato in un'altra cella.
If Cells (2, 2)>75 Then Cells (2, 3) = “Passa” Else Cells (2, 3) = “Fail”
Se non si desidera l'intera istruzione su una singola riga, è possibile dividerla in più righe aggiungendo un simbolo "_" alla fine delle righe.
Se celle (2, 2)>75 Quindi _
Celle (2, 3) = "Passa" altrimenti _
Celle (2, 3) = "Fail"
L'uso di questa tecnica può spesso rendere il codice molto più facile da leggere ed eseguire il debug.
VBA per i loop successivi
Le istruzioni IF sono ottime per confronti singoli, come nell'esempio sopra di guardare una singola cella. Ma cosa succede se si desidera eseguire un ciclo attraverso un intero intervallo di celle e fare la stessa istruzione IF su ciascuna?
In questo caso avresti bisogno di un ciclo FOR.
Per fare ciò, dovresti usare la lunghezza di un intervallo e passare attraverso quella lunghezza per il numero di righe che contengono dati.
Per fare ciò, devi per definire l'intervallo e le variabili di cella, e scorrere attraverso di esse. Dovrai anche definire un contatore in modo da poter generare i risultati nella riga appropriata. Quindi il tuo codice VBA dovrebbe prima avere questa riga.
Dim rng As Range, cella As Range
Dim rowCounter as Integer
Definire la dimensione dell'intervallo come segue.
Imposta rng = Range (“B2: B7”)
rowCounter = 2
Infine, puoi creare il ciclo FOR per scorrere tutte le celle in quell'intervallo ed eseguire il confronto.
For Each cell In rngIf cell.Value > 75 Then _ Cells(rowCounter, 3) = "Pass" Else _ Cells(rowCounter, 3) = "Fail" rowCounter = rowCounter + 1 Next cell
Una volta eseguito questo Script VBA, viene visualizzato il risulta nel foglio di calcolo effettivo.
VBA While Loops
A While Loop scorre anche una serie di istruzioni, proprio come il ciclo FOR, ma la condizione del loop per continuare è una condizione rimanente true.
Ad esempio, potresti scrivere lo stesso ciclo FOR sopra, come un ciclo WHILE, semplicemente usando la variabile rowCounter come segue.
While rowCounter < rng.Count + 2If Cells(rowCounter, 2) > 75 Then _ Cells(rowCounter, 3) = "Pass" Else _ Cells(rowCounter, 3) = "Fail" rowCounter = rowCounter + 1 Wend
Nota: il limite di terminazione rng.Count + 2è necessario perché il contatore di righe inizia da 2 e deve terminare nella riga 7 dove terminano i dati. Tuttavia, il conteggio dell'intervallo (B2: B7) è solo 6 e il ciclo While termina solo quando il contatore è MAGGIORE del contatore, quindi il valore dell'ultima rigaCounter deve essere 8 (o rng.Count + 2).
Puoi anche impostare il ciclo While come segue:
While rowCounter <= rng.Count + 1
Puoi incrementa il conteggio dell'intervallo (6) solo di 1, perché una volta che la variabile rowCounter raggiunge la fine dei dati (riga 7), il ciclo può terminare.
VBA Do While e Do Until Loops
I cicli While e Do Until sono quasi identici ai loop While, ma funzionano in modo leggermente diverso.
In questo caso riscrivi t he Mentre ciclo sopra come segue, come un ciclo Do-While.
DoIf Cells(rowCounter, 2) > 75 Then _ Cells(rowCounter, 3) = "Pass" Else _ Cells(rowCounter, 3) = "Fail" rowCounter = rowCounter + 1 Loop While rowCounter < rng.Count + 2
In questo caso la logica non cambia molto, ma se si desidera assicurarsi che la logica il confronto ha luogo dopo che tutte le istruzioni sono state eseguite (consentendo a tutte di eseguire indipendentemente da cosa almeno una volta), quindi un ciclo Do-While o Do-Until è l'opzione giusta.
Dichiarazioni di casi selezionati VBA
Il tipo finale di istruzione logica che devi comprendere per iniziare a strutturare il tuo codice VBA sono le istruzioni Select Case.
Considerando l'esempio sopra, supponiamo che tu voglia avere un metodo di valutazione che non è solo un fallimento. Invece, vuoi assegnare un voto in lettere da A a F.
Puoi farlo con la seguente dichiarazione Select Case:
For Each cell In rngSelect Case cell Case 95 To 100 Cells(rowCounter, 3) = "A" Case 85 To 94 Cells(rowCounter, 3) = "B" Case 75 To 84 Cells(rowCounter, 3) = "C" Case 65 To 74 Cells(rowCounter, 3) = "D" Case 0 To 64 Cells(rowCounter, 3) = "F" End Select rowCounter = rowCounter + 1 Next cell
Il foglio di calcolo risultante dopo l'esecuzione di questo script VBA è simile al seguente.
Ora sai tutto ciò che devi sapere per iniziare a utilizzare VBA nelle tue applicazioni Microsoft Office.