vba variables option explicit vba
Este tutorial explica como declarar e usar variáveis VBA. Aprenda também sobre a opção explícita, escopo de variável, variáveis estáticas e constantes:
Em um computador, todos os valores de dados são armazenados em uma memória ou armazenamento de computador. Para acessar esses valores, você precisa especificar um nome associado a esse valor, que é chamado de Variável nas linguagens de programação.
Neste tutorial, aprenderemos como declarar e definir uma variável junto com os vários tipos de escopos de variáveis e também explorar variáveis estáticas e constantes em detalhes.
=> Verifique aqui para ver os tutoriais de treinamento A-Z do VBA
O que você aprenderá:
Variáveis VBA
Variáveis são como marcadores de posição para os valores no armazenamento do computador. As variáveis podem conter diferentes variedades de valores e esses valores podem mudar durante a execução do código.
Cada variável terá um nome que é usado para acessar o valor. O VBA tem certas restrições com relação à seleção de nomes.
A seguir está a lista de restrições:
- O nome da sua variável não pode ter mais de 255 caracteres.
- Um nome de variável não pode começar com um número.
- Você não pode começar com caracteres especiais como!, @, &,., # Ou não pode ter espaços.
- Palavras-chave não são consideradas um nome de variável.
O compilador irá lançar um erro se você violar essas restrições
Exemplo:
Nomes de variáveis válidos: varName, Result12, First_Number
Nomes de variáveis inválidos: 123abc, #number, Sub, abc.123
Primeiro número (não é permitido espaço entre as palavras)
Declarando uma variável VBA
Precisamos usar o Nenhum palavra-chave para declarar uma variável. Existem 2 seções ao declarar uma variável. 1sté o nome da variável e 2WLé o tipo de valor a ser armazenado na variável que é denominado Tipo de dados.
Sintaxe: Dim VariableName As DataType
Exemplo:
- Dim MyAge As Integer
- Dim My_Percentage As Double
- Dim Full_Name As String
Aqui, você está dizendo explicitamente ao compilador que minha variável deve apenas armazenar esses tipos de dados e o VBA se certificará de lançar um erro de incompatibilidade de tipo do compilador quando um valor definido para a variável não corresponder ao tipo de dados.
Exemplo:
Sub example1() Dim Total_Marks As Integer Total_Marks = “” MsgBox Total_Marks End Sub
Mas se você não tiver certeza do tipo de dados da variável, o VBA permite que você ignore o tipo de dados. A sintaxe mencionada abaixo também é válida.
Dim VariableName
Quando você não declara o tipo de dados da variável, o VBA a trata como um tipo de dados Variant e aceita qualquer tipo de número inteiro de dados como inteiro, string, pasta de trabalho etc. No mesmo programa, o variáveis variantes podem aceitar valor de string, valor inteiro e qualquer outro tipo também.
Sub VarientVariable() Dim Total_Marks Total_Marks = '' MsgBox Total_Marks Total_Marks = 544.33 MsgBox Total_Marks Total_Marks = 522 MsgBox Total_Marks End Sub
Como Total_Marks é uma variável variante, ao contrário do código anterior, o compilador não gerará nenhum erro conforme mostrado abaixo.
Observação: Lembre-se de que o VBA permite que você use uma variável sem realmente declará-la.
O código de exemplo abaixo também fornece um resultado adequado. Nesse caso, o VBA trata automaticamente a variável como um tipo de dados Variant. Isso é chamado de declaração implícita.
Sub VariantVariable() Total_Marks = 444 MsgBox Total_Marks End Sub
Vantagens de declarar uma variável
- Fácil de depurar: É uma boa prática declarar uma variável antes de usá-la. Isso nos dá uma compreensão prévia dos erros, como incompatibilidade de tipo e erros de digitação, reduzindo assim o risco de desvio da lógica do programa.
- Melhor legibilidade: Como uma equipe, haverá muitas pessoas olhando para o código, e declarar uma variável ajudará a todos com o tipo de valores que a variável deve assumir e também ajudará os usuários a inserir os valores de entrada apropriados durante a execução do programa.
- Espaço de armazenamento: Se você não declarar uma variável, então o VBA a trata como um tipo de dados Variant que ocupa o maior espaço na memória (16 bytes a 22 bytes) quando comparado a outros tipos de dados. Por exemplo, se você estiver usando uma variável do tipo Byte que ocupa apenas 1 byte e se você não declarar, o VBA acabará reservando um espaço de 16 bytes, desperdiçando memória.
Opção Explícita
Para garantir que todas as variáveis sejam declaradas explicitamente, temos que usar a instrução Option Explicit antes de usá-las. Deve ser usado no início de qualquer procedimento nesse módulo.
Vejamos um exemplo que não usa a declaração Option Explicit.
Sub example3() Dim First_name As String First_name = ' abs' MsgBox Firt_Name End Sub
Execute o código (pressione F5 ou o botão Executar na barra de ferramentas) e você receberá uma caixa de mensagem em branco.
Mesmo que você tenha declarado a variável, você acabou em uma caixa de resultados em branco por causa do erro de digitação na Msgbox Firt_Name. A Option Explicit nos ajudará a eliminar esses erros.
Vamos refazer o mesmo código usando Option Explicit. Insira Option Explicit antes do início do procedimento.
Option Explicit Sub VarientVariable() Dim First_name As String First_name = ' abs' MsgBox Firt_Name End Sub
Agora, se você executar o código (pressione F5 ou o botão Executar na barra de ferramentas), acabará recebendo um erro do compilador.
Você pode fazer o VBA adicionar Opção Explícita automaticamente.
No Editor VB, Vá para Ferramentas -> Opções -> Selecione “Exigir declaração de variável”.
Agora Opção Explícita será adicionado automaticamente sempre que inserir um novo módulo ou gravar uma nova macro.
Observação: Option Explicit não será adicionado ao código VBA existente. Você precisa adicioná-lo manualmente, se necessário.
Atribuindo um valor à variável
Os valores podem ser atribuídos a variáveis usando o símbolo igual a (=). Se você estiver se referindo a uma célula no Excel, precisará usar as funções de intervalo.
Consulte o código abaixo.
Sub varValue() Dim var1 As Integer var1 = 10 Range('C1:C14').Value = var1 MsgBox var1 End Sub
No exemplo acima, var1 é uma variável que armazena o valor 10 diretamente usando (=) e a função Intervalo ajudará a inserir o valor var1 que é 10 na célula do Excel C1 a C14.
Escopo de uma variável
Cada variável em um programa terá um escopo definido. Este escopo informa ao programa as áreas nas quais a variável está visível, ou seja, o módulo ou função que pode ou não usar a variável.
O VBA possui 3 tipos de escopo definidos para a variável.
- Escopo de nível de procedimento
- Escopo de nível de módulo privado
- Escopo de nível de módulo público
Escopo de nível de procedimento
As Variáveis definidas em um procedimento, ou seja, na Sub ou Função só poderão usá-las. Eles não são visíveis para nenhum outro procedimento.
Exemplo:
Option Explicit Sub ProcScope() Dim msg As String vartext = 'Varible is visible only inside this Sub' MsgBox vartext End Sub Sub VarNotVisible() MsgBox vartext End Sub
Quando você executa o código acima, para o primeiro Sub o msgbox retornará um resultado adequado, mas para o segundo Sub, um erro do compilador será gerado. Porque a variável de vértice é visível apenas para o 1stsub e não para o 2WL. Como usamos Option Explicit, obteremos um erro do compilador por não definir variáveis no 2WLsub.


Escopo de nível de módulo privado
Essas variáveis estão disponíveis para todos os procedimentos do módulo definido. Por padrão, as variáveis declaradas com o Nenhum são definidos como privados. Mas é recomendado adicionar privado para melhor legibilidade.
Vamos considerar o mesmo exemplo, mas declararemos a variável fora do procedimento.
Option Explicit Private vartext As String ‘ Dim vartext As String can also be used Sub PrivateScope() vartext = 'Varible is visible to all procedures' MsgBox vartext, ,”Result from Sub1” End Sub Sub VarIsVisible() MsgBox vartext, ,”Result from Sub2” End Sub
Após a execução, você verá que ambos os procedimentos retornarão os resultados adequados sem nenhum erro. Para uma compreensão mais clara, adicionamos o título certo na msgbox.
Escopo de nível de módulo público
Esses tipos de variáveis são visíveis para todos os procedimentos e em todos os módulos de um projeto. Insira 2 módulos. (Clique com o botão direito em uma folha e Inserir -> módulos).
Insira o código abaixo em um módulo.
Option Explicit Public vartext As String Sub PrivateScope() vartext = 'Varible is visible to all modules' MsgBoxvartext, , 'Result from Sub1' End Sub
Digite o código abaixo no segundo módulo.
Option Explicit Sub VarIsVisible() MsgBoxvartext, , 'Result from Sub2' End Sub
Os resultados são mostrados abaixo
Vamos considerar um exemplo prático e entender melhor todo o escopo.
Em anexo está o arquivo de referência para o código acima.
Variável Estática
Normalmente, o valor da variável só é preservado desde a chamada do procedimento até o final do procedimento. Ele não preserva o valor uma vez que a execução do procedimento termina.
Por exemplo , no código acima, o valor de firstNo e secondNo é removido assim que o procedimento termina, da próxima vez se você executar o código, firstNo e secondNo obterão o mesmo valor definido no código.
Mas as variáveis estáticas são aquelas que retêm o valor da variável mesmo após a execução. Uma variável estática é permitida apenas dentro de uma sub-função ou função.
Considere o código abaixo com uma variável não estática.
Option Explicit Sub staticVariable() Dim count As Integer count = count + 1 Debug.Print count End Sub
Cada vez que você pressionar F5, obterá apenas 1 como resultado.
Agora vamos declarar a variável como estática.
Option Explicit Sub staticVariable() Static count As Integer count = count + 1 Debug.Print count End Sub
Cada vez que você executar o código (F5), o resultado terá um valor aumentado para contagem, como 1,2,3 etc., pois a variável estática reteve seu valor.
Observação: A variável estática reterá o valor até você clicar no botão Redefinir na barra de ferramentas ou fechar a pasta de trabalho.
Variável Constante
Como o nome indica, o valor dessas variáveis não pode ser alterado durante a execução do programa. Depois que uma constante é declarada, ela não pode ser modificada ou atribuída a um novo valor.
A declaração de uma constante pode ser feita dentro de um procedimento ou no nível do módulo (acima de todos os procedimentos).
Option Explicit Sub constantVariable() Const SpeedLimitOfcar As String = '90kmph' Dim myCarSpeed As String myCarSpeed = '70kmph' If myCarSpeed > SpeedLimitOfcar Then MsgBox 'overspeed: Reduce the speed' Else MsgBox 'Within the limit: Always drive below : ' & SpeedLimitOfcar End If End Sub
Se você tentar alterar o valor constante, um erro de compilação será gerado.
Option Explicit Sub ChangeConstantVariable() Const SpeedLimitOfcar As Integer = 90 SpeedLimitOfcar = SpeedLimitOfcar + 10 MsgBox SpeedLimitOfcar End Sub
FAQs
P # 1) Como definir uma variável pública no VBA?
Responda: Variáveis públicas são declaradas antes do início de um procedimento. A palavra-chave pública deve ser usada ao declarar uma variável.
Total_Marks públicos como inteiro
Q # 2) Que tipo de variáveis não podem ser declaradas fora do procedimento?
Responda: Variáveis estáticas não podem ser declaradas fora do procedimento no VBA e você obterá um erro de compilação.
P # 3) Como declarar uma variável em VBA?
Responda: A palavra-chave Dim é usada para declarar uma variável. Dim significa dimensão.
Dim variablename As Datatype
P # 4) Como atribuir um valor de variável a uma célula em VBA?
Responda: Você pode usar a função de intervalo.
var1 = 10
Intervalo (“C1: C14”). Valor = var1
Q # 5) O que são variáveis no VBA?
Responda: As variáveis são como marcadores de posição para os valores no armazenamento do computador. As variáveis podem conter diferentes variedades de valores e esses valores podem mudar durante a execução do código. Cada variável deve ter um nome, usando o nome da variável, o computador irá buscar o valor atribuído a essa variável.
Q # 6) Você tem que declarar uma variável no VBA?
Responda: A declaração é opcional no VBA. Se você não declarar uma variável e usá-la diretamente no procedimento, ela é chamada de declaração implícita. Para evitar erros no código e para melhor legibilidade, é recomendado declarar uma variável explicitamente.
P # 7) Como declaro várias variáveis no VBA?
Responda: Você pode declarar várias variáveis em uma instrução de declaração. Você só precisa especificar o nome da variável separado por vírgulas em uma cláusula As.
qa gerente entrevista perguntas respostas pdf
Dim FirstNo, SecondNo As Integer
Você também pode especificar variáveis diferentes em uma instrução de declaração. Cada variável terá o tipo de dados especificado na cláusula As após sua parte do nome da variável.
Dim a, b As Single, c, d As Double, e As Integer, f As String
P # 8) Quando não haveria diferença entre escuro e privado no VBA?
Responda: Se você está declarando um escopo de nível de módulo privado, então não há diferença entre declarar uma variável como dim ou privada. Por padrão, as variáveis declaradas com o Nenhum são definidos como privados. Mas é recomendado adicionar privado para melhor legibilidade.
Q # 9) O que é uma variável de nível de módulo?
Responda: Variáveis de nível de módulo podem ser privadas ou públicas. Variáveis privadas estão disponíveis para todos os procedimentos naquele módulo e não são visíveis para nenhum outro módulo. As variáveis públicas são visíveis para todos os procedimentos em todos os módulos de um projeto.
Conclusão
Uma variável é crucial em qualquer linguagem de programação. Neste tutorial, vimos o que são variáveis, como declará-las e usá-las no programa. Também exploramos o método Option Explicit, que força a implementação da declaração explícita.
Foram discutidos diferentes tipos de escopo de variável que ajudam os usuários a determinar quais partes do código a variável pode ser usada. Aprendemos a usar variáveis estáticas que ajudam a reter o valor da variável e variáveis constantes que ajudam a manter o valor da variável inalterado.
=> Visite aqui para aprender VBA do zero
Leitura recomendada
- Tutorial do Excel VBA - Introdução ao VBA no Excel
- Array VBA do Excel e Métodos de Array com exemplos
- Tipos de dados VBA - Tipos de dados numéricos e não numéricos em VBA
- Variáveis Python
- Variáveis em C ++
- Variáveis Java e seus tipos com exemplos
- Tipos de dados e variáveis C # com exemplos
- Variáveis VBScript: Como declarar e usar variáveis - VBScript Dim