Tudo que você precisa saber sobre variáveis vba
Variável VBA
No VBA, uma variável é como uma caixa de armazenamento que é armazenada em seu sistema, mas pode armazenar um valor lá para você e você pode usar esse valor em seu código e alterá-lo se quiser (como o nome sugere, “VARIÁVEL ”é algo cujo valor não é fixo).
Para declarar uma variável, você deve seguir um procedimento simples:
- Use a palavra-chave “Dim” no início.
- Especifique um nome para a variável.
- Use a palavra-chave “As” após o nome.
- Especifique o “Tipo de dados” da variável com base no valor que deseja atribuir a ela.
Aqui usamos o nome “startDate” e especificamos o tipo de dados “Date”. Depois de declarar uma variável, você pode atribuir um valor a ela.
Dim startDate As Date startDate = “11/10/2018”
Agora, sempre que você usar a data de início em seu código, o Excel usará a data que você forneceu.
Tipos de dados
No VBA, os tipos de dados são basicamente os tipos de dados que você precisa especificar ao armazenar um valor em uma variável ou constante. Por exemplo, se quiser armazenar uma data em uma variável, você deve primeiro declarar essa variável de data como seu tipo de dados.
Tipos de dados explicados
Aqui está a lista completa de tipos de dados que você pode usar no VBA.
Tipo de dados | Bytes usados | Faixa de valores |
---|---|---|
Bytes | 1 byte | 0 a 255 |
boleano | 2 bytes | Verdadeiro ou falso |
Todo | 2 bytes | -32,768 a 32,767 |
Longo (inteiro longo) | 4 bytes | -2.147.483.648 a 2.147.483.647 |
Sozinho | 4 bytes | -3.402823E38 a -1.401298E-45 para valores negativos; 1.401298E-45 a 3.402823E38 para valores positivos |
Dobro | 8 bytes | -1,79769313486231E308 a -4,94065645841247E-324 para valores negativos; 4,94065645841247E-324 a 1,79769313486232E308 para valores positivos |
Dinheiro | 8 bytes | -922.337.203.685.477,5808 a 922.337.203.685.477,5807 |
Decimal | 14 bytes | +/-79 228 162 514 264 337 593 543 950 335 sem vírgula; +/-7,9228162514264337593543950335 com 28 casas decimais à direita da vírgula |
Data | 8 bytes | 1º de janeiro de 100 a 31 de dezembro de 9999 |
Objeto | 4 bytes | Qualquer referência de objeto |
Corrente (comprimento variável) | 10 bytes + comprimento da string | 0 a cerca de 2 bilhões |
Corrente (comprimento fixo) | Comprimento da corrente | 1 a aproximadamente 65.400 |
Variante (com números) | 16 bytes | Qualquer valor numérico até o intervalo de um Double |
Variante (com personagens) | 22 bytes + comprimento da string | Mesmo intervalo da string de comprimento variável |
Usuário definido | Vários | O intervalo de cada elemento é igual ao intervalo de seu tipo de dados |
Isto é altamente recomendado para declarar o tipo de dados para variáveis e constantes .
Quando você especifica o tipo de dados para uma variável ou constante, isso garante a validade dos seus dados e evita que você insira um tipo de dados inválido. Se você omitir o tipo de dados, o VBA aplicará o tipo de dados Variant à sua variável – este é o mais flexível e o VBA não adivinhará qual deveria ser o tipo de dados.
Dica: A melhor maneira de não ignorar a especificação dos tipos de dados é usar a opção explícita na parte superior do módulo antes de iniciar qualquer código.
Explícita ou implicitamente
Você pode declarar uma variável explícita ou implicitamente. Declaração explícita significa que antes de atribuir um valor a uma variável, você a declara e define seu valor. A VANTAGEM disso é quando você define e seu tipo de dados o VBA sempre armazena os dados nesse formato.
Aqui está um exemplo:
Dim myDate As Date
Portanto, quando você armazena valor neste VBA, ele sempre aplicará o formato de data a ele. Mas com a declaração implícita, você não se preocupa com esta declaração explícita. Em vez disso, você define o valor da variável e o usa na instrução do código. Na declaração implícita, o VBA armazena os dados em um tipo de variável Variant porque você não especificou o tipo.
Em outras palavras, se você apenas usar uma variável em seu código sem declará-la, ela estará implícita. Abaixo está um exemplo de declaração implícita:
myDate = “11/10/1990”
É assim que você simplesmente atribui o valor a uma variável e o usa em suas instruções de código. Se você me perguntar, é sempre, quero dizer, sempre melhor declarar uma variável antes de usá-la. Isso não é apenas uma boa prática, mas também torna seu código executado de forma mais rápida e fácil de entender.
Variável estática
Bem, eu te disse que a variável é onde você pode alterar o valor, mas isso é algo diferente. Com uma variável normal quando um procedimento é concluído, o valor armazenado na variável seria deletado da memória do VBA, mas, se você não quiser perder esse valor, pode tornar essa variável estática.
Para tornar uma variável estática de forma que ela retenha o valor, basta usar a palavra-chave “Static” em vez de “Dim”.
Nomeie uma variável
Você pode nomear uma variável (essas regras também se aplicam à constante e ao nome do procedimento) como quiser, mas você deve seguir algumas regras:
- Você pode usar letras, números e alguns caracteres de pontuação, mas o primeiro caractere do nome deve ser um alfabeto.
- Espaços ou pontos não são caracteres válidos para uso no nome, mas você pode usar um sublinhado para tornar o nome legível.
- Você não pode usar caracteres especiais em um nome.
- O comprimento de um nome pode ter 254 caracteres, mas usar um nome que não faz sentido.
- Existem muitas palavras reservadas, que são palavras que você não pode usar para o nome. Se você tentar usar qualquer uma dessas palavras, receberá uma mensagem de erro.
- O VBA não diferencia os casos.
Escopo
Neste ponto você conhece os procedimentos e qual procedimento é útil em qual situação, também aprende sobre variáveis e como definir seus tipos de dados.
A próxima coisa importante é entender o escopo, o que significa disponibilidade. É aqui que ele pode ser usado. Quando você define uma variável, o escopo define se você pode usá-la fora do procedimento host ou não. Existem três maneiras de definir escopos de variáveis (constantes e pares com todo o procedimento).
- Nível do procedimento: você só pode usar uma variável no mesmo procedimento em que a declara.
- Nível do módulo (privado): torna uma variável acessível a partir de todos os procedimentos de um módulo.
- Nível do módulo (Público): Torna uma variável acessível a partir de todos os procedimentos em todos os módulos.
O escopo padrão de uma variável é o procedimento (nível de procedimento) no qual esta variável é declarada.
Mas deixe-me compartilhar algo do mundo real com você.
Trabalho em um espaço de coworking e onde me sento é no primeiro andar do prédio de três andares. Sento-me no mesmo lugar quase todos os dias. Portanto, se você declarar uma variável com escopo em nível de procedimento, poderá usá-la apenas dentro do mesmo procedimento. Assim como eu sento no mesmo lugar, no mesmo chão, todos os dias. Mas deixe-me contar mais: embora eu me sente no primeiro andar, também posso usar qualquer assento nos outros andares. E no instantâneo abaixo, declaramos a variável “myName” no topo do módulo usando a palavra-chave Private antes de iniciar qualquer procedimento e usei-a em todos os três códigos. Pense neste módulo como um edifício onde você possui diferentes andares (Procedimentos) e como você já declarou a variável no início do módulo, você pode utilizar qualquer um dos procedimentos deste módulo. Isso é chamado de escopo em nível de módulo privado. Agora, aqui está a última coisa: meu escritório tem filiais em diferentes cidades do país e, se eu for para lá, posso ir a esses escritórios e usar qualquer um dos assentos, se quiser. Portanto, se você tiver módulos diferentes em sua pasta de trabalho, poderá usar uma variável em todos esses módulos, declarando-a como Pública.