Deklarera variabler 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 |