Variáveis ​​Globais VBA

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 boas mãos sobre ela, 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, bem como 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”.

Observe a imagem acima, declarei a variável “k” como um inteiro dentro do subprocedimento Global_Example1.

Se usarmos essa variável dentro deste procedimento Sub em qualquer ponto do tempo. 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” que é 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 ​​do 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. Eu declarei a variável “MyNumber” como Integer 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, neste 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. Neste 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 usar 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 a palavra “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á-las disponíveis entre os módulos no VBA.

Coisas para lembrar

  • Depois que a macro do Excel é executada com uma variável global, o valor da variável é o mesmo 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.