Variáveis Públicas em VBA
“Variáveis públicas” no VBA, como o nome sugere, são variáveis declaradas para uso público para todas as macros que escrevemos no mesmo módulo, bem como em módulos diferentes. Portanto, quando as variáveis são declaradas no início de qualquer macro, são chamadas de "Variáveis públicas" ou "Variáveis globais".
Como declarar variáveis públicas no VBA?
Normalmente, iniciamos o subprocedimento VBA e, dentro do subprocedimento, declaramos nossas variáveis. Esta é a prática comum que todos nós fizemos até este artigo.
Cada vez que escrevemos um novo subprocedimento, declaramos novas variáveis com tipos de dados atribuídos a eles. Mas hoje, vamos dizer adeus às variáveis repetitivas em todos os subprocedimentos.
Vamos relembrar o estilo antigo. Abaixo está o código que escrevi com uma única variável.

No subprocedimento “Public_Variable”, declarei essa variável. Agora não posso usar nenhum dos outros módulos.

Agora, no subprocedimento “Variável_Publica1”, não podemos usar a variável “Var1,” que foi declarada no primeiro subprocedimento “Variável_Publica”. Esta é a limitação de declarar variáveis dentro dos subprocedimentos.
# 1 - Variáveis de nível de módulo
Como todos sabemos, escrevemos macros em módulos. Podemos inserir vários módulos. Podemos declarar dois tipos de “Variáveis Públicas” no VBA, um é usar as variáveis para todos os subprocedimentos no mesmo módulo e o segundo é usar as variáveis para todos os subprocedimentos em todos os módulos.
Primeiro, veremos a declaração de variáveis públicas no VBA no nível do módulo.
Para usar as variáveis para todos os subprocedimentos no mesmo módulo, precisamos declarar as variáveis no topo do módulo antes de iniciarmos qualquer macro.
Abaixo está a captura de tela de exemplo para sua compreensão.

Como podemos ver na imagem acima, declarei duas variáveis antes de iniciar qualquer macro no módulo. Agora, essas duas variáveis podem ser usadas em qualquer número de macros neste módulo.
Dentro do subprocedimento, começa a digitar o nome da variável que você pode ver que a lista do IntelliSense mostrará os nomes das variáveis.

Agora podemos usar essas variáveis em todas as macros que escrevemos no “Módulo1”.
Essas variáveis são limitadas para uso apenas neste módulo. Por exemplo, agora, vou inserir mais um módulo e escrever uma nova macro.

No Módulo2, não posso usar as variáveis que declaramos no “Módulo1”.
Então, como podemos tornar essas variáveis públicas no VBA para usar em todos os módulos e em todos os subprocedimentos?
# 2 - Declare que as variáveis as usam publicamente
Volte para “Módulo1” neste módulo. Declaramos variáveis antes de começar a escrever da maneira da macro e também o mundo que usamos para declarar essas variáveis.

Nossa maneira tradicional de usar a palavra “DIM” declaramos essas variáveis.
Quando usamos apenas a palavra “DIM”, ela se limita a ser usada em todas as macros, mas no mesmo módulo.
Em vez da palavra “DIM”, precisamos usar a palavra “PÚBLICO” ou “GLOBAL” para torná-los disponíveis para uso em todos os módulos de macros.

Usei a palavra “Global” para tornar pública a declaração da variável. Você também pode usar a palavra “Público”.

Portanto, usando as palavras “Global” e “Público”, podemos declarar variáveis que podem ser usadas para todas as macros nos módulos.
Coisas para lembrar
- É uma boa prática declarar variáveis publicamente, mas requer ampla experiência antes de declará-las.
- Depois que as macros começarem a ser executadas, o valor da macro da variável será o mesmo.
- Atribua o valor particular à variável dentro da macro específica apenas para evitar qualquer tipo de confusão.