You must first complete Hvordan lage en makro i Excel fra skratch before viewing this course

Velkommen til del 1 av det Ultimate VBA Kurset.

Hvis du er helt uerfaren i VBA, så sørg for at du har gjennomgått kurset Hvordan lage en makro i Excel fra skratch, slik at Excel er riktig satt opp for å lage og kjøre makroer.

Alle eksemplene i VBA er testet i Excel for Office 365 (ver. 16) og VBA 7.1, 64-bit.

I dette kurset lærer du hvordan du lager makroer i virkeligheten. Fokuset er å lære ved å praktisere. Dette kurset har eksempler på kode og aktiviteter underveis som skal hjelpe deg videre. I slutten av kurset finner du en oppgave med løsningsforslag som du kan jobbe med på egenhånd.

Vi vil først og framst konsentrere oss om det grunnleggende ved å lage Excel-makroer.

Læringsutbytte

Etter dette kurset skal du kunne:

  • Opprette en modul
  • Lage en Sub
  • Vite om forskjellen mellom en modul og en Sub
  • Kjøre koden i en Sub
  • Legge inn en verdi i en celle med VBA
  • Kopiere en verdi fra en celle til en annen
  • Kopiere verdier fra et område til et annet
  • Kopiere verdier mellom ulike ark
  • Teste koden ved å bruke Immediate Window
  • Lage raskere kode ved å bruke instruksjonen With
  • Opprette og bruke variabler
  • Kopiere fra en celle til en variabel og vice versa

 

Før vi starter skal vi kort se på noen enkle tips som kan være til hjelp underveis.

Lessons

Noen tips for å lære VBA

Complexity: Easy

Øvelse, Øvelse, Øvelse – Ikke prøv å lære ved å lese. Prøv eksemplene og aktivitetene.
Skriv kodeeksemplene i stedet for å kopiere og lime inn – dette vil hjelpe deg å forstå koden bedre…

Grunnleggende begreper i VBA og hva de betyr

Complexity: Easy

Excelmakro En makro er en gruppe programmeringsinstruksjoner vi bruker for å lage automatiserte oppgaver i Excel. VBA VBA er programmeringsspråket vi bruker for å lage makroer. Det er en forkortelse for Visual Basic for Applications. Kodelinje Dette er en VBA-instruksjon. … Read More

Opprette en modul

Complexity: Easy

I Excel bruker vi VBA for å lage makroer. VBA står for Visual Basic for Applications. Når vi bruker begrepet Excel-makroer, viser vi til VBA. Begrepet makro er egentlig et annet navn for en sub. Hver gang du ser begrepene Excel makro eller VBA,  refererer de til det samme.

Hvordan bruke Sub

Complexity: Easy

En kodelinje er instruksjonen(e) vi gir til VBA. Vi grupperer kodelinjene i en Sub. Vi plasserer disse delene i en modul. Vi oppretter en Sub slik at VBA skal behandle instruksjonene vi gir den. For å gjøre dette får vi … Read More

Skrive inn verdier i en celle

Complexity: Easy

I de fleste tilfelle trenger vi ikke å bruke Value fordi dette er en standard egenskap.

Vi bruker kodelinjer som dette for å tilordne verdier mellom celler og variabler. VBA evaluerer det som står på høyre side av likhetstegnet og legger resultatet i variabelen/celle/range på venstre side av likhetstegnet.

Celler i ulike Ark

Complexity: Easy

Vi kan enkelt kopierer mellom celler i ulike ark. Det er veldig likt det å kopiere celler i det samme arket. Forskjellen er navnet på arket vi bruker i koden.

Kodenavnet til Ark

Complexity: Easy

I aktivitetene har vi så langt brukt standardnavnene på arkene som Ark1 og Ark2. Det er bedre å gi arkene et mer meningsfyllt navn. Det kan vi gjøre ved å endre kodenavnet til arket. La oss se på kodenavnet og hva dette er.

With-instruksjonen

Complexity: Easy

Du har sikkert lagt merke til at arknavnet brukes gjentatte ganger – hver gang vi refererer til et Range i koden.
Se for deg at det var en enklere måte å skrive koden på. Der vi bare  nevnte arknavnet en gang, og dette ville gjelde for alle Range vi refererte til. Den gode nyheten er at vi kan gjøre akkurat det ved hjelp av With.

Kopiere verdier mellom multiple celler

Complexity: Easy

Hvis området det kopieres til er mindre vil bare cellene i spesifisert området fylles ut. Dette er forskjellig fra å kopiere / lime inn der vi bare trenger å spesifisere den første cellen, Excel fyller ut resten. Hvis området det kopieres til er større enn området det kopieres fra, vil de overskytende cellene fylles med #N/A (Not Available)

Transponere et område av celler

Complexity: Easy

Hvis du trenger å transponere data (konvertere rader til kolonner og omvendt) kan du bruke WorksheetFunction.Transpose. Legg inn verdiene 1 til 4 i cellene A1 til A4 i Ark1. Følgende kode vil transponere verdiene i radene A1:A4 i Ark1 til … Read More

Hvordan bruke variabler

Complexity: Easy

Variabler er en viktig del av alle programmeringsspråk. Så hva er de, og hvorfor trenger vi dem? Variabler er som celler i maskinens minne. Vi bruker dem til å lagre midlertidige verdier mens VBA-koden kjører.

Deklarasjon av variabler

Complexity: Easy

Før vi kan bruke en variabel må vi opprette den. Hvis vi ikke gjør dette kan vi støte på noen problemer. Som standardinntilling krever ikke VBA at du deklarerer variablene. Vi ønsker allikevel å endre dette slik at vi sparer oss for problemer på lang sikt.

Immediate-vindu

Complexity: Easy

VBA har et smart verktøy som lar deg sjekke utdataene dine. Dette verktøyet er vinduet Immediate. Når vi bruker Debug.Print kan vi få vist verdier, tekst og resultater av beregninger i vinduet. For å vise dette vinduet kan du velge View->Immediate Window fra menyen eller trykke på Ctrl + G. Verdiene vil bli skrevet til vinduet selv om det ikke er synlig.

Variabler og celler

Complexity: Easy

Vi kan skrive og lese verdier mellom celler-celler, celler-variabler og variabler-variabler ved å bruke tilordninger som vi allerede har sett på.

Type Mismatch feil

Complexity: Easy

Du lurer kanskje på hva som skjer hvis du bruker feil datatype? Hva skjer hvis du tilordner et tall 99.55 til type Long (Integer)? Det som skjer er at VBA prøver å konvertere/omdanne variabelen. Så hvis vi tilordner tallet 99.55 til typen Long vil VBA konvertere denne til integer.

Oppsummering av kurset

Complexity: Easy

Vi har vært innom mange ting i dettkurset. Så la oss sette det sammen i følgende oppgave Oppsummering. Jeg har laget en enkel arbeidsbok for denne oppgaven. Du kan laste ned den ved å bruke lenken nedenfor.