Algumas funções são definidas dentro de uma função e são usadas dentro das funções e algumas variáveis são definidas fora das funções e são usadas por todas as funções e tais variáveis são usadas como Variáveis Globais, por exemplo, as variáveis declaradas na subfunção são conhecidas como variáveis globais.
Variável global no Excel VBA
Declarar uma variável parece muito simples, mas para ter uma boa experiência com elas, precisamos entender o escopo dessas variáveis. Freqüentemente, declaramos as variáveis para cada macro dentro do subprocedimento todas as vezes. Mas, ao declarar uma variável, podemos usá-la em todas as macros no mesmo módulo e nos outros módulos do projeto VBA atual. Neste artigo, mostraremos como declarar variáveis globais no Excel VBA.
O que são variáveis globais no Excel VBA?
Variáveis globais do VBA são variáveis que são declaradas antes do início de qualquer macro no módulo. Quando as variáveis são declaradas usando "Pública" ou "Global", ela se torna "Variável Global".
Variáveis de subprocedimento não podem ser usadas em qualquer lugar.
Normalmente declaramos a variável dentro da sub-rotina em VBA usando a palavra "Dim".

Olhe para a imagem acima. Eu declarei a variável “k” como um inteiro dentro do subprocedimento Global_Example1.
Suponha que usemos essa variável dentro desse procedimento Sub a qualquer momento. No entanto, não posso usar essa variável em outro subprocedimento no mesmo módulo de classe no VBA ou em outro módulo.

Conforme mostrado na imagem acima, a variável “k,” declarada no subprocedimento Global_Example1, não pode ser usada no Subprocedimento Global_Example2.
Da mesma forma, a variável “j” declarada no subprocedimento Global_Example2 não pode ser usada no Subprocedimento Global_Example1, embora ambos os subprocedimentos estejam no mesmo módulo.
Como declarar uma variável global em VBA?
A seguir estão as maneiras de declarar uma variável global no Excel VBA.
# 1 - As variáveis do módulo podem ser usadas em qualquer subprocedimento no mesmo módulo
Como vimos, não podemos usar as variáveis de subprocedimento em nenhum dos módulos. Para torná-los disponíveis para todos os procedimentos Sub no mesmo módulo, precisamos declarar as variáveis na parte superior do módulo.

Na imagem acima, declarei a variável apenas no início do módulo. Expressei a variável “MyNumber” como Inteiro no Módulo 1 .
Uma vez que a variável é declarada no topo do módulo, podemos usar a mesma variável para todos os outros procedimentos Sub no mesmo módulo. Nesse caso, podemos usar a variável “MyNumber” para todos os procedimentos Sub no Módulo 1.

O problema é que não podemos usá-los em nenhum dos outros módulos. Nesse caso, a variável “MyNumber,” declarada no Módulo 1, não pode ser usada no Módulo 2.

# 2 - Variáveis globais podem ser usadas em qualquer subprocedimento e também em qualquer módulo
Agora vimos dois tipos de declaração de variável e o escopo deles durante o uso. O interessante é que podemos declarar a variável em qualquer um dos módulos e usá-la para todos os procedimentos Sub em todos os módulos do mesmo projeto VBA.
Para disponibilizar a variável para todos os procedimentos Sub em todos os módulos, precisamos declarar a variável na parte superior do módulo, não usando a palavra "Dim", mas usando o nome "Público" ou "Global".

Na imagem acima, você pode ver que usei a palavra “Público” para declarar a variável em vez de nossa palavra veterana “Dim”.
Na captura de tela acima, declarei a variável no Módulo 1. Tenho mais dois módulos, chamados Módulo 2 e Módulo 3.
Como declarei a variável usando a palavra “Público” na parte superior do módulo, agora posso acessar essas variáveis em qualquer subprocedimento em qualquer módulo da mesma pasta de trabalho.
Não apenas “Público”, mas também podemos usar a palavra “Global” para declarar a variável.

Global e Público são as duas palavras-chave para declarar a variável e torná-los disponíveis entre os módulos no VBA.
Coisas para lembrar
- Depois que a macro do Excel é executada com o valor de uma variável global, a variável é a mesma em todos os procedimentos Sub.
- É melhor manter um módulo específico para declarar variáveis globais no VBA e ter todas as variáveis em um módulo.
- A única maneira de redefinir o valor da variável é redefinir o código de macro pressionando o botão de parada.