Variable Scope 
 
 I VBA, er det tre forskjellige scopes av variabler: prosedyre nivå, modul nivå og offentlig nivå. Hver omfang avgjør stedet der variabelen er synlig. 
 
 
 Prosedyre nivå 
 
 Når du deklarerer en variabel inne i en subrutine eller en funksjon, det vil bare være synlig i de subrutine /funksjon . Når prosedyren slutt frigjør VBA minnet og den variable er ikke lenger synlig. 
 
 
 Eksempel 1: 
 Sub procedureLevel1 () Dim myVar Som IntegermyVar = 5Avslutt SubSub procedureLevel2 () Dim myVar Som DoublemyVar = 5.5End Sub 
 I  procedureLevel1   I procedureLevel2,  myVar     Hvis du ønsker å opprette variabelen og bruke det inne flere prosedyrer i samme modul, må du deklarere den på modulnivå, i begynnelsen av koden din, før første gangs bruk i en prosedyre     I begynnelsen av koden er det  myVar     Du kan ikke tilordne en verdi til en variabel på dette nivået. Du må gjøre det inne prosedyrer.     På dette nivået variabler vil være synlig for alle prosedyrer, selv de som er tilstede inne i andre moduler i samme arbeidsbok. For å opprette en slik variabel du trenger å erklære det på samme måte som du gjorde på modulnivå, men denne gangen legger allmenn ord i stedet for Dim. 
 subrutine ,  myVar 
 variabel vil kun være synlig inne at subrutinen og vil bli behandlet som Integer. 
 
 vil bli behandlet som Double, og vil bare være synlig inne at subrutinen. 
 
 Module nivå 
 
 
 Eksempel 2:. 
 Dim myVar Som IntegermyVar = 4Sub moduleLevel1 () myVar = 5Avslutt SubSub moduleLevel2 () myVar = 6End Sub 
 variabel , etter erklært som Integer. Denne variable er synlig inne i modulen. Det betyr at variabelen i  moduleLevel1 Hotell og  moduleLevel2 
 er den samme variabel. 
 
 FORSIKTIG 
 
 
 Offentlig nivå 
 
 Offentlig myVar As Integer 

