Variável pública do VBA do Excel

Variável é uma parte importante da vida de um programador. Toda vez que um programador codifica, ele cria um conjunto de variáveis. Uma variável pode ser considerada como um voucher que frequentemente usamos em sites de compras on-line, como Flipkart, Amazon, etc. Esse voucher permite que você tenha um determinado desconto em determinados produtos predefinidos. Mesmo é o caso com uma variável. Uma variável pode ser gramaticalmente definida como um espaço reservado que reserva alguma memória no sistema com determinado nome. Esse espaço de memória pode ser utilizado a qualquer momento com o mesmo nome.

Uma variável VBA é considerada uma variável pública em duas circunstâncias. Quando -

  • Pode ser usado junto com todos os códigos dentro de um módulo.
  • Pode ser usado em todos os códigos de diferentes módulos.

Em termos leigos, uma variável é considerada uma variável pública quando pode ser usada em qualquer código e em qualquer módulo. Neste artigo, estamos prestes a ver como uma variável pode ser definida. Como isso pode ser definido publicamente no VBA.

Antes de iniciar o conceito de variável pública do VBA, precisamos entender que as variáveis ​​usadas em um subprocedimento não podem ser usadas no outro subprocedimento (foi aí que começamos a sentir a necessidade de ter uma variável pública que pode ser usado em qualquer módulo, qualquer subprocedimento).

Suponha que criamos um subprocedimento em um VBA e definimos uma nova variável usando a instrução Dim.

Nesse código, var1 é a variável definida no subprocedimento Ex_Var .

Agora, definirei um novo subprocedimento e a ironia é que não posso usar var1 definido anteriormente neste subprocedimento. Veja a captura de tela abaixo, onde estou tentando atribuir o valor 10 à var1 em diferentes sub-procedimentos. Veja a mensagem de erro também após executarmos o código.

Ao declarar variáveis ​​sob subprocedimentos, as restringimos a serem usadas apenas por esse subprocedimento. É uma grande desvantagem de declarar uma variável dentro de um subprocedimento.

Isso leva à nova teoria, que inclui a declaração de variáveis ​​fora dos sub-procedimentos. Isso ajudará o programador a usar as variáveis ​​definidas amplamente com diferentes subprocedimentos.

Como declarar variáveis ​​públicas no VBA?

Vejamos alguns exemplos para declarar variáveis ​​públicas no VBA.

Você pode baixar este modelo de Excel de variáveis ​​públicas do VBA aqui - Modelo de Excel de variáveis ​​públicas do VBA

Exemplo # 1 - Definindo uma variável publicamente dentro de um módulo

Suponha que desejamos definir uma variável que possa ser acessada publicamente em todos os códigos em um único módulo. Nós podemos fazer isso. Siga os passos abaixo:

Etapa 1: Abra o Editor do Visual Basic (VBE) pressionando Alt + F11 ou clicando no botão Visual Basic na guia Developers no Excel. Selecione a guia Inserir, navegue até Módulos e clique nela. Ele adicionará um novo módulo no VBE para trabalhar.

Etapa 2: no módulo recém-criado, adicione o comando Option Explicit no início do seu código VBA (antes de criar qualquer variável). A opção Explicit ajuda você se houver algum erro de digitação ao usar a variável definida. Se a variável usada não estiver definida no sistema, esta opção emitirá uma mensagem de erro informando que a variável não está definida.

Código:

 Opção explícita 

Etapa 3: Use uma instrução Dim para criar uma nova variável chamada my_name com o tipo de dados como String.

Código:

 Opção Explícita Dim my_name As String 

Se você pudesse prestar atenção, definimos essa variável explicitamente. Ou seja, não faz parte de um subprocedimento específico. O que automaticamente torna essa variável disponível para todos os códigos no módulo criado (Módulo1). Isso é chamado de definição de uma variável publicamente dentro de um módulo. Essa variável pode ser usada em qualquer lugar nos vários subprocedimentos dentro do mesmo módulo.

Suponha que o código fornecido abaixo tenha atribuído um valor à variável my_name como "Lalit Salunkhe".

Código:

 Opção Explícita Dim my_name As String Sub Ex_1 () my_name = "Lalit Salunkhe" MsgBox "Meu nome é:" & my_name End Sub 

Se eu executar esse código, vou ver uma caixa de mensagem como mostra a captura de tela abaixo:

Também podemos usar essa variável em diferentes subprocessos dentro do mesmo módulo. Veja a imagem abaixo:

Código:

 Opção Dim explícita meu_nome como string Sub Ex_1 () meu_nome = "Lalit Salunkhe" MsgBox "Meu nome é:" & meu_nome End Sub Sub Ex_2 () Dim minha_age como número inteiro my_name = "Lalit Salunkhe" minha_jato = 28 MsgBox "Meu nome é: "& my_name &"; Minha idade é: "& my_age End Sub 

Veja o subprocesso Ex_2. Ele tem uma nova variável definida my_age. Eu usei my_name para adicionar meu nome e my_age para adicionar a minha idade atual. Você pode ver que meu_nome ainda está acessível no segundo subprocedimento. Depois de executar esse código, podemos obter a saída como uma caixa de mensagem mostrada abaixo:

É assim que podemos definir publicamente uma variável dentro de um módulo.

Exemplo # 2 - Definir uma variável publicamente em todos os módulos

Para conseguir esse feito, você precisa usar as palavras-chave como Pública ou Global em vez de Dim, que define a variável como pública para todo o módulo, onde quer que você trabalhe.

Etapa 1: Crie um novo módulo. Vá para a guia Inserir, clique em Módulo para adicionar um novo módulo no VBE.

Etapa 2: Adicionar opção explícita dentro do módulo.

Código:

 Opção explícita 

Etapa 3: defina uma nova variável denominada var1 e var2 como um número inteiro do tipo. Mas desta vez usando a instrução Public em vez de Dim (que usamos anteriormente).

Código:

 Opção Público explícito var1 como inteiro Público var2 como inteiro 

Etapa 4: Agora, essas duas variáveis ​​podem ser usadas em vários módulos se criadas no mesmo VBE. Veja o exemplo dado abaixo:

Código:

 Opção Público explícito var1 como inteiro Público var2 como inteiro sub Ex_3 () var1 = 10 var2 = 100 MsgBox "O valor para var1 é:" & var1 & Chr (13) e "O valor para var2 é:" & var2 End Sub 

Atribuímos os valores a ambas as variáveis ​​usando um recurso MsgBox, tentando exibir valores para essas duas variáveis.

Etapa 5: execute o código pressionando a tecla F5 ou clicando no botão Play, você pode ver uma saída como mostrado abaixo:

Etapa 6: Usaremos as mesmas variáveis ​​no Módulo1 que usamos no primeiro exemplo e tentaremos descobrir se as variáveis ​​estão acessíveis lá ou não.

Código:

 Opção Dim explícita meu_nome como string Sub Ex_1 () meu_nome = "Lalit Salunkhe" MsgBox "Meu nome é:" & meu_nome End Sub Sub Ex_2 () Dim minha_age como número inteiro my_name = "Lalit Salunkhe" minha_jato = 28 MsgBox "Meu nome é: "& my_name" "Minha idade é:" & my_age End Sub Sub Ex_public () var1 = 1000 var2 = 999 MsgBox "O valor para var1 é:" & var1 e Chr (13) e "O valor para var2 é:" & var2 End Sub 

Se você pudesse ver a captura de tela acima, usamos o mesmo conjunto de variáveis ​​definido no Módulo2 e temos valores como 1000 e 999, respectivamente. Estamos usando a função MsgBox para apresentar os valores dessas duas variáveis, respectivamente. Execute o código e você pode ver a saída como abaixo:

É assim que uma variável pode ser usada publicamente dentro do módulo e entre os módulos.

Coisas para lembrar

  • É sempre preferível definir as variáveis ​​explicitamente no VBA. Para que eles não se limitem ao subprocedimento em que são definidos.
  • Você pode atribuir variável pública de duas maneiras: uma em um módulo usando a instrução Dim convencional e a segunda em todos os módulos presentes no VBE usando a instrução Pública ou Global.

Artigos recomendados

Este é um guia para VBA Public Variable. Aqui discutimos como declarar Variável pública no Excel usando o código VBA no excel, juntamente com exemplos práticos e modelo de excel para download. Você também pode consultar nossos outros artigos sugeridos -

  1. Variáveis ​​globais do VBA
  2. Uma tabela de dados variáveis ​​no Excel
  3. VBA FileSystemObject (FSO)
  4. Tabela de dados variáveis ​​dois no Excel

Categoria: