Un tutorial per principianti sulla scrittura di macro VBA in Excel (e perché dovresti imparare)

Un tutorial per principianti sulla scrittura di macro VBA in Excel (e perché dovresti imparare) / Produttività

I macro di Excel possono risparmiare un sacco di tempo automatizzando i processi di Excel che si utilizzano spesso Come registrare una macro in Excel 2016 Come registrare una macro in Excel 2016 Sapevate che è possibile automatizzare le attività ripetitive in Microsoft Excel utilizzando le macro? Ti mostreremo come registrare una macro in Excel 2016 per risparmiare un sacco di tempo. Leggi di più . Ma le macro sono in realtà piuttosto limitate. È facile commettere un errore con lo strumento di registrazione e il processo di registrazione è scomodo.

L'utilizzo di VBA per creare macro ti offre molto più potere. Puoi dire esattamente a Excel cosa fare e come farlo. Hai anche accesso a molte più funzioni e funzionalità. Se si utilizza regolarmente Excel, vale la pena imparare a creare macro VBA.

Inizieremo con le basi.

Cos'è VBA?

VBA è Visual Basic for Applications, un linguaggio di programmazione che è possibile utilizzare in molte app Microsoft. Visual Basic è un linguaggio di programmazione e VBA ne è la versione specifica dell'applicazione. (Microsoft ha interrotto Visual Basic nel 2008, ma VBA sta ancora andando forte).

Fortunatamente per i non programmatori, VBA è molto semplice e l'interfaccia che usi per modificarlo offre molta assistenza. Molti dei comandi useranno suggerimenti pop-up e completamenti automatici, aiutandoti a far funzionare rapidamente lo script.

Ancora, VBA richiede un po 'di tempo per abituarsi.

I vantaggi delle macro VBA in Excel

Se VBA è più difficile della registrazione di una macro, perché dovresti usarla? La risposta breve è che si ottiene molta più potenza dalle macro VBA.

Invece di fare clic sul tuo foglio di calcolo e registrare questi clic, puoi accedere alla gamma completa di funzioni e funzionalità di Excel. Hai solo bisogno di sapere come usarli.

E una volta che sei più a tuo agio con VBA, puoi fare tutto ciò che potresti fare in una normale macro in molto meno tempo. I risultati saranno anche più prevedibili, come stai dicendo a Excel Esattamente Cosa fare. Non c'è alcuna ambiguità.

Una volta creata la macro VBA, è facile salvarla e condividerla in modo che chiunque altro possa trarne vantaggio. Ciò è particolarmente utile quando lavori con un sacco di persone che hanno bisogno di fare le stesse cose in Excel.

Diamo un'occhiata a una semplice macro VBA per vedere come funziona.

Un esempio di una macro VBA in Excel

Diamo un'occhiata ad una semplice macro. Il nostro foglio di lavoro contiene i nomi dei dipendenti, il numero del negozio in cui lavorano i dipendenti e le loro vendite trimestrali.

Questa macro aggiungerà le vendite trimestrali di ogni negozio e scriverà quelle totali nelle celle del foglio di calcolo (se non sei sicuro di come accedere alla finestra di dialogo VBA, dai un'occhiata al nostro VBA walkthrough qui):

Sub StoreSales () Dim Sum1 As Valuta Dim Sum2 As Currency Dim Sum3 As Currency Dim Sum4 As Currency Per ogni cella in Range ("C2: C51") Cell.Activate If IsEmpty (Cell) Then Exit For If ActiveCell.Offset (0, -1) = 1 Quindi Sum1 = Sum1 + Cell.Value ElseIf ActiveCell.Offset (0, -1) = 2 Quindi Sum2 = Sum2 + Cell.Value ElseIf ActiveCell.Offset (0, -1) = 3 Quindi Sum3 = Sum3 + Cell.Value ElseIf ActiveCell.Offset (0, -1) = 4 Then Sum4 = Sum4 + Cell.Value End If Next Intervallo di celle ("F2"). Value = Sum1 Range ("F3"). Value = Sum2 Range (" F4 "). Valore = Sum3 Range (" F5 "). Value = Sum4 End Sub

Questo potrebbe sembrare lungo e complicato, ma lo suddivideremo in modo da poter vedere i singoli elementi e imparare un po 'sulle basi di VBA.

Dichiara il Sub

All'inizio del modulo, abbiamo “Sub StoreSales ()”. Questo definisce un nuovo sottotitolo chiamato StoreSales.

È anche possibile definire le funzioni, la differenza è che le funzioni possono restituire valori e non i sottotitoli (se si ha familiarità con altri linguaggi di programmazione, i sottotitoli sono l'equivalente dei metodi). In questo caso, non è necessario restituire un valore, quindi stiamo utilizzando un sub.

Alla fine del modulo, abbiamo “End Sub,” che dice a Excel che abbiamo finito con questa macro VBA.

Dichiarazione delle variabili

Iniziano le prime righe di codice nel nostro script “offuscare.” Dim è il comando di VBA per la dichiarazione di una variabile.

Così “Dim Sum1” crea una nuova variabile chiamata “sum1.” Tuttavia, dobbiamo dire a Excel che tipo di variabile è. Dobbiamo scegliere un tipo di dati. Esistono molti tipi di dati diversi in VBA: puoi trovare l'elenco completo nei documenti della guida di Microsoft.

Poiché la nostra macro VBA avrà a che fare con le valute, utilizzeremo il tipo di dati Valuta.

La dichiarazione “Dim Sum1 As Currency” dice a Excel di creare una nuova variabile di valuta chiamata Sum1. Ogni variabile che dichiari deve avere un “Come” dichiarazione per dire ad Excel il suo tipo.

Iniziare un ciclo For

I loop sono alcune delle cose più potenti che puoi creare in qualsiasi linguaggio di programmazione. Se non hai familiarità con i loop, dai un'occhiata a questa spiegazione dei loop Do-While Come i cicli di lavoro funzionano nella programmazione dei computer Come funzionano i cicli di lavoro mentre i loop sono uno dei primi tipi di controllo che imparerai nella programmazione . Probabilmente sai su while e for loops, ma cosa fa un ciclo do-while? Leggi di più . In questo esempio, stiamo usando un ciclo For, che è anche trattato nell'articolo.

Ecco come appare il ciclo:

Per ogni cella nel campo ("C2: C51") [un mucchio di roba] Cella successiva

Questo dice a Excel di scorrere le celle nell'intervallo specificato. Abbiamo utilizzato un oggetto Range Comprendere le funzioni delle celle e degli intervalli di Excel in VBA Informazioni sulle funzioni delle celle e degli intervalli di Excel in VBA L'utilizzo delle funzioni Intervallo e Celle in Excel può generare confusione. Ecco come puoi utilizzarli in modi che probabilmente non avresti mai immaginato, con l'aiuto di VBA Read More, che è un tipo specifico di oggetto in VBA. Quando lo usiamo in questo modo-Range (“C2: C51”) -it dice a Excel che siamo interessati a quelle 50 celle.

“Per ciascuno” dice a Excel che faremo qualcosa con ogni cella dell'intervallo. “Cella successiva” arriva dopo tutto quello che vogliamo fare e dice ad Excel di iniziare il ciclo dall'inizio (a partire dalla cella successiva).

Abbiamo anche questa affermazione: “Se è vuoto (cella), quindi esci per.”

Riesci a indovinare cosa fa?

Nota: Strettamente parlando, l'utilizzo di un ciclo While potrebbe essere una scelta migliore 4 errori da evitare durante la programmazione di macro di Excel con errori di VBA 4 che si possono evitare durante la programmazione di macro di Excel con VBA Il codice semplice e le macro sono le chiavi dei superpoteri di Microsoft Excel. Persino i non programmatori possono facilmente aggiungere funzionalità straordinarie ai propri fogli di lavoro con Virtual Basics for Applications (VBA). Basta evitare questi errori di programmazione per principianti! Leggi di più . Tuttavia, per motivi di insegnamento, ho deciso di utilizzare un ciclo For con un'uscita.

If-Then-Else Statements

Il nucleo di questa particolare macro è nelle istruzioni If-Then-Else. Ecco la nostra sequenza di istruzioni condizionali:

Se ActiveCell.Offset (0, -1) = 1 Quindi Sum1 = Sum1 + Cell.Value ElseIf ActiveCell.Offset (0, -1) = 2 Quindi Sum2 = Sum2 + Cell.Value ElseIf ActiveCell.Offset (0, -1) = 3 Quindi Sum3 = Sum3 + Cell.Value ElseIf ActiveCell.Offset (0, -1) = 4 Then Sum4 = Sum4 + Cell.Value End If

Per la maggior parte, puoi probabilmente indovinare cosa fanno queste affermazioni. Tuttavia, potresti non avere familiarità con ActiveCell.Offset. “ActiveCell.Offset (0, -1)” dice a Excel di guardare la cella che è una colonna a sinistra della cella attiva.

Nel nostro caso, sta dicendo a Excel di consultare la colonna del numero del negozio. Se Excel trova un 1 in questa colonna, prende il contenuto della cella attiva e lo aggiunge a Sum1. Se trova un 2, aggiunge il contenuto della cella attiva a Sum2. E così via.

Excel esegue tutte queste istruzioni in ordine. Se l'istruzione condizionale Come utilizzare le istruzioni IF in Microsoft Excel Come utilizzare le istruzioni IF in Microsoft Excel Se sei un esperto esperto o un principiante di fogli di calcolo, ti consigliamo di consultare questa guida alle istruzioni IF in Excel. Leggi di più è soddisfatto, completa la dichiarazione Then. In caso contrario, passa al successivo ElseIf. Se arriva fino in fondo e nessuna delle condizioni è soddisfatta, non prenderà alcuna azione.

La combinazione del ciclo e dei condizionali è ciò che guida questa macro. Il ciclo dice a Excel di passare attraverso ogni cella nella selezione e i condizionali dicono cosa fare con quella cella.

Scrittura dei valori delle celle

Alla fine, scriviamo i risultati dei nostri calcoli alle celle. Ecco le linee che usiamo per farlo:

Range ("F2"). Value = Sum1 Range ("F3"). Value = Sum2 Range ("F4"). Value = Sum3 Range ("F5"). Valore = Sum4

Con “.Valore” e un segno di uguale, abbiamo impostato ciascuna di queste celle sul valore di una delle nostre variabili.

E questo è tutto! Diciamo a Excel che abbiamo finito di scrivere questo sottotitolo con “End Sub,” e la macro VBA è completa.

Quando eseguiamo la macro con Macro pulsante nel Sviluppatore scheda, otteniamo le nostre somme:

Mettere insieme i componenti di VBA in Excel

Quando si guarda prima la macro VBA sopra, sembra piuttosto complessa. Ma dopo averlo scomposto nelle sue parti costituenti, la logica diventa chiara. Come qualsiasi linguaggio di scripting, ci vuole tempo per abituarsi alla sintassi di VBA.

Ma con la pratica, costruirai il tuo vocabolario VBA e sarai in grado di scrivere macro più velocemente, più accuratamente e con molta più energia di quanto tu possa mai registrare.

Quando rimani bloccato, eseguire una ricerca su Google è un modo rapido per ottenere risposta alle tue domande VBA. E il riferimento VBA di Excel di Microsoft può essere utile se sei disposto a scavare per una risposta tecnica.

Una volta che hai familiarità con le basi, puoi iniziare a utilizzare VBA per cose come l'invio di email da Excel, l'esportazione di attività di Outlook Come esportare le tue attività di Outlook in Excel con VBA Come esportare le tue attività di Outlook in Excel con VBA Se sei o no un fan di Microsoft, una cosa buona che si può dire dei prodotti MS Office, almeno, è quanto sia facile integrarli tra loro ... Leggi altro, e mostra le informazioni del tuo PC Come vedere tutte le informazioni del tuo PC uno script VBA Excel semplice Come visualizzare tutte le informazioni del PC utilizzando uno script VBA Excel semplice Excel e 10 minuti di lavoro ti forniranno informazioni più dettagliate sul tuo computer di quante tu non abbia mai creduto possibile. Sembra troppo bello per essere vero? Quello è Windows, se sai come usarlo. Leggi di più .

.