Notice: This page requires JavaScript to function properly.
Please enable JavaScript in your browser settings or update your browser.
Lære Variabler og datatyper | VBA-grunnleggende
Excel VBA for Forretningsautomatisering

Variabler og datatyper

Sveip for å vise menyen

Hver prosedyre du skriver trenger et sted å lagre verdier mens den kjører — for eksempel et kundenavn, en løpende sum, eller et ja/nei-flagg. Det er det en variabel er: en merket boks i minnet som du kan legge inn en verdi i og hente ut senere. Du oppretter en med Dim (kort for "dimension"), og du forteller VBA på forhånd hva slags type den skal inneholde:

Dim productName As String
Dim currentStock As Integer
Dim unitPrice As Double

Hver linje reserverer en merket plass: productName kan kun inneholde tekst, currentStock kun hele tall, unitPrice kun tall med desimaler. Å deklarere typen på forhånd er ikke byråkrati for byråkratiets skyld — det gjør at VBA kan fange opp feil før de blir til bugs. Prøver du å kjøre productName = 47 stopper VBA deg umiddelbart med en typefeil, i stedet for å lagre noe feil og skape forvirring senere.

Vanlige datatyper

Tommelregel: bruk Long i stedet for Integer for tellere og radnumre — det er ikke tregere i moderne Excel, og du unngår overløp på store datasett. Du vil se Dim i As Long overalt i dette kurset.

Option Explicit

Legg denne ene linjen helt øverst i hver modul, før noen Sub. Den endrer én ting: VBA vil nå nekte å kjøre en linje som bruker en variabel du ikke har deklarert med Dim først:

Option Explicit
 
Sub Example()
    Dim total As Double
    total = 100        ' works — declared above
    toatl = 200        ' typo — Option Explicit catches this at compile time
End Sub

Uten Option Explicit vil denne skrivefeilen stille opprette en helt ny variabel kalt total, og du kan bruke tjue minutter på å lure på hvorfor total aldri endrer seg. Denne ene vanen forhindrer flere feil enn noe annet i dette kapittelet.

Konstanter

Konstanter er navngitte verdier som aldri endres mens koden kjører — perfekt for ting som skattesatser eller terskelverdier:

Const REORDER_THRESHOLD As Integer = 20

Å bruke REORDER_THRESHOLD i stedet for å skrive 20 overalt betyr at hvis forretningsregelen endres, redigerer du én linje i stedet for å lete gjennom hele koden.

Oppgave

  1. I Section_2_VBA_Fundamentals.xlsm, skriv en Sub som deklarerer en String-variabel for produktnavn, en Double for pris, og en Integer for lagerbeholdning.
  2. Tildel dem verdiene for USB-C Hub ved å skrive inn de faktiske verdiene.
  3. Bruk MsgBox til å vise alle tre i én melding, sammenkoblet.
  4. Legg til Const LOW_STOCK As Integer = 20 over din Sub og bruk den i en MsgBox for å sammenligne med lagerbeholdningsvariabelen.
Tips
expand arrow
  1. Du trenger tre Dim-linjer med ulike typer — se tilbake på figur 2.1 hvis du har glemt syntaksen: Dim name As Type.
  2. USB-C Hub sin rad har pris 39.50, lager 44. Bare tildel disse direkte: price = 39.50.
  3. Sammenkobling bruker &, ikke +. Bygg opp strengen i deler: "Name: " & productName & ", Price: " & price.
  4. Konstanter deklareres utenfor enhver Sub, øverst i modulen, rett etter Option Explicit. Sammenlign stockCount med LOW_STOCK med vanlig > eller < inne i en MsgBox-streng — du trenger ikke en If ennå, bare vis begge verdiene slik at du kan sammenligne dem visuelt.
Alt var klart?

Hvordan kan vi forbedre det?

Takk for tilbakemeldingene dine!

Seksjon 2. Kapittel 1

Spør AI

expand

Spør AI

ChatGPT

Spør om hva du vil, eller prøv ett av de foreslåtte spørsmålene for å starte chatten vår

Variabler og datatyper

Hver prosedyre du skriver trenger et sted å lagre verdier mens den kjører — for eksempel et kundenavn, en løpende sum, eller et ja/nei-flagg. Det er det en variabel er: en merket boks i minnet som du kan legge inn en verdi i og hente ut senere. Du oppretter en med Dim (kort for "dimension"), og du forteller VBA på forhånd hva slags type den skal inneholde:

Dim productName As String
Dim currentStock As Integer
Dim unitPrice As Double

Hver linje reserverer en merket plass: productName kan kun inneholde tekst, currentStock kun hele tall, unitPrice kun tall med desimaler. Å deklarere typen på forhånd er ikke byråkrati for byråkratiets skyld — det gjør at VBA kan fange opp feil før de blir til bugs. Prøver du å kjøre productName = 47 stopper VBA deg umiddelbart med en typefeil, i stedet for å lagre noe feil og skape forvirring senere.

Vanlige datatyper

Tommelregel: bruk Long i stedet for Integer for tellere og radnumre — det er ikke tregere i moderne Excel, og du unngår overløp på store datasett. Du vil se Dim i As Long overalt i dette kurset.

Option Explicit

Legg denne ene linjen helt øverst i hver modul, før noen Sub. Den endrer én ting: VBA vil nå nekte å kjøre en linje som bruker en variabel du ikke har deklarert med Dim først:

Option Explicit
 
Sub Example()
    Dim total As Double
    total = 100        ' works — declared above
    toatl = 200        ' typo — Option Explicit catches this at compile time
End Sub

Uten Option Explicit vil denne skrivefeilen stille opprette en helt ny variabel kalt total, og du kan bruke tjue minutter på å lure på hvorfor total aldri endrer seg. Denne ene vanen forhindrer flere feil enn noe annet i dette kapittelet.

Konstanter

Konstanter er navngitte verdier som aldri endres mens koden kjører — perfekt for ting som skattesatser eller terskelverdier:

Const REORDER_THRESHOLD As Integer = 20

Å bruke REORDER_THRESHOLD i stedet for å skrive 20 overalt betyr at hvis forretningsregelen endres, redigerer du én linje i stedet for å lete gjennom hele koden.

Oppgave

  1. I Section_2_VBA_Fundamentals.xlsm, skriv en Sub som deklarerer en String-variabel for produktnavn, en Double for pris, og en Integer for lagerbeholdning.
  2. Tildel dem verdiene for USB-C Hub ved å skrive inn de faktiske verdiene.
  3. Bruk MsgBox til å vise alle tre i én melding, sammenkoblet.
  4. Legg til Const LOW_STOCK As Integer = 20 over din Sub og bruk den i en MsgBox for å sammenligne med lagerbeholdningsvariabelen.
Tips
expand arrow
  1. Du trenger tre Dim-linjer med ulike typer — se tilbake på figur 2.1 hvis du har glemt syntaksen: Dim name As Type.
  2. USB-C Hub sin rad har pris 39.50, lager 44. Bare tildel disse direkte: price = 39.50.
  3. Sammenkobling bruker &, ikke +. Bygg opp strengen i deler: "Name: " & productName & ", Price: " & price.
  4. Konstanter deklareres utenfor enhver Sub, øverst i modulen, rett etter Option Explicit. Sammenlign stockCount med LOW_STOCK med vanlig > eller < inne i en MsgBox-streng — du trenger ikke en If ennå, bare vis begge verdiene slik at du kan sammenligne dem visuelt.
Alt var klart?

Hvordan kan vi forbedre det?

Takk for tilbakemeldingene dine!

Seksjon 2. Kapittel 1
some-alt