Excel VBA Public Variable

Variabel is een belangrijk onderdeel van het leven van een programmeur. Elke keer dat een programmeur codeert, maakt hij een aantal variabelen. Een variabele kan worden beschouwd als een voucher die we vaak gebruiken op online winkelsites zoals Flipkart, Amazon, enz. Met die voucher kunt u een bepaalde korting krijgen op bepaalde vooraf gedefinieerde producten. Hetzelfde is het geval met een variabele. Een variabele kan grammaticaal worden gedefinieerd als een tijdelijke aanduiding die wat geheugen in het systeem met een bepaalde naam reserveert. Die geheugenruimte kan dan altijd worden gebruikt met dezelfde naam.

Een VBA-variabele wordt in twee omstandigheden als een openbare variabele beschouwd. Wanneer -

  • Het kan samen met alle codes binnen een module worden gebruikt.
  • Het kan allemaal worden gebruikt binnen alle codes voor verschillende modules.

In leek: een variabele wordt als een openbare variabele beschouwd wanneer deze in elke code en in elke module kan worden gebruikt. In dit artikel gaan we zien hoe een variabele kan worden gedefinieerd. Hoe het publiekelijk kan worden gedefinieerd binnen VBA.

Voordat we het concept van VBA Public Variable beginnen, moeten we begrijpen dat de variabelen die in de ene subprocedure worden gebruikt, niet in de andere subprocedure kunnen worden gebruikt (dat is waar we de behoefte begonnen te voelen om een ​​openbare variabele te hebben die voor elke module, elke subprocedure kan worden gebruikt).

Stel dat we een subprocedure in een VBA maken en daar een nieuwe variabele definiëren met de instructie Dim.

In deze code is var1 de variabele die is gedefinieerd onder de subprocedure Ex_Var .

Nu zal ik een nieuwe subprocedure definiëren en ironie is, ik kan de eerder gedefinieerde var1 in deze subprocedure niet gebruiken. Zie onderstaande screenshot, waar ik waarde 10 probeer toe te kennen aan var1 onder een andere subprocedure. Zie ook het foutbericht nadat we de code hebben uitgevoerd.

Door variabelen te declareren onder subprocedures, beperken we ze alleen voor die subprocedure. Het is een groot nadeel van het declareren van een variabele binnen een subprocedure.

Dit leidt tot de nieuwe theorie, die de variabele declaratie buiten de subprocedures omvat. Dit helpt de programmeur om de gedefinieerde variabelen op grote schaal te gebruiken met verschillende subprocedures.

Hoe openbare variabelen te declareren in VBA?

Laten we een paar voorbeelden bekijken om openbare variabelen in VBA te declareren.

U kunt deze VBA Public Variables Excel Template hier downloaden - VBA Public Variables Excel Template

Voorbeeld # 1 - Een variabele publiekelijk definiëren binnen een module

Stel dat we een variabele willen definiëren die toegankelijk is voor alle codes binnen een enkele module. We kunnen dat doen. Volg onderstaande stappen:

Stap 1: Open uw Visual Basic Editor (VBE) door op Alt + F11 te drukken of door op de Visual Basic-knop te klikken onder het tabblad Ontwikkelaars in Excel. Selecteer Tabblad invoegen, ga naar Modules en klik erop. Het zal een nieuwe module binnen de VBE toevoegen om aan te werken.

Stap 2: Voeg binnen de nieuw gecreëerde module de opdracht Option Explicit toe aan het begin van uw VBA-code (voordat u een variabele maakt). Option Explicit helpt u als er een typefout is tijdens het gebruik van de gedefinieerde variabele. Als de gebruikte variabele niet in het systeem is gedefinieerd, geeft deze optie een foutmelding dat de variabele niet is gedefinieerd.

Code:

 Optie Expliciet 

Stap 3: Gebruik een Dim-instructie om een ​​nieuwe variabele met de naam my_name te maken met het gegevenstype als String.

Code:

 Optie Expliciet Dim mijn_naam als tekenreeks 

Als u oplet, hebben we deze variabele expliciet gedefinieerd. Dit betekent dat het geen onderdeel is van een specifieke subprocedure. Die automatisch deze variabele beschikbaar maakt voor alle codes binnen de gecreëerde module (Module1). Dit wordt genoemd als het publiekelijk definiëren van een variabele binnen een module. Deze variabele kan overal in de meerdere subprocedures binnen dezelfde module worden gebruikt.

Stel dat de onderstaande code wordt gebruikt, ik heb waarde aan variabele mijnnaam toegewezen als "Lalit Salunkhe".

Code:

 Optie Expliciet Dim mijn_naam als tekenreeks Sub Ex_1 () my_name = "Lalit Salunkhe" MsgBox "Mijn naam is:" & mijn_naam End Sub 

Als ik deze code gebruik, zie ik een berichtvenster zoals weergegeven in de onderstaande schermafbeelding:

We kunnen deze variabele ook gebruiken in verschillende subprocessen binnen dezelfde module. Zie onderstaande screenshot:

Code:

 Optie Expliciet Dim mijn_naam als String Sub Ex_1 () my_name = "Lalit Salunkhe" MsgBox "Mijn naam is:" & mijn_naam Einde Sub Sub Ex_2 () Dim mijn_age als Integer my_name = "Lalit Salunkhe" my_age = 28 MsgBox "Mijn naam is: "& my_name &"; Mijn leeftijd is: "& my_age End Sub 

Zie de Ex_2 sub-proc. Het heeft een nieuwe variabele gedefinieerd my_age. Ik heb my_name gebruikt om mijn naam en mijn_age toe te voegen om de huidige leeftijd van mij toe te voegen. Je kunt zien dat mijn_naam nog steeds toegankelijk is in de tweede subprocedure. Nadat ik deze code heb uitgevoerd, kunnen we de uitvoer krijgen als een hieronder weergegeven berichtenvak:

Dit is hoe we een variabele publiekelijk binnen een module kunnen definiëren.

Voorbeeld # 2 - Definieer een variabele publiekelijk voor alle modules

Om deze prestatie te bereiken, moet u de sleutelwoorden als Public of Global gebruiken in plaats van Dim, waardoor de variabele als public wordt ingesteld voor alle modules waar u ook werkt.

Stap 1: Maak een nieuwe module. Ga naar het tabblad Invoegen, klik op Module om een ​​nieuwe module toe te voegen onder VBE.

Stap 2: Optie expliciet toevoegen binnen de module.

Code:

 Optie Expliciet 

Stap 3: Definieer een nieuwe variabele met de naam var1 en var2 beide als een type geheel getal. Maar deze keer met de openbare verklaring in plaats van Dim (die we eerder gebruikten).

Code:

 Optie Expliciet Public var1 As Integer Public var2 As Integer 

Stap 4: Nu kunnen deze twee variabelen worden gebruikt voor meerdere modules als ze onder dezelfde VBE worden gemaakt. Zie het onderstaande voorbeeld:

Code:

 Optie Expliciet Public var1 As Integer Public var2 As Integer Sub Ex_3 () var1 = 10 var2 = 100 MsgBox "Waarde voor var1 is:" & var1 & Chr (13) & "Waarde voor var2 is:" & var2 End Sub 

We hebben de waarden aan beide variabelen toegewezen met behulp van een MsgBox-functie, waarbij we proberen waarden voor die twee variabelen weer te geven.

Stap 5: Voer de code uit door op F5 te drukken of door op Play te klikken, u kunt een uitvoer zien zoals hieronder getoond:

Stap 6: We zullen dezelfde variabelen gebruiken onder Module1 die we in het eerste voorbeeld hebben gebruikt en proberen erachter te komen of de variabelen daar toegankelijk zijn of niet.

Code:

 Optie Expliciet Dim mijn_naam als String Sub Ex_1 () my_name = "Lalit Salunkhe" MsgBox "Mijn naam is:" & mijn_naam Einde Sub Sub Ex_2 () Dim mijn_age als Integer my_name = "Lalit Salunkhe" my_age = 28 MsgBox "Mijn naam is: "& my_name &"; Mijn leeftijd is: "& my_age End Sub Sub Ex_public () var1 = 1000 var2 = 999 MsgBox" Waarde voor var1 is: "& var1 & Chr (13) &" Waarde voor var2 is: "& var2 Einde Sub 

Als u de bovenstaande schermafbeelding kunt zien, hebben we dezelfde set variabelen gebruikt die zijn gedefinieerd onder Module2 en hebben we waarden zoals respectievelijk 1000 en 999. We gebruiken de MsgBox-functie om de waarden van deze twee variabelen te presenteren. Voer de code uit en u ziet de uitvoer zoals hieronder:

Dit is hoe een variabele publiekelijk kan worden gebruikt binnen de module en tussen de modules.

Dingen om te onthouden

  • Het heeft altijd de voorkeur om de variabelen expliciet in VBA te definiëren. Zodat ze niet beperkt zijn tot de subprocedure waarin ze zijn gedefinieerd.
  • U kunt de openbare variabele op twee manieren toewijzen: een binnen een module met een conventionele Dim-instructie en een tweede voor alle modules die aanwezig zijn in VBE met een van de Public- of Global-instructies.

Aanbevolen artikelen

Dit is een handleiding voor VBA Public Variable. Hier bespreken we hoe u openbare variabele in Excel kunt declareren met behulp van VBA-code in Excel, samen met praktische voorbeelden en een downloadbare Excel-sjabloon. U kunt ook onze andere voorgestelde artikelen doornemen -

  1. VBA Global Variables
  2. Eén variabele gegevenstabel in Excel
  3. VBA FileSystemObject (FSO)
  4. Twee variabeletabel in Excel

Categorie: