Blog

Postado em em 14 de agosto de 2020

Variáveis VBA – O que são e como usar?

Você já ouviu falar em Variáveis no VBA? Mesmo não sendo necessário declara-las nessa linguagem de programação, elas têm sua importância!

Caso prefira esse conteúdo no formato de vídeo-aula, assista ao vídeo abaixo!

Clique aqui para baixar a planilha utilizada nessa publicação!

O que são variáveis no VBA?

Variáveis são quaisquer nomes que sejam diferentes dos reservados pela biblioteca de nomes do VBA e representam espaços de memórias que são reservados no computador para armazenar conteúdos (valores). Existem diversos tipos de variáveis para armazenar tipos de dados específicos (número, texto, data, objetos etc).

Para que servem?

Servem para armazenar valores específicos. Esse conteúdo armazenado em um momento pode variar dentro de um mesmo código de VBA em outro momento. Ou seja, ele pode assumir valores diferentes, conforme o código está em execução, assumindo o mesmo nome. Por isso é chamado de variável.

Como trabalhar com variáveis no VBA?

Ao longo da nossa série de consolidação de dados em planilhas iremos trabalhar com diversas variáveis e seus tipos. Hoje nós nos limitaremos à declaração de alguns tipos delas e a explicação de como armazenam valores. Esse post irá ajudar a entender os próximos passos dessa série, que no final visa fazer a consolidação de dados no Excel.

No nosso arquivo de exemplo usado no vídeo, temos duas abas, com tabelas preenchidas com dados de tipos iguais, mas que são diferentes. Veja abaixo:

Juntar Planilhas Excel Em Uma Só

Juntar Planilhas Excel Em Uma Só

Para começar tudo, iremos abrir o VBA (Alt+(Fn)+F11). Em seguida iremos na guia Inserir, e clicar em Módulo, para começar um módulo novo (Módulo 1, por padrão), em branco, onde iremos escrever nosso código.

A partir desse módulo em branco, iremos começar uma nova Sub (subrotina), que será o nome do nosso código. Ao inserir “Sub (nome do nosso código)” e dar Enter, automaticamente é preenchido um End Sub no final do código. O código vai ser sempre o que estiver escrito entre Sub e End Sub.

Vamos começar declarando as variáveis. Precisamos declarar o tipo de variável para o VBA entender a quantidade memória do computador irá utilizar para armazenar aquele valor específico. Lembrando que não é obrigatório declarar as variáveis antes de utilizá-las (mas precisamos defini-las, ou seja, dizer o que elas assumirão ou armazenarão, se formos utilizá-las após essa definição no código).

Como no nosso exemplo temos dados de tipos de texto, e números, tanto inteiros pequenos e grandes, quanto decimais, vamos declarar variáveis dos tipos String, Integer, LongLong e Double, respectivamente. Veja abaixo a parte do código que irá representar a declaração:

Dim VBA

Dim VBA

Leitura do Bloco de declaração:

Dim nome As String é a instrução que fará a declaração da variável “nome” como um texto

Dim numero As Integer é a instrução que fará a declaração da variável “numero” como um número inteiro

Dim numero_decimal As Double é a instrução que fará a declaração da variável “numero_decimal” como um número decimal

Dim numero_grande As LongLong é a instrução que fará a declaração da variável “numero_grande” como um número inteiro muito grande

 

OBS: De primeira faz sentido usar a variável “numero_grande” como Long (por não sabermos os limites de valores que ela comporta). Mas, se rodarmos o código, o VBA nos retornará um erro de “Estouro”. Mas por que?

Porque a variável numero_grande irá assumir o valor de 313.536.843.185 e a variável do tipo Long, por definição, só assume valores de -2.147.483.648 a 2.147.483.647. Por isso devemos usar a LongLong, um tipo de variável que assume valores de -9.223.372.036.854.775.808 a 9.223.372.036.854.775.807 (válido somente em plataformas de 64 bits), segundo a Microsoft.

Agora vamos para a parte que iremos passar os dados serem armazenados nas variáveis declaradas. Abaixo temos o código para armazenar os valores da primeira aba (planilha) do nosso exemplo:

Leitura do Bloco de armazenamento para 1ª aba:

nome = Cells(1, 2).Value é a instrução do código que dirá que queremos armazenar o valor da célula da 1ª linha (linha = 1) da 2ª coluna (coluna = 2) da nossa primeira aba na variável “nome”

numero = Cells(2, 2).Value é a instrução do código que dirá que queremos armazenar o valor da célula da 2ª linha (linha = 2) da 2ª coluna (coluna = 2) da nossa primeira aba na variável “numero”

numero_decimal = Cells(3, 2).Value é a instrução do código que dirá que queremos armazenar o valor da célula da 3ª linha (linha = 3) da 2ª coluna (coluna = 2) da nossa primeira aba na variável “numero_decimal”

numero_grande = Cells(4, 2).Value é a instrução do código que dirá que queremos armazenar o valor da célula da 4ª linha (linha = 4) da 2ª coluna (coluna = 2) da nossa primeira aba na variável “numero_grande”

OBS: Leitura para “Cells” no VBA é feita da seguinte forma: Cells(LINHA,COLUNA).

 

E se quiséssemos pegar os valores da Segunda Aba?

Para isso, devemos declarar uma variável que irá representar a segunda aba. Essa variável é a variável Object, porque a aba (planilha) é um objeto do programa do Excel e é assim que deve ser declarado. Veja abaixo como ficará o código para fazer o mesmo procedimento de armazenar os valores da primeira aba com a segunda aba:

Set VBA

Set VBA

Leitura do Bloco de armazenamento para a 2ª aba:

Para definir um objeto no VBA devemos usar o comando Set antes do nome da variável (declarada ou não) escolhida para que o VBA entenda que ela vai assumir um (“valor” de) objeto. Precisamos “setar” ele para que o código entenda que ele irá substituir um objeto (que pode, mas geralmente não muda) no código inteiro, e não será uma variável que substituirá um valor (texto, número, data) que poderá mudar várias vezes durante o código.

Dim aba_secundaria As Object é a instrução que fará a declaração da variável “aba_secundaria” como um objeto.

Set aba_secundaria = Sheets(“Segunda Aba”) é a instrução que passará para o VBA que queremos usar a variável “aba_secundaria” exatamente como a segunda aba do Excel, como uma substituição. Onde ela aparecer no código, entenderemos que essa variável vai substituir a segunda aba, em todas as partes em que ela aparecer no código.

nome = aba_secundaria.Cells(1, 2).Value é a instrução do código que dirá que queremos armazenar o valor da célula da 1ª linha (linha = 1) da 2ª coluna (coluna = 2) da nossa segunda aba na variável “nome”

numero = aba_secundaria.Cells(2, 2).Value é a instrução do código que dirá que queremos armazenar o valor da célula da 2ª linha (linha = 2) da 2ª coluna (coluna = 2) da nossa segunda aba na variável “numero”

numero_decimal = aba_secundaria.Cells(3, 2).Value é a instrução do código que dirá que queremos armazenar o valor da célula da 3ª linha (linha = 3) da 2ª coluna (coluna = 2) da nossa segunda aba na variável “numero_decimal”

numero_grande = aba_secundaria.Cells(4, 2).Value é a instrução do código que dirá que queremos armazenar o valor da célula da 4ª linha (linha = 4) da 2ª coluna (coluna = 2) da nossa segunda aba na variável “numero_grande”

OBS: Dim e Set

Dim: significa dimensionar (ou declarar) uma variável

Set: significa “setar”, ou seja, fazer a variável assumir algo ou atribuir algo a ela. É utilizada para atribuir uma referência de um objeto à uma variável.

Esteja ciente que as variáveis no VBA armazenam uma quantidade diferente de memória temporária do computador (fonte: Microsoft). Se você não declarar o tipo, ele irá armazenar a maior quantidade de memória possível para conseguir interpretar todos os tipos de dados, porque ele “não sabe” qual tipo de dado será armazenado.

Isso é considerado algo ineficiente para o código. Por exemplo, para um código pequeno não faz muita diferença, mas para um código extenso sim, faz bastante diferença no tempo de execução.

Fique ligado na nossa série compilação de planilhas no vba, nos posts aqui e vídeos no nosso canal do Youtube para os próximos passos a serem aprendidos! Até a próxima!

Hashtag Treinamentos

Para acessar outras publicações de VBA, clique aqui!


Quer aprender mais sobre VBA com um Minicurso Gratuito?


Quer participar do maior evento de Power BI da América Latina de forma 100% Online e Gratuita? Inscreva-se abaixo!