Variables globals de VBA | Com es pot declarar la variable global a VBA?
Algunes funcions es defineixen dins d’una funció i s’utilitzen dins de les funcions i algunes variables es defineixen fora de les funcions i són utilitzades per totes les funcions i aquestes variables s’utilitzen com a variables globals, per exemple, les variables declarades a la subfunció són conegudes com a variables globals.
Variable global a Excel VBA
Declarar una variable sembla bastant senzill, però per tenir-ne bones mans hem d’entendre l’abast d’aquestes variables. Sovint declarem les variables de cada macro dins del subprocés cada vegada. Però en declarar una variable, la podem utilitzar en totes les macros del mateix mòdul, així com en la resta de mòduls del projecte VBA actual. En aquest article, us mostrarem com declarar variables globals a Excel VBA.
Què són les variables globals a Excel VBA?
Les variables globals de VBA són variables declarades abans de l'inici de qualsevol macro del mòdul. Quan les variables es declaren mitjançant "Públic" o "Global", es converteix en "Variable global".
Les variables de subprocediment no es poden utilitzar en cap lloc
Normalment declarem la variable dins de la subrutina en vba mitjançant la paraula "Dim".
Mireu la imatge anterior que he declarat la variable "k" com a enter dins del subprocés Global_Example1.
Si utilitzem aquesta variable dins d’aquest procediment secundari en qualsevol moment del temps. Tanmateix, no puc utilitzar aquesta variable en un altre subprocediment ni en el mateix mòdul de classe de VBA ni en un altre mòdul.
Com es mostra a la imatge anterior, la variable "k" que es declara al subprocés Global_Example1 no es pot utilitzar al subprocés Global_Example2.
De la mateixa manera, la variable "j" declarada al subprocés Global_Example2 no es pot utilitzar en el subprocés Global_Example1 tot i que tots dos subprocediments es troben al mateix mòdul.
Com es pot declarar la variable global a VBA?
A continuació es detallen les maneres de declarar una variable global a Excel VBA.
# 1 - Les variables del mòdul es poden utilitzar en qualsevol procediment secundari del mateix mòdul
Com hem vist, no podem utilitzar les variables de subprocediment en cap dels mòduls. Per fer-los disponibles per a tot el procediment Sub del mateix mòdul, hem de declarar les variables a la part superior del mòdul.
A la imatge anterior, he declarat la variable només al començament del mòdul. He declarat la variable "El meu número" com a enter a Mòdul 1.
Un cop la variable declarada a la part superior del mòdul podem utilitzar la mateixa variable per a tots els altres subprocediments del mateix mòdul, en aquest cas, podem utilitzar la variable "El meu número" per a tots els subprocediments de Mòdul 1.
El problema és que no els podem utilitzar en cap dels altres mòduls. En aquest cas, variable "MyNumber" que es declara a Mòdul 1 no es pot utilitzar a Mòdul 2.
# 2 - Les variables globals es poden utilitzar en qualsevol subprocediment i també en qualsevol mòdul
Ara hem vist dos tipus de declaració de variables i l'abast de les mateixes mentre s'utilitzava. L’interessant és que podem declarar la variable en qualsevol dels mòduls i utilitzar-la per a tots els subprocediments en tots els mòduls del mateix projecte VBA.
Per tal que la variable estigui disponible per a tots els procediments secundaris de tots els mòduls, hem de declarar la variable a la part superior del mòdul no mitjançant la paraula "Dim", sinó mitjançant la paraula "Públic" o "Global".
A la imatge anterior, podeu veure que he utilitzat la paraula "Públic" per declarar la variable en lloc de la nostra paraula veterana "Dim".
A la captura de pantalla anterior, he declarat la variable a Mòdul 1. Tinc dos mòduls més anomenats Mòdul 2 i mòdul 3.
Com que he declarat la variable fent servir la paraula "Públic" a la part superior del mòdul, ara puc accedir a aquestes variables en qualsevol subprocés de qualsevol mòdul del mateix llibre.
No només "Públic", sinó que també podem utilitzar la paraula "Global" per declarar la variable.
Global & Public són les dues paraules clau per declarar la variable i fer-les disponibles a tots els mòduls de VBA.
Coses que cal recordar
- Quan la macro Excel s’executa amb una variable global, el valor de la variable és el mateix en tots els procediments secundaris.
- És millor mantenir un mòdul concret per declarar variables globals a VBA i tenir totes les variables en un mòdul.
- L'única manera de restablir el valor de la variable és restablint el codi macro prement el botó d'aturada.