• Laercio Correa

VBA Excel

Atualizado: Jul 26

Co-autor: Victor Natal


Você quer saber um pouco mais sobre VBA e como utilizar essa ferramenta poderosa no Excel? Tenho certeza que este post pode te ajudar! Vamos lá!

O que é VBA? Pra que serve o VBA?

Visual Basic for Applications, ou VBA, é a linguagem com a qual podemos nos comunicar com os programas do pacote Office. É possível, por exemplo, gerar um relatório no Word a partir de dados do Excel, ou enviar um e-mail com um anexo - tudo gerado e ordenado pelo Excel.

Com o VBA, podemos automatizar nossas planilhas e resolver problemas muito complexos ou muito extensos. A capacidade de processamento do computador nos ajuda com a parte do tamanho do problema, enquanto programar em VBA nos dá mais liberdade do que teríamos em apenas “gravar uma macro”. (Você já leu nosso post sobre Macro para Excel? Se não, confere lá!)

Fazendo uma analogia, você pode pensar que o VBA é o idioma que o Excel fala . E é muito mais fácil de aprender do que qualquer outro idioma que você tenha estudado na vida, pode acreditar.

Mas antes de começar a utilizar o VBA, vamos aprender alguns...

Conceitos básicos de VBA

Antes de começarmos, vale lembrar que esse post tem o objetivo de ser uma uma introdução ao VBA, e os conceitos que veremos a seguir podem ser muito mais complexos e extensos.

O VBA é uma linguagem de programação orientada a objeto. Não deixe o nome feio te assustar, isso significa apenas que o VBA é uma linguagem em que a unidade básica de construção é um objeto.


E o que é um objeto? Bem, é esse e outros conceitos estruturais que vamos te explicar a seguir! Todos os conceitos a seguir se aplicam a VBA e a todas as linguagens orientadas a objeto (C++, C#, Python, etc).

Objeto: é a unidade básica desse tipo de programação. Tecnicamente, é uma instância de uma classe, mas você pode pensar nele como uma classificação genérica de uma série de itens.

Como estamos falando de VBA para Excel, podemos citar como objetos: uma célula, um botão, um gráfico. Trazendo para um exemplo do dia a dia, vamos trocar essa história toda por carros! Nessa analogia, um objeto no mundo dos carros poderia ser o seu Tesla Model X com cheiro de novo, ou o Corolla do seu avô.

Classe: é a definição de todos os estados, características e ações que objetos do mesmo tipo podem ter. No VBA, existe uma classe, por exemplo, chamada Botão – ela define todos os comportamentos possíveis que um objeto botão pode ter. Isso, na prática, significa que, toda vez que você cria um botão no VBA, você não precisa contar pro VBA tudo o que ele pode vir a fazer um dia – você simplesmente, dentre todas as possibilidades que aquela classe te dá, diz pro VBA quais características e ações você vai precisar para aquele botão especificamente.


No nosso exemplo automobilístico, a classe seria Carro e os objetos seriam Tesla Model X e Corolla – apesar de serem carros (bem) diferentes, ambos tem uma série de características que são inerentes a classe carro (ter motor, ter quatro rodas, poder ser dirigido...).


Propriedades: as propriedades são características de um objeto. Um botão no VBA, por exemplo, tem a propriedade Caption, que nada mais é do que o texto que vai ser mostrado em cima do seu botão. Na classe Carro, os objetos podem ter diversas propriedades – cor, ano de fabricação, fabricante...



Métodos: são ações que podemos realizar num objeto – são suas habilidades. Um objeto da classe Botão tem, por exemplo, a habilidade (método) de ser ativado, ser trazido para frente ou para trás de outros elementos na sua planilha e ser deletado. Com os objetos da classe Carro, temos os métodos ligar/desligar, acelerar, frear, dar seta...


Coleções: são conjuntos de objetos do mesmo tipo. ”Ué, mas isso não é uma classe?”. A dúvida é justa, mas a resposta é não! A classe é o conjunto de todos os objetos que podem existir – ela determina características e comportamentos de todos os botões do mundo – até aqueles que ainda não existem! A coleção é nada mais do que um agrupamento de objetos que você criou – é um grupo finito de objetos. Na classe Carro, podemos ter a coleção formada pelo seu Tesla Model X e o Corolla do seu avô – o grupo dos dois objetos da classe carro é uma coleção.

Macro: é uma sequência lógica de instruções para realizar algum procedimento que foi gerada através de um “gravador”. Ela serve, em essência, para ajudar pessoas que não sabem programar VBA e precisam automatizar tarefas simples. No Excel, existe um botão que, depois de clicado, traduz todas as ações que você realizar numa planilha em instruções na linguagem que o Excel fala. Depois de gravada, você pode executar de novo todas aquelas ações com o clique de um botão.


Procedure: também é uma sequência lógica de instruções para realizar algum procedimento, porém não é gerada com o “gravador” – ela é gerada por você, escrevendo o código. Colocado de outra maneira, a sequência de código gerada pelo gravador de macro é um procedure. Toda macro é um procedure, mas nem todo procedure é uma macro.Procedures podem ser do tipo Sub ou Function.

Function: é um tipo de procedure que utiliza informações geradas por outros trechos anteriores de código (dados de entrada) para gerar um resultado e devolve esse resultado para o usuário. Veja no exemplo abaixo uma função simples de cálculo de média: ela resulta na média dois números (x1 e x2). O procedimento de somar e dividir por dois é pertencente a function, porém os números que queremos somar devem ser informados antes da function ser executada – x1 e x2 são substituídos pelos números escolhidos na entrada e a function calcula sua média.


Function ValorMedio(x1,x2)


ValorMedio = (x1+x2)/2


End Function

Sub: é um tipo de procedure que não retorna nada ao usuário e que pode ou não utilizar informações geradas por outros trechos de código. Como exemplo, veja a sub abaixo, ela exclui o conteúdo da célula A1 de uma planilha. Note que, nesse caso específico, não é necessária nenhuma informação que não esteja já na própria sub.


Sub LimparConteudo ()

Range("A1").ClearContents


End Sub

Módulos: são simplesmente um elemento de organização. Ao invés de escrevermos vários procedures em lugares diferentes, os módulos são os “arquivos” onde colocamos a maioria das procedures – (antes de serem escritos, os módulos nada mais são do que uma página em branco de um editor de texto).


Variáveis: são o mesmo conceito de variável da álgebra – são símbolos que representam valores numéricos diferentes conforme se queira. Variáveis, em um computador, são pequenos espaços de memória que armazenam valores, os quais podem ser alterados segundo nossa vontade. Veja o exemplo da Function, temos duas variáveis nele: x1 e x2 – eles podem assumir infinitos valores numéricos em momentos diferentes.

Evento: é um nome excelente, porque ele é exatamente o que parece ser! Voltando ao nosso exemplo do objeto botão, um evento possível seria esse botão ser clicado pelo usuário. Outros eventos são a abertura de uma nova aba e a atualização de valores de uma célula.


Agora é com você!


Se você tem interesse em se diferenciar e aprender essa ferramenta poderosíssima e MUITO procurada por todas as empresas, que é o VBA, acompanhe os posts da BTM, traremos muito VBA para você!


É muito importante praticar! De pouco em pouco você entenderá códigos cada vez mais complexos e conseguirá desenvolver suas próprias Subs. Se você nunca programou, é uma excelente oportunidade para descobrir que programação em VBA não é um bicho de sete cabeças.


Se você quiser aprender mais sobre VBA, acesse nossa aula gratuita "Gravador de Macros", é só se inscrever e começar, sem burocracia.




Fique de olho aqui no blog da BTM. E, se você gostou do conteúdo, compartilhe com seus amigos e amigas para que eles possam aprender também! ;)


Quer uma ajudinha para dar um up no seu currículo e impressionar seus recrutadores e colegas de trabalho? Conheça nossos cursos! Confere lá e vem ser #TeamBTM!

#Excel #VBA #VBAparaExcel #BTMCo#BeatTheMarketCo


Um abraço!

123 visualizações
  • BTM Co. - Youtube
  • BTM Co - Linkedin
  • BTM Co - Facebook

Beat the Market Co.

CNPJ: 27.542.195/0001-58

WhatsApp: (11) 94376-6919

TEM DÚVIDAS?

A GENTE TIRA!