[easy_youtube_gallery id=uMK0prafzw0,8Uee_mcxvrw,HcXNPI-IPPM,JvMXVHVr72A,AIXUgtNC4Kc,K8nrF5aXPlQ,cegdR0GiJl4,L-wpS49KN00,KbW9JqM7vho ar=16_9 cols=3 thumbnail=hqdefault controls=0 playsinline=1 privacy=1 title=top wall=1 class=mySuperClass]
Först publicerad: 2010-02-10

Deklarera variabler i Excel VBA

Exempel på en variabeldeklarering i Excel VBA.
Exempel på en variabeldeklarering i Excel VBA.

Variabler (och konstanter) bör deklareras innan de används i dina makrons VBA-kod.

Genom variabel-deklareringen förser vi VBA med information om vilken typ av data som variabeln kommer att innehålla, samt att vi etablerar stavningen av den (inklusive stora och små bokstäver i variabelnamnet).

Varför bör jag deklarera variabler i Excel VBA?

Det är inte nödvändigt att deklarera en variabel innan den används, men enligt “god programmerings-sed” så bör man deklarera. I stora drag så medger variabeldeklareringen följande fördelar:

  • Tydligare och mer lättläst VBA-kod
  • Risken för felberäkningar under makrokörningen minskar
  • Risken för stavfel av variabelnamn elimineras
  • Korrekta deklareringar spar arbetsminne när programmet körs

Hur deklareras en variabel i VBA?

Metoden för att deklarera variabler är okomplicerad. Se följande kod-exempel:

Dim MittNamn
MittNamn = "Inge Problem"

Dim står för “Dimension”, en tidig BASIC-term (en variabel kan nämligen tilldelas flera dimensioner, men det går vi inte in på här). I den andra raden så tilldelar vi helt enkelt variabeln ett värde (i det här fallet en textsträng).

Variabeln bör tilldelas en viss datatyp

Om vi dessutom anger en datatyp för vår nya variabel så blir deklarationen ännu mer komplett. Genom att tilldela en lämplig datatyp så blir koden tydligare och mindre känslig för felberäkningar. Om ingen datatyp anges så får variabeln automatiskt datatypen Variant, vilket kan anses vara en typ av “slasktratt”, dvs en variabel som i framtiden kan komma att innehålla precis vilken typ av data som helst.

I nedanstående kod-exempel så tilldelar vi variabeln “MittNamn” datatypen “String” vilket helt enkelt betyder att variabeln kommer att innehålla en textsträng.

Dim MittNamn As String
MittNamn = "Inge Problem"
Datatyp Innehåll Prefix
Boolean Diskret variabel (True/False) boo
Date Datumformat dat
String Textformat str
Integer Heltal (+/- 32.000) int
Long Heltal (+/- 2.000.000) lon
Single Stora decimaltal sin
Double Enorma decimaltal dou
Variant Kan innehålla vad som helst (obs!) var

Variabeldeklarering i VBA – best practice

Nedan följer några enkla och effektiva förhållningsregler vad gäller variabeldeklarering i VBA.

  • Tilldela alltid datatyp.
  • Ge variablerna logiska och förklarande namn.
  • Inled variabelnamnet med ett prefix som skvallrar om datatyp (sk. “Hungarian notation”):
Dim strMittNamn as String
Dim sinDepreciation as Single
  • Följande exempel är felaktigt. Endast den andra variabeln (strAdress) tilldelas datatyp:
Dim strNamn,strAdress as String
  • Vill du deklarera flera variabler på samma rad så måste du ange datatyp för samtliga variabler:
Dim strNamn as String,strAdress as String