Vi skal dekke globale variabler i denne opplæringen. En variabel i VBA kan ha et annet omfang. En variabels omfang er basert på posisjonen i koden og måten den deklareres på. Omfanget av en variabel indikerer synligheten og hvor den kan brukes.
Variabel på prosedyrenivå
Disse variablene kan bare brukes i delprosedyren eller funksjonen de er deklarert i. Du må deklarere en variabel på prosedyrenivå ved hjelp av Dim-søkeordet. I tillegg må du plassere den i delprosedyren eller funksjonen av interesse. Måten du vil erklære en variabel på prosedyrenivå er vist i koden nedenfor:
1234567 | DelerklæringAProcedureLevelVariable ()Dim noenNummer Som HeltallnoeNummer = 5MsgBox someNumberSlutt Sub |
Resultatet er:
Du kan bare bruke denne variabelen i delprosedyren kalt DeclaringAProcedureLevelVariable (). Siden det er i denne delprosedyren og vi brukte Dim -søkeordet. Hvis du kaller det fra en annen delprosedyre, får du følgende feil:
Modulnivåvariabel
Du kan bruke en variabel på modulnivå i noen av delprosedyrene eller funksjonene i samme modul. Du må plassere variabeldeklarasjonen øverst i modulen i delen Deklarasjoner, under Options Explicit -setningen, og bruke Dim -søkeordet:
Når vi kjører den andre delprosedyren i stedet for en feilmelding, får vi følgende resultat i celle A1 i arbeidsboken:
Global nivåvariabel
Du kan bruke en global variabel i modulene, funksjonene, delprosedyrene og klassene. Du deklarerer en global variabel, i erklæringsdelen, under opsjonen Eksplisitt og bruker søkeordet Global. Måten du erklærer en global nivåvariabel på er vist nedenfor. Begge delprosedyrene i modul1 kan bruke denne variabelen.
Siden denne variabelen er en variabel på globalt nivå, kan du også bruke den i Module2:
Når du kjører denne koden fra Module2, får du følgende resultat: