Alura > Cursos de Data Science > Cursos de Excel > Conteúdos de Excel > Primeiras aulas do curso VBA: automatizando tarefas diárias sem ser Dev

VBA: automatizando tarefas diárias sem ser Dev

Começando a jornada - Apresentação

Olá! Eu sou o Roberto Sabino, instrutor na Alura, e estou aqui para começarmos a aprender a automatizar tarefas com VBA, como, por exemplo, pegar uma planilha, teclar "Ctrl + Shift + R", formatar, limpar os dados e deixar tudo pronto para ser usado pelo pessoal da ByteBank.

Audiodescrição: Roberto se descreve como um homem de pele clara, cabelo e barba escuros, com alguns fios grisalhos, e olhos castanho-escuros. Ele veste uma camiseta lisa escura, está sentado em uma cadeira preta, e a parede atrás dele também é lisa, iluminada em degradê azul.

Este será um curso muito interessante! Talvez o VBA seja o que mais gostamos de usar no dia a dia, porque além de resolver vários problemas, também traz um efeito wow nas nossas soluções.

O que vamos aprender?

O objetivo do curso é ensinar a pegar uma planilha bagunçada, teclar "Ctrl + Shift + R" e arrumar tudo. Evidentemente, faremos isso com o VBA.

Precisamos aprender um pouco de programação, mas vamos fazer tudo isso parecer muito fácil. Tenha certeza que, mesmo que você já tenha tentado aprender o VBA e tenha tido dificuldade, vamos fazer de uma maneira diferente, mais fácil e tranquila. Com certeza, esperamos ter você conosco neste curso.

Durante o curso, vamos aprender os fundamentos do VBA, os principais comandos, e como organizar os códigos para obter esse resultado.

Este curso foi desenvolvido para ter uma aprendizagem ativa. Então, desde o primeiro momento, você irá entrar em contato com esse conhecimento e poderá usá-lo no seu dia a dia.

Você também terá acesso ao fórum e ao Discord, onde poderá interagir.

Conclusão

Temos certeza que este curso chama a atenção e você vai querer aprender conosco. Então, prepare-se, e vamos para a aula 1, porque temos muita coisa para fazer. Prometemos que tudo será bem explicado e você conseguirá acompanhar. Vamos colocar a mão na massa?

Começando a jornada - Conhecendo o projeto

Imagine que trabalhamos em uma fintech chamada ByteBank, e essa fintech usa dados para gerar relatórios para as pessoas clientes.

O chefe nos informa que, todas as manhãs, precisamos coletar uma base de dados do saldo investido das pessoas clientes, e ajustar essa base, porque outra área usará esses dados para gerar um relatório.

A nossa parte da tarefa é realizada no Excel, pois a outra área também usará o Excel para manipular os dados. Lembrando que isso precisa ser feito todos os dias. Portanto, essas são as principais condições para usarmos o VBA:

  1. Usar o Excel;
  2. E saber que é uma tarefa repetitiva.

Podemos fazer isso de várias maneiras diferentes: podemos usar o Power Query, ou o Power Pivot, por exemplo. Já vimos no curso de Business Intelligence com Excel que é possível fazer dessas maneiras. Também podemos fazer com funções, entre várias outras formas diferentes, mas a maneira que mais gostamos é o VBA, porque o resultado é muito interessante.

Conhecendo o projeto

Temos a seguinte planilha:

ID_ClienteClientesTotal InvestidoE-mail Interno Cliente
1001N#ome Cliente 1001R$ 25,000.00**
1002##Nome C#lie$nte 1002R$ 55,500.00**
1003****Nome Cliente 1003R$ 28,250.00**
1004No&me Cliente# 1004R$ 34,900.00**
1005Nome$ Clie#nte 1005R$ 43,290.00**
1006##Nome Cliente 1006R$ 35,000.00**
1007Nome Cliente 1007**R$ 12,900.00**
1008Nome C&liente 1008R$ 21,150.00**
1009%Nome Cliente 1009R$ 12,900.00**

Recebemos os dados todas as manhãs, e a partir deles, simplesmente geramos a planilha revisada:

ID_ClienteClientesTotal InvestidoE-mail Interno Cliente
byte_1001Nome Cliente 1001R$ 25.000,00byte_1001@bytebank.com.br
byte_1002Nome Cliente 1002R$ 55.500,00byte_1002@bytebank.com.br
byte_1003Nome Cliente 1003R$ 28.250,00byte_1003@bytebank.com.br
byte_1004Nome Cliente 1004R$ 34.900,00byte_1004@bytebank.com.br
byte_1005Nome Cliente 1005R$ 43.290,00byte_1005@bytebank.com.br
byte_1006Nome Cliente 1006R$ 35.000,00byte_1006@bytebank.com.br
byte_1007Nome Cliente 1007R$ 12.900,00byte_1007@bytebank.com.br
byte_1008Nome Cliente 1008R$ 21.150,00byte_1008@bytebank.com.br
byte_1009Nome Cliente 1009R$ 12.900,00byte_1009@bytebank.com.br

O mais interessante de tudo é que, se precisarmos fazer de novo, podemos fazer. Se a planilha estiver um pouco diferente, não tem problema. Funciona do mesmo jeito. Evidentemente, precisamos criar um VBA que seja mais adequado à sua situação e tudo funcionará conforme esperado.

Você pode pensar que isso é muito complexo, que precisa criar um monte de código. Porém, ao observar o código dessa planilha, notamos ser um código simples e já com um bom resultado.

É o melhor código? Não exatamente. Ao longo deste curso, vamos aprender a fazer este código, e além disso, um código ainda melhor, mais flexível e fácil de manter, porque abordaremos isso passo a passo.

Combinados importantes

Se você já fez curso com este instrutor aqui na Alura, já sabe que temos nossos combinados especiais, e neste curso precisamos fazer alguns combinados muito importantes. O primeiro deles é que vamos trabalhar do zero, ou seja, você não precisa saber nada de VBA, apena sobre Excel.

Segundo combinado importante: se você já sabe VBA, cuidado! Às vezes, você acha que sabe muito do VBA, mas sabe só uma parte. Então, é bom assistir todas as aulas, mesmo que em uma velocidade mais rápida.

Outro ponto: este é apenas o primeiro passo da formação, então vamos devagar. O VBA pode trazer alguns desafios para muitas pessoas estudantes, porque precisamos aprender lógica de programação, comandos novos, já que os comandos são em inglês, mas faremos isso de uma forma que ficará muito fácil.

Além desses combinados, queremos fazer mais um que também é importante. Pode ser que você tenha algumas dúvidas sobre o VBA e pense o seguinte: "Estamos na era da inteligência artificial. Não vale mais a pena aprender a fazer VBA, porque é só deixar a inteligência artificial resolver para nós". Isso não é exatamente verdade, mas há, sim, um pouco de verdade no meio.

Deixamos o Copilot aberto para conversarmos com ele. Outro combinado importante: nós não vamos trabalhar inteligência artificial neste curso. Porém, queremos mostrar e explicar por quê.

Conversando com o Copilot

Por exemplo: vamos pedir para ele fazer uma parte do código com um prompt.

Você percebeu que quando formatamos a planilha original, no final, ela teve um formato de tabela? Se você já fez a nossa formação em Excel, sabe que o resultado foi uma tabela. Afinal, quando temos a aba "Design da Tabela", é porque realmente o intervalo selecionado está formatado como tabela.

Vamos começar a conhecer alguns conceitos interessantes? Primeiramente, o VBA não é uma linguagem que só existe no Excel. Tem VBA no Excel, no Outlook, no PowerPoint, no Word. São todos iguais? Na verdade, não. É a mesma linguagem e conseguimos usar, mas os conjuntos de objetos são diferentes.

Descobriremos o que são objetos ao longo do curso.

Com o prompt, pediremos um código em VBA Excel. A partir da inteligência artificial, vamos continuar construindo o prompt de modo a fazer o formato de tabela exibido anteriormente.

Esse código em VBA Excel servirá para formatar o range da planilha. Quando usamos Excel, falamos em células, e às vezes falamos em intervalos. No VBA, vamos falar de range, porque em inglês, "range" significa "intervalo", mas pode ser um intervalo ou uma única célula.

Range é um objeto que representa uma célula ou um intervalo.

Qual é o range da nossa tabela no momento? De A1 até D10. Faremos o mesmo no prompt: o código VBA Excel será para formatar um range de A1 até D10 como tabela e colocar o nome como "Tabela 1".

Crie um código em VBA Excel para formatar um range de A1 até D10 como tabela e coloque o nome como "Tabela 1".

Não se preocupe com qual é a inteligência artificial. Se você prefere Copilot, ChatGPT, Bard, ou outra específica, não tem problema. A lógica é a mesma e o que queremos dizer é que sim, a inteligência artificial pode gerar o código para nós. Nesse caso, o retorno foi o seguinte:

Sub FormatTable()
    Dim tbl As ListObject
    Set tbl = ActiveSheet.ListObjects.Add(xlSrcRange, Range("A1:D10"), , xlYes)
    tbl.Name = "Tabela 1"
End Sub

Vamos copiar esse código e fazer uma comparação com o código que temos no projeto. Caso ainda não esteja entendendo, tenha calma, pois vamos abordar tudo sem pressa.

Queremos que você já se acostume com esses códigos, porque algumas pessoas estudantes, às vezes, ficam preocupadas. Vamos entender tudo isso ao longo do curso de forma bem simples.

O objetivo é comparar os seguintes trechos de código:

Código do projeto

ActiveSheet.ListObjects.Add(xlSrcRange, Range("$A$1:$D$10"), , xlYes)

Código da inteligência artificial

ActiveSheet.ListObjects.Add(xlSrcRange, Range("A1:D10"), , xlYes)

Note que interessante como são parecidos, ou seja, a inteligência artificial irá simplesmente automatizar ou ser um acelerador naquilo que podemos fazer por conta própria.

Agora, imagine que a inteligência artificial gerou para nós um código que não funciona e não temos a menor noção do que acontece. Nesse caso, não adiantar ter inteligência artificial. Talvez leve muito tempo para conseguir fazer a IA responder qual é o problema e fazer isso funcionar.

Conclusão

Neste curso, queremos dar o ferramental e a base para que, posteriormente, possamos começar a usar a inteligência artificial. Queremos que você tenha a base de VBA, a base de lógica de programação, queremos que você entenda o que fazemos, porque, sim, você vai usar a VBA.

Você não fará códigos manualmente como acabamos de fazer, ou seja, poderá usar a inteligência artificial. Entretanto, começaremos do básico, entendendo as bases, como o que é uma variável, o que é uma repetição, o que é um For, o que é um Do…Loop, entre vários outros conteúdos.

Vamos devagar, aprendendo o passo a passo, sem usar inteligência artificial neste curso, e aprendendo a fazer um tratamento de dados muito legal, bem feito, e além disso, muito rápido.

Começaremos a colocar a mão na massa no próximo vídeo!

Começando a jornada - Editor VBA

Vamos entender algumas informações importantes sobre o VBA?

Editor VBA

Primeiramente, o VBA é uma linguagem proprietária da Microsoft. Isso significa que, se você usa o Google Planilhas (Google Sheets), não poderá usar o VBA.

Poderá surgir a seguinte questão: "Normalmente, eu uso o Google Planilhas, mas quero aprender o VBA. Nesse caso, posso usar o Excel Online?". Na verdade, o VBA não é compatível com o Excel Online.

O Excel Online possui uma aba chamada "Automate". Essa não é a aba do VBA, mas sim uma aba de automação com scripts, que embora seja interessante e permita fazer coisas semelhantes ao VBA, não é o VBA e não será abordado neste curso.

Existe também a opção "Automate Work" na aba "Automate", para usar o Power Automate, mas novamente, não é possível usar VBA. Caso se tente usar o VBA, criando uma planilha com VBA e tentando abri-la com o Excel Online, as macros não serão habilitadas, pois não funcionam.

Para seguir este curso, é necessário ter o aplicativo Excel instalado na máquina.

Outro ponto importante: se você abrir o Excel e não encontrar a aba "Desenvolvedor", não há problema. Basta clicar com o botão direito sobre as guias na parte superior, selecionar a opção "Personalizar a Faixa de Opções…", e na janela que será aberta, procurar pela opção "Desenvolvedor".

Se essa opção não estiver habilitada, basta marcar a caixa de seleção à esquerda de "Desenvolvedor" para habilitá-la. A partir disso, a aba "Desenvolvedor" aparecerá e poderemos usar as macros e o VBA.

Começando a trabalhar com o VBA

No último curso da formação básica de Excel, explicamos a diferença entre VBA e macro. VBA é a linguagem utilizada pelo Excel para fazer automações. Macro é a automação em si, que pode ser feita sem olhar para o VBA. Este é um curso de VBA, no qual iremos examinar e trabalhar com a linguagem.

Para começar a trabalhar com o VBA, na aba "Desenvolvedor", encontraremos a opção "Visual Basic" à esquerda, correspondente ao editor Visual Basic.

Ao clicar nessa opção, seremos redirecionados para uma aba diferente que não é o Excel. É um ambiente distinto. Se pressionarmos "Alt + Tab", conseguimos alternar entre o Excel e o editor do Visual Basic.

Neste ponto, temos uma planilha já desenvolvida, com o código aberto. Vamos fechar essa planilha para sair do editor do Visual Basic. Na planilha, encontramos o Solver (SOLVER.XLAM), que está habilitado como um complemento, e a aba de planilha pessoal de macros (VBAProject (PERSONAL.XLSB)).

Esses dois itens podem ou não aparecer para você. O que deve aparecer obrigatoriamente é a sua pasta de trabalho, neste caso, a pasta 1 (VBAProject (Pasta1)).

Todo o conteúdo que aparece no menu lateral esquerdo do Visual Basic é o projeto em que vamos trabalhar na nossa planilha para inserir o VBA.

Conhecendo os objetos

Falamos anteriormente sobre objetos. Por exemplo: nossa pasta de trabalho é um objeto, nossa planilha é um objeto, nossa célula é um objeto. Simplificando: tudo no Excel é objeto. Se observarmos, há uma pasta Microsoft Excel Objetos dentro da pasta 1 do projeto. Logo na sequência, temos a pasta de trabalho (EstaPastaDeTrabalho) e a planilha (Planilha1).

Se criarmos mais duas planilhas, por exemplo, o que acontecerá? Teremos a pasta de trabalho (EstaPastaDeTrabalho), Planilha1, Planilha2, e Planilha3. Estes são nossos objetos do Excel.

Por enquanto, vamos entender os objetos como todas as partes do Excel. Esse é o nosso objetivo de automação, ou seja, a partir disso, iremos criar as automações.

Inserindo um módulo

Para finalizar essa preparação e começarmos a codificar, geralmente, usamos um módulo. O que é um módulo? É uma folha em branco para escrevermos o nosso código.

Observe que não conseguimos editar inicialmente; há apenas uma tela cinza no centro. Se você está começando no VBA, pode pensar que não é possível usar assim, mas antes precisamos inserir um módulo. Portanto, na barra de menu superior, vamos clicar em "Inserir > Módulo".

Cuidado: não use a opção "Módulo de classe", e sim "Módulo".

Feito isso, temos uma folha em branco e podemos começar a escrever o código. Entretanto, podemos escrever qualquer coisa que quisermos? Vamos testar, por exemplo, qualquer coisa que eu queira.

Ao executar, haverá um erro, porque agora entramos em um ambiente de programação, isto é, um ambiente de código, e ele espera que façamos coisas que ele consiga entender.

É como conversar com uma inteligência artificial que só entenda algumas palavras. Precisamos descobrir qual é a palavra que essa inteligência artificial entende, fazendo uma analogia.

Em um ambiente de programação, existe algo chamado sintaxe. A sintaxe é como escrevemos para esse ambiente de programação entender e executar o que pedimos.

Conclusão

É isso que faremos ao longo deste curso, devagar, seguindo o passo a passo. Você irá aprender muita coisa e será muito interessante. No próximo vídeo, já começaremos a executar comandos!

Sobre o curso VBA: automatizando tarefas diárias sem ser Dev

O curso VBA: automatizando tarefas diárias sem ser Dev possui 186 minutos de vídeos, em um total de 45 atividades. Gostou? Conheça nossos outros cursos de Excel em Data Science, ou leia nossos artigos de Data Science.

Matricule-se e comece a estudar com a gente hoje! Conheça outros tópicos abordados durante o curso:

Aprenda Excel acessando integralmente esse e outros cursos, comece hoje!

Conheça os Planos para Empresas