Blog

Postado em em 5 de setembro de 2024

O que é VBA (Visual Basic for Applications) e como usá-lo?

Ainda não sabe o que é VBA? Já ouviu falar, mas não sabe o que é ou qual é a sua finalidade? O VBA (Visual Basic for Applications) é uma linguagem de programação da Microsoft!

Isso mesmo! É uma linguagem de programação que você pode utilizar dentro dos programas da Microsoft, só que é muito utilizado dentro do Excel para fazer automações.

Sabe aquelas tarefas chatas e repetitivas que você faz todos os dias usando o seu Excel? Pois é, essas atividades podem ser automatizadas utilizando o VBA.

Já imaginou automatizar aquela tarefa chata que você faz todos os dias na sua empresa e demora horas? Você pode utilizar o VBA e fazer essa mesma atividade em segundos!

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

O que é VBA no Excel?

Antes de iniciar com o que de fato é o VBA, você pode ouvir ou ler por aí alguns termos como “VBA Excel”, “Excel VBA”, “VBA”… Que são termos comuns, mas são referentes à mesma coisa.

É mais comum vermos isso com o Excel, então dificilmente você verá algo como “VBA PowerPoint”, “VBA Word”… Não que não exista, até porque o VBA é uma linguagem de programação da Microsoft, então você pode utilizar com esses programas para automatizar alguns processos.

Vamos ao que interessa, o VBA (Visual Basic for Applications) é a linguagem de programação que utilizamos dentro do Excel para fazer automações ou até criar novas funcionalidades dentro do seu Excel.

Isso quer dizer que você pode automatizar suas rotinas, pode resolver problemas que normalmente só o Excel poderia não resolver ou seria muito mais complicado só com os recursos que ele tem.

Ainda tem a parte de formulários, que pode basicamente criar um programa dentro do Excel!

Já deu pra ter uma noção melhor do VBA e como ele se relaciona com o Excel? Agora vamos ver como ele funciona na prática!

Como o VBA funciona?

Como o VBA é uma linguagem de programação, a ideia é que você utilize códigos para traduzir as ações que deseja executar dentro do Excel. Dessa forma o computador vai entender o que quer dizer e vai executar essas ações de forma correta.

Como se trata de uma linguagem de programação e estamos trabalhando diretamente com o Excel, é importante que o usuário tenha um conhecimento em Excel para que consiga executar as atividades de forma eficiente.

O VBA é como qualquer outra linguagem de programação, então vamos escrever os códigos e o computador vai traduzir isso para uma linguagem de máquina, ou seja, uma linguagem que ele entenda e consiga executar o que foi escrito.

Tudo o que você faz dentro do Excel você consegue fazer utilizando o VBA, só que nem tudo o que faz no VBA você consegue fazer no Excel!

Aqui já vem a primeira grande vantagem, existem algumas coisas, como automação de tarefas, que o Excel por si só não consegue fazer, mas com o uso do VBA você pode automatizar tarefas repetitivas e que acabam tomando muito do seu tempo.

O conhecimento em VBA permite com que você não só seja mais produtivo, mas que consiga desenvolver melhor as soluções em Excel.

Além disso, há a automação de muitas funções do dia a dia, assim, você e qualquer outro profissional ganha tempo de trabalho.

Vale lembrar que: mais minutos e horas livres é igual a mais produtividade.

Então, não tem como deixar de usar os recursos mais complexos do Excel, não é mesmo?

Por que aprender a programar em VBA?

Agora que você já conhece como funciona o VBA, o que é e como ele se integra com o Excel, deve estar se questionando o motivo para aprender a programar em VBA no Excel, não é mesmo?

Bom, nós já mencionamos que o Visual Basic for Applications automatiza rotinas e realiza tarefas que o Excel sozinho não consegue fazer. Esses são motivos suficientes, certo?

O VBA possui muitos recursos que podem turbinar suas planilhas. Ao aprender VBA você poderá:

  • Criar loops;
  • Utilizar matrizes ou arrays (grupos de variáveis);
  • Elaborar declarações IF/THEN para criar condicionais;
  • Criar diversos elementos como caixas de texto e de listagem, botões etc. com controles ActiveX;
  • Utilizar diversas funções, como o Range Object (representa uma ou mais células da planilha);
  • Criar macros (falaremos a seguir o que são essas instruções que automatizam funções dentro do programa).

São muitas as possibilidades de programação VBA, certo?

É importante destacar, ainda, que quando você sabe mais sobre VBA, o que é e como funciona, você se depara com duas formas de utilização desse recurso.

A primeira é escrever o código, o que demanda conhecimento da sintaxe da linguagem de programação.

A segunda é utilizar as próprias funções do Excel, o que facilita bastante o trabalho do usuário ao criar módulos e macros.

Sim, você pode utilizar as funções já existentes do Excel dentro do VBA para não ter que criá-las do zero!

Seja como for, ao usar o Visual Basic for Applications você criará planilhas poderosas, inclusive programas que realizam várias funções.

O que são Macros e como elas funcionam?

É possível que você já tenha ouvido falar em macros do Excel, certo? Mas o que são essas macros? Nada mais são do que códigos em VBA que vão executar uma tarefa!

Só que você já deve imaginar, que nem todo mundo conhece ou sabe programar em VBA. É por isso que temos um gravador de macros no Excel.

Ele te permite gravar as suas ações dentro do Excel e depois você pode simplesmente dar “play” nessa gravação para repetir o que foi feito, não é incrível?

Essa macro, nada mais é do que um código em VBA que o próprio Excel vai escrevendo a medida em que você vai executando suas ações. Então pode fazer o que faria normalmente, só que gravando essa ação!

E se eu criar várias macros? Tenha em mente que cada uma delas terá comportamento específico e autônomo em relação às outras. Seu objetivo não muda: executar as instruções que respondem às exigências do usuário.

A grande diferença entre gravar uma macro e programar diretamente no VBA é que a gravação de macro é um pouco limitada e você não consegue fazer atividades tão avançadas.

Por isso que a programação em VBA é interessante, pois te dá mais ferramentas para trabalhar!

Em outras palavras, cada macro que você criar dá origem a um procedimento ou rotina. Temos duas principais rotinas: sub-rotinas e funções.

Sub-rotinas

Sub-rotinas são rotinas delimitadas pelas palavras-chave Sub e End Sub.

Uma sub-rotina é designada pelo nome que você quiser atribuir a ela. Diferentemente das funções, ela não recebe parâmetros do exterior.

E quando eu faço uma programação no VBA com sub-rotinas? Quando você quiser uma macro para desempenhar um conjunto de instruções que compõem o seu corpo.

Quando você grava uma macro você vai ter uma sub-rotina, então é um código independente e vai executar apenas o que está dentro dele.

Mas fique atento! Cada instrução deve estar em uma linha diferente.

Funções

As funções são rotinas que começam com Function e terminam com End Function. Até então, a diferença entre elas e as sub-rotinas são as palavras delimitadoras.

Porém, além das palavras, as rotinas funções também precisam ser de um transporte de parâmetros para que sejam executadas corretamente.

Como assim? Quando você utiliza o PROCV no Excel por exemplo, você precisa inserir alguns argumentos, não é mesmo?

O PROCV é uma função, e dentro de programação não é diferente, então as funções podem precisar de argumentos para funcionar da forma correta.

Já imaginou você usar um PROCV sem passar nenhuma informação? Como o Excel saberia o que você está procurando?

Por isso que a maioria das funções precisam desses parâmetros, para saber o que será feito e as informações que serão utilizadas!

Aplicações com Visual Basic: veja 3 exemplos

Acredito que agora você já tenha uma noção do que é o VBA e como ele pode te auxiliar, então agora eu quero te mostrar 3 exemplos do que você pode fazer para que fique mais claro o que você pode fazer e como isso pode mudar o seu trabalho!

Exemplo 1: compilação de dados

Vamos supor que temos uma empresa que possui uma base de dados de seus clientes e queremos dividir esta planilha de base de dados em abas de acordo com o bairro dos clientes.

Ou seja, queremos filtrar todos os clientes do bairro Leblon e copiá-los para uma aba nova de clientes do bairro Leblon, todos do bairro Copacabana em outra aba e assim por diante para todos os bairros.

Base de dados VBA:

Base de dados VBA:

Este trabalho seria extremamente trabalhoso em Excel, especialmente para bases de dados muito grandes.

Você pode até falar, mas é só filtrar cada bairro, copiar os dados, criar uma nova planilha e colar esses dados. Sim, mas imagine que você tenha que fazer isso todos os dias para separar as informações ou que a quantidade de bairros seja grande.

Por isso, podemos criar uma macro, que é como são chamados os códigos em Visual Basic, que faça todo este trabalho, bastando ao usuário apenas clicar em um botão (“Rodar Compilação”, no exemplo) para que a macro seja executada.

Esse é um dos exemplos do VBA que mostram como podemos ser mais produtivos com o Visual Basic for Applications.

Selecionando o botão que executa a Macro:

Selecionando o botão que executa a Macro

Planilha após a execução da Macro:

Planilha após a execução da Macro

Assim, conseguimos com VBA economizar tempo e reduzir as chances de erro. Para visualizarmos o código em VBA que foi criado, basta selecionar ALT+F11 ou, caso não funcione, ALT+Fn+F11.

Visualização do Código no VBA:

Visualização do Código no VBA
Sub compilação()

linha = 1
linha_fim = Range("A1").End(xlDown).Row

Range("C2:C" & linha_fim).Copy
Range("J1").PasteSpecial
Application.CutCopyMode = False
ActiveSheet.Range("$J$1:$J$" & linha_fim).RemoveDuplicates Columns:=1, Header:= _
    xlNo
    
linha_fim = Range("J1").End(xlDown).Row
    
While linha <= linha_fim
    Sheets.Add After:=ActiveSheet
    ActiveSheet.Name = Sheets("Base de Dados").Cells(linha, 10)
    
    Sheets("Base de Dados").Range("A1:C1").Copy
    ActiveSheet.Range("A1").PasteSpecial
    
    linha = linha + 1
Wend

Sheets("Base de Dados").Range("J:J").Clear

linha = 2

While Sheets("Base de Dados").Cells(linha, 1) <> ""
    Sheets("Base de Dados").Range("A" & linha & ":C" & linha).Copy
    
    bairro = Sheets("Base de Dados").Cells(linha, 3)
    Sheets(bairro).Select
    Range("A10000").End(xlUp).Offset(1, 0).PasteSpecial
    Application.CutCopyMode = False
    
    Sheets("Base de Dados").Select

    linha = linha + 1
Wend

For Each aba In ThisWorkbook.Sheets
    aba.Columns("A:C").AutoFit
Next

End Sub

Viu como é incrível e como você pode facilitar o seu trabalho usando o VBA? Esse é um processo comum dentro das empresas, as vezes é necessário fazer uma separação de dados ou até juntar os dados em uma única planilha.

E com o VBA você pode automatizar esse processo sem perder horas fazer isso de forma manual, ainda mais se tiver que fazer isso quase todos os dias.

Já imaginou o tempo que você perderia todo o mês com uma atividade que pode ser resolvida de forma relativamente simples?

Exemplo 2: soma por cor

Antes de passarmos às dicas de VBA, vamos a mais um exemplo. Mostraremos que com o Visual Basic é possível fazer coisas que o Excel não faz.

Vejamos a planilha a seguir, onde cada célula tem uma cor e um número. Em uma empresa, cada cor pode ter um significado, sendo uma classificação, por exemplo. Queremos saber qual a soma dos números das células de cada cor.

Em alguns casos nós utilizamos cores dentro do Excel para chamar atenção para determinada informação, e com o VBA podemos fazer ainda mais completo para melhorar esse tipo de análise.

Soma de cores

O Excel não possui nenhuma fórmula que faça a soma de valores das células por cor. Criamos então uma fórmula utilizando VBA que tenha esta função.

Sim, como já comentei anteriormente, dentro do VBA você pode criar a sua própria fórmula personalizada! Então pode criar algo que ainda não exista dentro do Excel para facilitar o seu trabalho.

Fórmula SomaCores:

Fórmula SomaCores

Utilizando VBA foi possível criar a fórmula SomaCores, que utilizando como valores de entrada a célula com a cor a ser somada e a matriz tabela com os valores, retorna a soma dos valores das células de cada cor.

Veja que você pode utilizar essa fórmula/função da mesma forma que usa a SOMA, PROCV ou qualquer outra fórmula dentro do Excel.

Lembra quando falei dos argumentos da função? Aqui funciona da mesma maneira, criamos uma função que precisa da célula que vamos comparar e do intervalo onde faremos a análise.

Exemplo 3: criação de formulários usando VBA

Finalizando nossos exemplos, vamos para a criação de formulários interativos usando VBA. Se você já sabe a fundo sobre o VBA, tem uma ideia de como isso pode ser feito.

Lembra quando eu falei de criar sistemas dentro do Excel? Pois é, com os formulários isso é possível e você vai ver como isso é incrível.

Muitas vezes, alimentar nossa base de dados com novas informações pode ser um processo trabalhoso e bastante suscetível a erros, principalmente em bases de dados muito grandes. Por isso, podemos criar formulários utilizando Visual Basic que facilitem a alimentação dessas bases.

Além de facilitar o processo, deixá-lo automático, ainda facilita a vida de quem não tem muita experiência com o Excel. Então são vários benefícios

No nosso exemplo, temos uma base de dados de funcionários de uma empresa e criamos um formulário que permite a inserção de novos funcionários, já colocando estes novos dados em ordem alfabética e na formatação correta. É possível também excluir dados da base de maneira simplificada.

Planilha Base Funcionários:

Planilha Base Funcionários

Veja que temos 2 “botões” dentro do arquivo em Excel, que são as formas onde atribuímos as macros, ou seja, podemos atribuir os nossos códigos aos botões do Excel para facilitar na hora de usar essas automações.

Formulário cadastro funcionários VBA:

Formulário cadastro funcionários VBA

Ao clicar em novo funcionário, nós temos um formulário com as informações de cadastro desse formulário (que é totalmente personalizável). Então podemos inserir campos de texto, campos de seleção, botões e muito mais!

Nesse caso temos exatamente as mesmas informações que temos na planilha, dessa forma fica muito mais fácil para o usuário saber onde vai preencher cada informação sem ter que alterar na planilha diretamente.

Como você deve saber, esse tipo de interação direta com a planilha pode fazer com que o usuário possa inserir informações erradas e até alterar as informações que já foram registradas.

Formulário exclusão de funcionários:

Formulário exclusão de funcionários

E aí conseguiu entender como o VBA pode te ajudar no seu dia a dia? Você pode fazer isso e muito mais com o VBA. São inúmeras as possibilidades.

Fora que você pode impressionar no seu trabalho não só pelo que construiu, como com a eficiência do seu trabalho, até porque, você vai ter mais tempo para fazer outras atividades!

Como usar o VBA no seu trabalho? 3 dicas práticas

Você já viu exemplo, aplicações, mas ainda pode ter a dúvida de como que eu uso o VBA, por onde acesso, preciso instalar alguma coisa?

Vamos, finalmente, às dicas de VBA! É hora de, enfim, colocar a mão na massa.

Veja o que você deve fazer com essa ferramenta!

1. Ative o VBA no Excel

Sem dúvidas, o Excel é um mundo de possibilidades, mas, primeiramente, tudo precisa ser ativado. No caso do VBA, isso não é diferente. Não basta saber sobre VBA, o que é e como funciona. É preciso ativar o recurso.

Então, a sua primeira tarefa é clicar em “Arquivos”, depois, em “Opções” e “Personalizar faixas de opções”.

Na segunda janela que aparece, clique em “Desenvolvedor” e dê o “Ok”.

Habilitando a guia Desenvolvedor:

Habilitando a guia Desenvolvedor:

Feito isso já é possível acessar essa nova guia e abrir o ambiente VBA através dela ou utilizando o atalho ALT + F11 (ou ALT + FN + F11).

Opção para abrir o ambiente VBA:

Opção para abrir o ambiente VBA:

2. Seja curioso e pratique o máximo possível

Nós sempre dizemos que, não basta você dominar todas as teorias de Excel, a prática também é fundamental.

Sendo assim, explore o maior número de funções, tente implementar as macros e ver como tudo isso transforma o seu dia a dia.

Quanto mais você mexer, mais rápida será a sua evolução no programa.

Lembrando também que saber Excel é um conhecimento básico para muitos negócios e empresas.

Para essa parte, uma coisa bem interessante que você pode fazer é utilizar a ferramenta Gravar Macro, pois com ela, o Excel vai gravar suas ações feitas e vai transformá-las em VBA.

Com isso, você já começa a ter uma noção do que cada comando faz dentro do VBA. Pode até fazer algumas alterações no VBA e ver como isso impacta o resultado dentro do Excel.

É uma excelente forma de começar a explorar!

3. Incentive treinamentos e troque informações

Se no seu trabalho, as pessoas ainda não usam o VBA, é claro que todos os times precisarão se adequar, certo?

Para isso, nada melhor do que promover treinamentos em forma de workshops, por exemplo, ou disponibilizar cursos on-line de VBA.

Inclusive, aqui na Hashtag Treinamentos, nós temos um Curso Completo de VBA para Excel, então é uma excelente oportunidade de aprender e trazer para a sua empresa esse conhecimento que pode aumentar bastante a produtividade do seu setor!

Independentemente de qual seja o método usado, procure sempre trocar informações… O networking soma à carreira de todos os profissionais.

Mais do que isso, faz toda empresa deslanchar.

Ao aprender conceitos sobre VBA, o que é e quais são suas aplicações práticas, você conseguirá realizar rotinas de maneira simplificada e fazer coisas que não são possíveis no Excel.

Conclusão

Nesse artigo eu te expliquei o que é o VBA, como ele pode te auxiliar nas suas atividades dentro do Excel e até alguns exemplos práticos que você pode uilizar no dia a dia!

Agora que você já tem esse conhecimento, pode começar a explorar o VBA agora mesmo no seu Excel, lembrando que você não precisa fazer nenhuma instalação adicional para utilizar essa linguagem de programação.

Basta habilitar a guia Desenvolvedor e começar seus estudos! Pode começar pelo nosso curso online ou gravando algumas ações dentro do Excel e analisando o código VBA que é gerado para cada ação!

Vou deixar algumas sugestões aqui de artigos para que você possa continuar se aprofundando nos estudos de VBA!

Hashtag Treinamentos

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


Quer aprender mais sobre VBA com um minicurso básico gratuito?

Outros Artigos de VBA

Artigos mais recentes da Hashtag Treinamentos