VBA globale variabelen

Sommige functies zijn gedefinieerd binnen een functie en worden gebruikt binnen de functies en sommige variabelen worden gedefinieerd buiten de functies en worden gebruikt door alle functies en dergelijke variabelen worden gebruikt als globale variabelen, de variabelen die onder de subfunctie zijn gedeclareerd, zijn bijvoorbeeld bekend als Global Variables.

Globale variabele in Excel VBA

Het declareren van een variabele lijkt vrij eenvoudig, maar om ze goed in handen te hebben, moeten we de reikwijdte van die variabelen begrijpen. Vaak declareren we elke keer de variabelen voor elke macro binnen de subprocedure. Maar door één variabele te declareren, kunnen we deze zowel in alle macro's in dezelfde module als in de andere modules van het huidige VBA-project gebruiken. In dit artikel laten we u zien hoe u globale variabelen in Excel VBA declareert.

Wat zijn globale variabelen in Excel VBA?

VBA-globale variabelen zijn variabelen die worden gedeclareerd vóór het begin van een macro in de module. Wanneer de variabelen worden gedeclareerd met behulp van "Openbaar" of "Globaal", wordt het "Globale variabele".

Subprocedurevariabelen kunnen nergens worden gebruikt

Meestal declareren we de variabele binnen de subroutine in vba door het woord "Dim" te gebruiken.

Kijk naar de bovenstaande afbeelding. Ik heb de variabele "k" gedeclareerd als een geheel getal in de subprocedure Global_Example1.

Als we deze variabele op enig moment binnen deze Sub-procedure gebruiken. Ik kan deze variabele echter niet gebruiken in een andere subprocedure, noch in dezelfde klassemodule in VBA, noch in een andere module.

Zoals te zien is in de bovenstaande afbeelding kan de variabele “k” die wordt gedeclareerd in de subprocedure Global_Example1 niet worden gebruikt in de Subprocedure Global_Example2.

Evenzo kan variabele “j” die is gedeclareerd in de subprocedure Global_Example2 niet worden gebruikt in de Sub-procedure Global_Example1, hoewel beide subprocedures zich in dezelfde module bevinden.

Hoe globale variabele in VBA declareren?

Hieronder volgen de manieren om een ​​globale variabele in Excel VBA te declareren.

# 1 - Modulevariabelen kunnen in elke subprocedure in dezelfde module worden gebruikt

Zoals we hebben gezien, kunnen we de subprocedurevariabelen in geen van de modules gebruiken. Om ze beschikbaar te maken voor alle Sub-procedures in dezelfde module, moeten we de variabelen bovenaan de module declareren.

In de bovenstaande afbeelding heb ik de variabele alleen aan het begin van de module gedeclareerd. Ik heb de variabele "MyNumber" gedeclareerd als Integer in Module 1 .

Zodra de variabele bovenaan de module is gedeclareerd, kunnen we dezelfde variabele gebruiken voor alle andere subprocedures in dezelfde module, in dit geval kunnen we de variabele “MyNumber” gebruiken voor alle subprocedures in module 1.

Het probleem is dat we ze in geen van de andere modules kunnen gebruiken. In dit geval kan variabele “MyNumber” die is gedeclareerd in Module 1 niet worden gebruikt in Module 2.

 # 2 - Globale variabelen kunnen in elke subprocedure en ook in elke module worden gebruikt

Nu hebben we twee soorten variabeledeclaratie gezien en de reikwijdte ervan tijdens het gebruik. Het interessante is dat we de variabele in een van de modules kunnen declareren en gebruiken voor alle subprocedures in alle modules van hetzelfde VBA-project.

Om de variabele beschikbaar te maken voor alle Sub-procedures in alle modules, moeten we de variabele bovenaan de module declareren, niet door het woord "Dim" te gebruiken, maar door het woord "Public" of "Global" te gebruiken.

In de bovenstaande afbeelding kun je zien dat ik het woord "Public" heb gebruikt om de variabele te declareren in plaats van ons veteraanwoord "Dim".

In de bovenstaande schermafbeelding heb ik de variabele in Module 1 gedeclareerd . Ik heb nog twee modules genaamd Module 2 & Module 3.

Aangezien ik de variabele heb gedeclareerd door het woord "Openbaar" bovenaan de module te gebruiken, heb ik nu toegang tot deze variabelen in elke subprocedure in elke module van dezelfde werkmap.

Niet alleen "Public", maar we kunnen ook het woord "Global" gebruiken om de variabele te declareren.

Globaal en openbaar zijn de twee sleutelwoorden om de variabele te declareren en beschikbaar te maken voor alle modules in VBA.

Dingen om te onthouden

  • Zodra de Excel-macro wordt uitgevoerd met een globale variabele, is de waarde van de variabele hetzelfde voor alle subprocedures.
  • Het is beter om een ​​bepaalde module te onderhouden om globale variabelen in VBA te declareren en alle variabelen in één module te hebben.
  • De enige manier waarop we de waarde van de variabele kunnen resetten, is door de macrocode te resetten door op de stopknop te drukken.