En nybegynners veiledning om å skrive VBA-makroer i Excel (og hvorfor du bør lære)

En nybegynners veiledning om å skrive VBA-makroer i Excel (og hvorfor du bør lære) / Produktivitet

Excel-makroer kan spare deg for mye tid ved å automatisere Excel-prosesser som du bruker ofte. Slik oppretter du en makro i Excel 2016. Slik registrerer du en makro i Excel 2016 Visste du at du kunne automatisere repeterende oppgaver i Microsoft Excel ved hjelp av makroer? Vi viser deg hvordan du registrerer en makro i Excel 2016 for å spare mye tid. Les mer . Men makroer er faktisk ganske begrenset. Det er lett å gjøre feil med opptaksverktøyet, og innspillingsprosessen er vanskelig.

Å bruke VBA til å lage makroer gir deg mye mer kraft. Du kan fortelle Excel nøyaktig hva du skal gjøre og hvordan du gjør det. Du får også tilgang til mange flere funksjoner og funksjoner. Hvis du bruker Excel regelmessig, er det verdt å lære å lage VBA-makroer.

Vi starter med det grunnleggende.

Hva er VBA?

VBA er Visual Basic for Applications, et programmeringsspråk som du kan bruke i mange Microsoft-apper. Visual Basic er et programmeringsspråk, og VBA er den applikasjonsspesifikke versjonen av den. (Microsoft avsluttet Visual Basic tilbake i 2008, men VBA fortsetter å være sterk).

Heldigvis for ikke-programmører, er VBA veldig enkelt, og grensesnittet du bruker for å redigere det, gir mye hjelp. Mange av kommandoene du bruker popup-forslag og automatiske fullføringer, hjelper deg med å få skriptet ditt til å fungere raskt.

Likevel tar VBA en stund å bli vant til.

Fordelene ved VBA makroer i Excel

Hvis VBA er vanskeligere enn å registrere en makro, hvorfor vil du bruke den? Det korte svaret er at du får mye mer strøm ut av VBA-makroer.

I stedet for å klikke rundt regnearket ditt og registrere disse klikkene, kan du få tilgang til Excels omfattende spekter av funksjoner og funksjoner. Du trenger bare å vite hvordan du bruker dem.

Og når du er mer komfortabel med VBA, kan du gjøre alt du kan gjøre i en vanlig makro på mye mindre tid. Resultatene vil også være mer forutsigbare, som du forteller Excel nøyaktig hva å gjøre. Det er ingen tvetydighet i det hele tatt.

Når du har opprettet din VBA-makro, er det enkelt å lagre og dele det slik at alle andre kan dra nytte av det. Dette er spesielt nyttig når du jobber med mange mennesker som trenger å gjøre de samme tingene i Excel.

La oss se på en enkel VBA-makro for å se hvordan den fungerer.

Et eksempel på en VBA-makro i Excel

La oss se på en enkel makro. Vårt regneark inneholder navn på ansatte, butikknummeret der de ansatte jobber, og deres kvartalsvise salg.

Denne makroen vil legge til kvartalsvis salg fra hver butikk og skrive disse totals til celler i regnearket (hvis du ikke er sikker på hvordan du får tilgang til VBA-dialogboksen, sjekk ut vårt VBA-gjennomgang her):

Sub StoreSales () Dim Sum1 Som Valuta Dim Sum2 Som Valuta Dim Sum3 Som Valuta Dim Sum4 Som Valuta For Hver Celle I Område ("C2: C51") Cell.Activate Hvis IsEmpty (Cell) Så Avslutt For Hvis ActiveCell.Offset (0, -1) = 1 Så Sum1 = Sum1 + Cell.Value ElseIf ActiveCell.Offset (0, -1) = 2 Så Sum2 = Sum2 + Cell.Value ElseIf ActiveCell.Offset (0, -1) = 3 Så Sum3 = Sum3 + Cell.Value ElseIf ActiveCell.Offset (0, -1) = 4 Så Sum4 = Sum4 + Cell.Value End hvis neste cellevalg ("F2"). Verdi = Sum1 Range ("F3"). Verdi = Sum2 Range (" F4 "). Verdi = Sum3 Range (" F5 "). Verdi = Sum4 End Sub

Dette kan se lenge og komplisert, men vi vil bryte det ned slik at du kan se de enkelte elementene og lære litt om det grunnleggende om VBA.

Deklarere Sub

I begynnelsen av modulen har vi “Sub StoreSales ()”. Dette definerer en ny under kalt StoreSales.

Du kan også definere funksjoner - forskjellen er at funksjonene kan returnere verdier, og subs kan ikke (hvis du er kjent med andre programmeringsspråk, er subs tilsvarende metodene). I dette tilfellet trenger vi ikke å returnere en verdi, så vi bruker en sub.

På slutten av modulen har vi “Slutt Sub,” som forteller Excel at vi er ferdige med denne VBA-makroen.

Deklarere Variabler

De første kodelinjene i vårt skript begynner med “dim.” Dim er VBAs kommando for å erklære en variabel.

Så “Dim Sum1” lager en ny variabel som heter “sum1.” Vi må imidlertid fortelle Excel hva slags variabel dette er. Vi må velge en datatype. Det finnes mange forskjellige datatyper i VBA-du kan finne hele listen i Microsofts hjelpedokumenter.

Fordi vår VBA-makro skal håndtere valutaer, bruker vi Valutatatotypen.

Uttalelsen “Dim Sum1 Som Valuta” forteller Excel for å opprette en ny Valuta variabel kalt Sum1. Hver variabel du erklærer trenger å ha en “Som” uttalelse for å fortelle Excel sin type.

Starte en For Loop

Looper er noen av de mest kraftige tingene du kan lage i hvilket som helst programmeringsspråk. Hvis du ikke er kjent med sløyfer, sjekk ut denne forklaringen av Gjør-mens sløyfer Hvordan gjør-mens sløyfer jobber med dataprogrammering Hvordan gjør-mens sløyfer jobber med dataprogrammering Sløyfer er en av de første kontrolltypene du vil lære i programmering . Du vet sannsynligvis om mens og for looper, men hva oppnår en runde? Les mer . I dette eksemplet bruker vi en For-løkke, som også er dekket i artikkelen.

Slik ser sløyfen ut:

For hver celle i rekkevidde ("C2: C51") [en masse ting] Next Cell

Dette forteller Excel å iterere gjennom cellene i det området vi angav. Vi har brukt et områdeobjekt. Forstå Excel-celler versus utvalgsfunksjoner i VBA. Forstå Excel-celler versus utvalgsfunksjoner i VBA. Bruk av rekkevidde og cellefunksjoner i Excel kan bli veldig forvirrende. Slik kan du gjøre bruk av dem på måter du sannsynligvis aldri har forestilt deg, ved hjelp av VBA Read More, som er en bestemt type objekt i VBA. Når vi bruker den på denne måten-Range (“C2: C51”) - Det forteller Excel at vi er interessert i de 50 cellene.

“For hver” forteller Excel at vi skal gjøre noe med hver celle i serien. “Neste Cell” kommer etter alt vi vil gjøre, og forteller Excel å starte sløyfen fra begynnelsen (starter med neste celle).

Vi har også denne uttalelsen: “Hvis IsEmpty (Cell) deretter avsluttes.”

Kan du gjette hva det gjør?

Merk: Strengt tatt kan det være et bedre valg ved hjelp av en loop-loop. 4 Feil du kan unngå når du programmerer Excel Makroer med VBA 4 feil du kan unngå når du programmerer Excel Makroer med VBA Enkel kode og makro er nøklene til Microsoft Excel supermakt. Selv ikke-programmører kan enkelt legge til imponerende funksjonalitet i regnearkene med Virtual Basics for Applications (VBA). Bare unngå disse programmeringsbegynnerfeilene! Les mer . Men for lærings skyld besluttet jeg å bruke en For-loop med en Exit.

If-Then-Else-uttalelser

Kjernen til denne spesielle makroen er i If-Then-Else-setningene. Her er vår sekvens av betingede utsagn:

Hvis ActiveCell.Offset (0, -1) = 1 Så Sum1 = Sum1 + Cell.Value ElseIf ActiveCell.Offset (0, -1) = 2 Så Sum2 = Sum2 + Cell.Value ElseIf ActiveCell.Offset (0, -1) = 3 Så Sum3 = Sum3 + Cell.Value ElseIf ActiveCell.Offset (0, -1) = 4 Så Sum4 = Sum4 + Cell.Value End If

For det meste kan du sikkert gjette hva disse uttalelsene gjør. Du er kanskje ikke kjent med ActiveCell.Offset, skjønt. “ActiveCell.Offset (0, -1)” forteller at Excel skal se på cellen som er en kolonne til venstre for den aktive cellen.

I vårt tilfelle forteller Excel at kolonnen i butikknummeret er i orden. Hvis Excel finner en 1 i denne kolonnen, tar den innholdet i den aktive cellen og legger den til Sum1. Hvis den finner en 2, legger den innholdet i den aktive cellen til Sum2. Og så videre.

Excel går gjennom alle disse uttalelsene i rekkefølge. Hvis det betingede utsagnet Slik bruker du IF-erklæringer i Microsoft Excel Slik bruker du IF-erklæringer i Microsoft Excel Uansett om du er en erfaren ekspert eller et regnearkbegynner, vil du sjekke ut denne veiledningen til IF-erklæringer i Excel. Les mer er fornøyd, det fullfører såklæringen. Hvis ikke, går det inn i neste ElseIf. Hvis det kommer helt til slutten, og ingen av betingelsene er oppfylt, vil det ikke gå noe.

Kombinasjonen av sløyfen og betingelsene er det som driver denne makroen. Sløyfen forteller at Excel går gjennom hver celle i valget, og betingelsene forteller det hva de skal gjøre med den cellen.

Skrive celleverdier

Til slutt kommer vi til å skrive resultatene av våre beregninger til celler. Her er linjene vi bruker til å gjøre det:

Verdi = Sum1 Range ("F3"). Verdi = Sum2 Range ("F4"). Verdi = Sum3 Range ("F5"). Verdi = Sum4

Med “.Verdi” og et like tegn, setter vi hver av disse cellene til verdien av en av våre variabler.

Og det er det! Vi forteller Excel at vi er ferdige med å skrive denne Sub med “Slutt Sub,” og VBA-makroen er fullført.

Når vi kjører makroen med makroer knappen i Utvikler fan, vi får våre summer:

Å sette sammen byggeblokkene til VBA i Excel

Når du først ser på VBA-makroen over, ser det ganske komplisert ut. Men etter å ha brutt det ned i dens bestanddeler, blir logikken klar. Som et hvilket som helst skriptspråk, det tar tid å bli vant til VBA-syntaksen.

Men med praksis vil du bygge opp VBA vokabular og kunne skrive makroer raskere, mer nøyaktig og med mye mer kraft enn du noensinne kunne registrere dem.

Når du sitter fast, kan du kjøre et Google-søk en rask måte å få svar på dine VBA-spørsmål. Og Microsofts Excel VBA-referanse kan være nyttig hvis du er villig til å grave gjennom det for et teknisk svar.

Når du er komfortabel med det grunnleggende, kan du begynne å bruke VBA for ting som å sende e-post fra Excel, eksportere Outlook-oppgaver Slik eksporterer du Outlook-oppgaver til Excel med VBA Slik eksporterer du Outlook-oppgaver til Excel med VBA Uansett om du er en fan av Microsoft, en god ting som kan sies om MS Office-produkter, er i hvert fall hvor lett det er å integrere hverandre med hverandre ... Les mer og vis din PC-informasjon Slik ser du all informasjon om PC-en din ved å bruke et enkelt Excel VBA-script Slik ser du all din PC-informasjon ved hjelp av en enkel Excel VBA Script Excel og 10 minutter med arbeid vil gi deg mer detaljert informasjon om datamaskinen enn du noensinne trodde mulig. Høres for godt ut til å være sant? Det er Windows, hvis du vet hvordan du bruker det. Les mer .

.