Noções básicas sobre variáveis ​​e constantes em macros do Excel

Neste artigo, você aprenderá o que são constantes e variáveis ​​em macros, onde podem ser usadas e qual é a principal diferença entre os diferentes tipos de dados. Também será revelado por que as constantes são necessárias, se você pode apenas escrever uma variável e nunca alterá-la.

Como outras linguagens de programação, os dados podem ser armazenados em variáveis ​​ou constantes (ambas também são frequentemente chamadas de contêineres de dados). Essa é a principal diferença entre esses conceitos. O primeiro pode mudar dependendo do que acontece no programa. Por sua vez, as constantes são definidas uma vez e não alteram seu valor.

As constantes podem ser úteis se você precisar usar o mesmo valor grande várias vezes. Em vez de copiar o número, você pode simplesmente escrever o nome da constante. Por exemplo, você pode usar a constante “Pi” para armazenar Pi, que é um valor constante. É muito grande, e cada vez é muito difícil escrevê-lo ou pesquisá-lo e copiá-lo. E assim, basta escrever dois caracteres, e o ambiente usa automaticamente o número desejado.

O usuário do Excel precisa declarar variáveis ​​se precisar alterar o valor armazenado nelas de tempos em tempos. Por exemplo, você pode definir uma variável chamada sVAT_Rate, que armazenará a taxa de IVA atual do produto. Se ele mudar, você pode corrigi-lo rapidamente. Isso é especialmente útil para aqueles que fazem negócios nos Estados Unidos, onde alguns bens podem não estar sujeitos ao IVA (e esse imposto também difere de estado para estado).

Tipos de dados

Cada contêiner de dados pode ser um dos vários tipos. Aqui está uma tabela que descreve os tipos padrão de informações processadas. Existem muitos deles, e pode parecer a um iniciante inicialmente que eles se repetem. Mas este é um sentimento ilusório. Continue lendo para saber por que especificar o tipo de dados correto é tão importante.

Não é recomendado usar um tipo de dados que ocupe mais espaço na memória para números pequenos. Por exemplo, para o número 1, basta usar o tipo Byte. Isso terá um efeito positivo no desempenho do módulo executável, especialmente em computadores fracos. Mas é importante não ir muito longe aqui. Se você usar um tipo de dados muito compacto, um valor superdimensionado pode não caber nele.

Declarando Constantes e Variáveis

Usar um contêiner de dados sem primeiro declará-lo é fortemente desencorajado. Então pode surgir uma série de problemas, para evitar os quais é necessário escrever algumas pequenas linhas de código com enumeração de variáveis ​​ou constantes.

Para declarar uma variável, a instrução Dim é usada. Por exemplo, assim:

Dim Variable_Name como inteiro

Variable_Name é o nome da variável. Em seguida, o operador As é escrito, indicando o tipo de dado. Em vez das strings “Variable_Name” e “Integer”, você pode inserir seu próprio nome e tipo de dados.

Constantes também podem ser declaradas, mas você deve primeiro especificar seu valor. Uma das opções é:

Const iMaxCount = 5000

Para ser justo, em alguns casos você pode fazer sem declarar uma variável, mas neste caso eles serão automaticamente atribuídos ao tipo Variant. No entanto, isso não é recomendado pelos seguintes motivos:

  1. A variante é processada muito mais lentamente e, se houver muitas dessas variáveis, o processamento de informações pode ser significativamente mais lento em computadores fracos. Parece que esses segundos vão decidir? Mas se você tiver que escrever um grande número de linhas de código e também executá-lo em computadores fracos (que ainda são vendidos, já que as suítes de escritório modernas exigem muita RAM), você pode interromper completamente o trabalho. Há casos em que a escrita mal concebida de macros levou ao congelamento de smartbooks que possuem uma pequena quantidade de RAM e não são projetados para executar tarefas complexas. 
  2. Erros de impressão nos nomes são permitidos, o que pode ser evitado usando a instrução Option Explicit, que permite localizar uma variável não declarada, se for encontrada. Esta é uma maneira fácil de detectar erros, pois o menor erro de digitação faz com que o interpretador não consiga identificar a variável. E se você ativar o modo de declaração de variável, o interpretador simplesmente não permitirá que você execute a macro se forem encontrados contêineres de dados que não foram declarados no início do módulo.
  3. Evite erros causados ​​por valores de variáveis ​​que não correspondem ao tipo de dados. Normalmente, atribuir um valor de texto a uma variável inteira gerará um erro. Sim, por um lado, um tipo genérico é atribuído sem uma declaração, mas se eles forem declarados antecipadamente, erros aleatórios podem ser evitados.

Portanto, apesar de tudo, é altamente recomendável declarar todas as variáveis ​​em macros do Excel.

Há mais uma coisa a ter em mente ao declarar variáveis. É possível não atribuir nenhum valor a uma variável ao declará-la, mas neste caso ela adquire um valor padrão. Por exemplo:

  1. As linhas são feitas vazias.
  2. Os números assumem o valor 0.
  3. Variáveis ​​do tipo Boolean são inicialmente consideradas falsas.
  4. A data padrão é 30 de dezembro de 1899.

Por exemplo, você não precisa atribuir o valor 0 a uma variável inteira se nenhum valor foi especificado anteriormente. Ela já contém este número.

Declaração explícita de opção

Essa instrução permite que você declare todas as variáveis ​​usadas no código VBA e determine a presença de quaisquer contêineres não declarados antes que o código seja executado. Para usar esse recurso, basta escrever uma linha de código Option Explicit na parte superior do código da macro.

Se você precisar incluir essa instrução em seu código todas as vezes, poderá fazê-lo usando uma configuração especial no editor VBA. Para habilitar esta opção, você deve:

  1. Vá para o ambiente de desenvolvimento ao longo do caminho – Ferramentas > Opções.
  2. Na janela que se abre depois disso, abra a guia Editor.
  3. E, por fim, marque a caixa ao lado do item Exigir Declaração de Variável.

Após a conclusão dessas etapas, clique no botão “OK”. 

É isso, agora ao escrever cada nova macro, essa linha será inserida no topo do código automaticamente.

Escopo de Constantes e Variáveis

Cada variável ou constante tem apenas um escopo limitado. Depende de onde você declara.

Suponha que temos uma função Custo total(), e usa a variável Taxa_sVAT. Dependendo da posição no módulo, ele terá um escopo diferente:

Opção explícita

Dim sVAT_Rate como único

Função Total_Cost() como Double

.

.

.

Função final

Se uma variável for declarada no topo de um módulo, ela se propagará por todo esse módulo. Ou seja, ele pode ser lido por todos os procedimentos.

Além disso, se um dos procedimentos alterou o valor da variável, o próximo também lerá esse valor corrigido. Mas em outros módulos esta variável ainda não será lida.

Opção explícita

Função Total_Cost() como Double

Dim sVAT_Rate como único

   .

   .

   .

Função final

Nesse caso, a variável é declarada dentro do procedimento, e o interpretador lançará um erro se for usado em outro procedimento.

Se você quiser que a variável seja lida por outros módulos, você deve usar a palavra-chave Public em vez da palavra-chave Dim. Da mesma forma, você pode limitar o escopo de uma variável apenas ao módulo atual usando a instrução Public, que é escrita em vez da palavra Dim.

Você pode definir o escopo das constantes de maneira semelhante, mas a palavra-chave aqui é escrita junto com o operador Const.

Aqui está uma tabela com um bom exemplo de como funciona com constantes e variáveis.

Opção explícita

sVAT_Rate público como único

Público Const iMax_Count = 5000

Neste exemplo, você pode ver como a palavra-chave Public é usada para declarar uma variável e o que você precisa escrever no editor do Visual Basic para declarar uma constante pública. O escopo desses contêineres de valor se aplica a todos os módulos.
Opção explícita

Privado sVAT_Rate como solteiro

Privado Const iMax_Count = 5000

Aqui, variáveis ​​e constantes são declaradas usando a palavra-chave Private. Isso significa que eles só podem ser vistos dentro do módulo atual e procedimentos em outros módulos não podem usá-los.

Por que constantes e variáveis ​​são necessárias

O uso de constantes e variáveis ​​permite aumentar o grau de compreensão do código. E se os iniciantes em geral não tiverem dúvidas sobre por que as variáveis ​​são necessárias, existem muitas ambiguidades em relação à necessidade de constantes. E essa pergunta parece, à primeira vista, bastante lógica. Afinal, você pode declarar uma variável uma vez e nunca mais alterá-la.

A resposta acaba por estar em algum lugar no mesmo plano em relação ao uso de tipos de dados que ocupam um grande espaço na memória. Se estivermos lidando com um grande número de variáveis, podemos alterar acidentalmente um contêiner existente. Se o usuário prescrever que um determinado valor nunca será alterado, o ambiente controlará isso automaticamente.

Isso é especialmente importante quando a macro é escrita por vários programadores. Pode-se saber que alguma variável não deve mudar. E o outro não. Se você especificar o operador Const, outro desenvolvedor saberá que esse valor não muda.

Ou, se houver uma constante com um nome e a variável tiver um nome diferente, mas semelhante. O desenvolvedor pode simplesmente confundi-los. Por exemplo, uma variável que não precisa ser alterada é chamada de Variável11, e outra que pode ser editada é chamada de Variável1. Uma pessoa pode automaticamente, ao escrever código, pular acidentalmente uma unidade extra e não perceber. Como resultado, o contêiner de valores será alterado, que não deve ser tocado.

Ou o próprio desenvolvedor pode esquecer quais variáveis ​​ele pode tocar e quais ele não pode. Isso geralmente acontece quando o código é escrito por várias semanas e seu tamanho se torna grande. Durante este tempo, é muito fácil esquecer até o que esta ou aquela variável significa.

Sim, você pode fazer comentários nesta situação, mas não é mais fácil especificar a palavra Const?

Conclusões

As variáveis ​​são um componente essencial da programação de macros, que permitem realizar operações complexas, desde cálculos até informar o usuário sobre determinados eventos ou especificar valores específicos nas células de uma planilha.

As constantes devem ser usadas se o desenvolvedor tiver certeza de que o conteúdo desses contêineres não será alterado no futuro. Recomenda-se não usar variáveis, pois é possível cometer um erro acidentalmente.

Deixe um comentário