Estrutura do Código VBA no Excel: Entendendo Sub, Variáveis e Comentários

A estrutura básica de uma macro em VBA é sempre um bloco que começa com Sub NomeDaMacro() e termina com End Sub — entre essas duas linhas ficam os comandos que o Excel executa em ordem, de cima para baixo, podendo declarar variáveis com Dim e incluir comentários (linhas iniciadas por um apóstrofo ) que o Excel ignora completamente ao rodar o código.

Você já abriu o editor VBA do Excel pela primeira vez, viu um código pronto (seu ou copiado da internet) e travou diante de palavras como Sub, Dim, End If, sem entender qual é a função de cada uma dentro daquele bloco de texto?

Sem entender a estrutura básica do código, cada macro nova vira um exercício de copiar e colar sem saber exatamente o que ajustar quando algo não funciona como esperado, e qualquer erro de digitação parece um mistério indecifrável.

Neste artigo iremos mostrar as três janelas principais do editor VBA, a estrutura Sub/End Sub que envolve toda macro, como declarar variáveis com Dim, como comentar o código e como executar e testar uma macro passo a passo.

DOMINE EXCEL COMIGO

QUERO APRENDER EXCEL

As três janelas principais do editor VBA

Ao abrir o editor VBA (atalho Alt+F11), três áreas organizam o ambiente: o Project Explorer, à esquerda, lista todas as pastas de trabalho abertas e seus módulos, planilhas e formulários; a janela de Propriedades, abaixo dele, mostra as propriedades do item selecionado (nome, cor, visibilidade); e a janela de código, ocupando a maior parte da tela, é onde o código VBA é efetivamente escrito e editado. Para ver o passo a passo detalhado de como inserir um módulo novo dentro desse ambiente, veja o artigo sobre como acessar o editor VBA e inserir um módulo.

O bloco Sub … End Sub

Toda macro (também chamada de procedimento ou sub-rotina) começa com a palavra Sub, seguida do nome escolhido para ela e parênteses vazios — por exemplo, Sub FormatarRelatorio() — e termina obrigatoriamente com End Sub. Tudo o que está escrito entre essas duas linhas é executado pelo Excel, de cima para baixo, uma instrução por vez, quando a macro é chamada.

Linha Código O que faz
1 Sub FormatarRelatorio() Início da macro, define o nome
2 Range(“A1”).Value = “Relatório” Escreve um texto na célula A1
3 Range(“A1”).Font.Bold = True Deixa o texto em negrito
4 End Sub Fim da macro

Declarando variáveis com Dim

Uma variável é um espaço reservado na memória para guardar um valor temporário durante a execução da macro — um número, um texto, ou uma referência a uma célula. Ela é declarada com a palavra Dim, seguida do nome escolhido e, opcionalmente, do tipo de dado que ela vai guardar: Dim total As Double cria uma variável chamada total, preparada para guardar um número com casas decimais. Embora o VBA funcione mesmo sem declarar variáveis, declarar com Dim ajuda o Excel a avisar sobre erros de digitação no nome da variável mais adiante no código.

Tipos de variável mais usados

Tipo Guarda Exemplo
String Texto Dim nome As String
Integer Número inteiro pequeno Dim contador As Integer
Long Número inteiro grande Dim linha As Long
Double Número com casas decimais Dim total As Double
Boolean Verdadeiro ou Falso Dim ativo As Boolean
Variant Qualquer tipo de dado Dim valor As Variant

Na prática, Long costuma ser preferido a Integer para contar linhas de planilha, já que uma planilha do Excel tem mais de um milhão de linhas — um número maior do que o Integer consegue armazenar sem gerar erro.

Comentários no código

Qualquer linha (ou parte de uma linha) que comece com um apóstrofo é um comentário — o Excel simplesmente ignora esse trecho ao executar a macro. Comentários servem para explicar, em português claro, o que uma parte do código faz, facilitando a manutenção meses depois: ‘ Esta linha limpa a coluna A antes de preencher os dados novos.

Indentação e legibilidade

Embora o VBA não exija indentação (espaços no início da linha) para funcionar, usar espaços ou tabulações para deslocar o código dentro de estruturas como If…End If ou For…Next deixa muito mais fácil enxergar onde cada bloco começa e termina, especialmente em macros mais longas com várias estruturas aninhadas.

Estruturas de decisão e repetição

Além do bloco Sub/End Sub, duas estruturas aparecem na maioria das macros: a estrutura condicional If…Then…End If, que executa um trecho de código só quando uma condição é verdadeira, e os loops (laços de repetição), que executam o mesmo trecho de código várias vezes. Como o assunto de loops é extenso por si só, ele é tratado em detalhe no artigo sobre como usar loops no VBA: For, For Each e Do While.

Executando e testando o código

Com o cursor dentro do bloco Sub/End Sub, a tecla F5 executa a macro inteira de uma vez. Para acompanhar linha por linha (útil quando algo não funciona como esperado), a tecla F8 executa um comando por vez, destacando em amarelo a linha que será executada a seguir. A Janela Imediata (atalho Ctrl+G) permite testar comandos avulsos e ver o valor de uma variável no meio da execução, digitando ?nomeDaVariavel e pressionando Enter.

Erros comuns para quem está começando

Esquecer o End Sub no final de uma macro, ou o End If no final de uma condição, gera um erro de compilação assim que a macro é executada. Outro erro frequente é confundir o sinal de igual usado para atribuir um valor (total = 10) com o sinal de igual usado para comparar dentro de um If (If total = 10 Then) — na sintaxe do VBA, o mesmo símbolo serve para os dois casos, mas o contexto (dentro ou fora de um If) muda o que ele significa.

Disponibilidade

O editor VBA e a estrutura de código descrita neste artigo estão disponíveis em todas as versões do Excel para Windows e Mac que suportam macros (Excel 2007 em diante). O Excel Online e o Google Sheets não têm um editor VBA nativo — o Google Sheets usa uma linguagem diferente, o Apps Script, baseada em JavaScript.

Perguntas frequentes

Preciso sempre declarar as variáveis com Dim antes de usá-las?

Não é obrigatório por padrão, mas é uma boa prática. Adicionando a linha Option Explicit no topo do módulo, o Excel passa a exigir a declaração de toda variável com Dim, o que ajuda a identificar erros de digitação no nome delas antes mesmo de rodar a macro.

Qual a diferença entre um comentário e uma linha de código desativada?

Não há diferença técnica — colocar um apóstrofo no início de uma linha de código existente também a transforma num comentário, efetivamente desativando aquele comando sem precisar apagá-lo, uma técnica útil para testar variações de uma macro.

O que acontece se eu esquecer o End Sub no final da macro?

O VBA aponta um erro de compilação assim que você tenta rodar ou fechar o editor, indicando que o procedimento Sub está incompleto. Toda macro precisa ter exatamente um End Sub correspondente ao Sub que a abriu.

Veja também: VBA no Excel para Iniciantes: Guia Completo para Começar do Zero e Como Acessar o Editor VBA no Excel e Inserir um Módulo.

Compartilhe ou Comente

Se você curtiu esse artigo aonde mostramos a estrutura básica do código VBA no Excel, incluindo o bloco Sub/End Sub, a declaração de variáveis com Dim, os comentários com apóstrofo e como executar o código passo a passo, compartilhe com as suas redes sociais e não se esqueça de deixar um comentário aqui embaixo caso você tenha ficado com alguma dúvida.

Você já travou numa macro copiada da internet sem entender o que cada linha fazia? Prefere testar o código de uma vez com F5 ou passo a passo com F8? Conta para nós nos comentários!

Deixe um comentário

O seu endereço de e-mail não será publicado. Campos obrigatórios são marcados com *