VBA offentliga variabler

Offentliga variabler i VBA

”Offentliga variabler” i VBA, som namnet antyder, är variabler som förklaras använda offentligt för alla makron vi skriver i samma modul liksom i olika moduler också. Så när variablerna deklareras i början av ett makro kallas de ”Public Variables” eller ”Global Variables”.

Hur deklarerar jag offentliga variabler i VBA?

Vanligtvis startar vi VBA-delproceduren och inuti delproceduren deklarerar vi våra variabler. Detta är den vanliga praxis som vi alla har gjort fram till denna artikel.

Du kan ladda ner denna Excel-mall för VBA-offentliga variabler här - VBA-mall för offentliga variabler i Excel

Varje gång vi skriver en ny delprocedur förklarar vi nya variabler med datatyper som tilldelats dem. Men idag säger vi adjö till repetitiva variabler över delprocedurer.

Låt oss komma ihåg den gamla stilen, nedan är koden jag har skrivit med en enda variabel.

I underförfarandet "Public_Variable" har jag förklarat denna variabel. Nu kan jag inte använda någon av de andra modulerna.

Nu i delproceduren "Public_Variable1" kan vi inte använda variabeln "Var1" som förklarades i den första underprocessen "Public_Variable". Detta är begränsningen för att deklarera variabler i delprocedurerna.

# 1 - Modulnivåvariabler

Som vi alla vet skriver vi makron i moduler kan vi infoga ett antal moduler. Vi kan förklara två typer av "offentliga variabler" i VBA, den ena är att använda variablerna för alla delprocedurer i samma modul och den andra är att använda variablerna för alla delprocedurer i alla moduler.

Först ser vi deklarera offentliga variabler i VBA på modulnivå.

För att använda variablerna för alla delprocedurer i samma modul måste vi deklarera variablerna högst upp i modulen innan vi startar några makron.

Nedan följer skärmdumpen för din förståelse

Som vi kan se i bilden ovan har jag deklarerat två variabler innan jag startar något makro i modulen. Nu kan dessa två variabler användas i valfritt antal makron i den här modulen.

Inuti underproceduren börjar du skriva variabelnamnet du kan se IntelliSense-listan visar variabelnamn.

Nu kan vi använda dessa variabler i alla makron vi skriver i ”Module1”.

Dessa variabler är begränsade till att endast användas i den här modulen. Nu ska jag till exempel infoga ytterligare en modul och skriva ett nytt makro.

I Module2 kan jag inte använda de variabler som vi har deklarerat i “Module1”.

Så, hur kan vi göra dessa variabler offentliga i VBA för att använda i alla moduler och i alla delprocedurer?

# 2 - Förklara variabler använder dem offentligt

Gå tillbaka till ”Module1” i den här modulen vi har deklarerat variabler innan vi börjar skriva vägen för makrot och även vilken värld vi har använt för att deklarera dessa variabler.

Vårt traditionella sätt att använda ”DIM” -ordet har förklarat dessa variabler.

När vi bara använder “DIM” -ordet begränsades det bara till att användas över alla makron men i samma modul.

Istället för ordet “DIM” måste vi använda ordet antingen “PUBLIC” eller “GLOBAL” för att göra dem tillgängliga för användning i alla moduler av makron.

Jag har använt ordet ”Global” för att offentliggöra variabeldeklarationen. Du kan också använda ordet ”Public” också.

Så genom att använda orden "Global" och "Public" kan vi deklarera variabler som kan användas för alla makron över modulerna.

Saker att komma ihåg

  • Det är en bra praxis att deklarera variabler offentligt men behöver riklig erfarenhet innan deklareras.
  • När makron börjar köras över makrovärdet för variabeln kommer att vara densamma.
  • Tilldela variabeln i det specifika makrot endast det specifika värdet för att undvika förvirring.