Programação de macros no Excel: o guia passo a passo completo

Última atualização: 29 agosto, 2025
  • Macros automatizam ações repetitivas no Excel, reduzindo erros e economizando tempo.
  • Você pode criá-los com o gravador e melhorá-los com VBA para maior flexibilidade.
  • Use referências relativas para acomodar diferentes intervalos e evitar etapas redundantes.
  • Salve como .xlsm e gerencie a segurança para executar macros com confiança.

Macros no Excel e como programá-las

Se você se vê realizando as mesmas tarefas repetidamente no Excel, as macros são suas melhores amigas para economizar tempo. Com elas, você pode automatizar sequências inteiras de ações (saiba mais sobre programação VBA ), desde formatação e importação de dados até a realização de cálculos, e executá-las quando quiser com um clique ou um atalho de teclado.

Ao criar uma macro, o Excel grava seus cliques e pressionamentos de teclas e os reexecuta fielmente. Você pode então ajustar o código para otimizar a execução e consultar os recursos do Excel . É comum começar com o gravador de macros e depois refiná-lo com VBA, obtendo maior controle, flexibilidade e zero erros por descuido.

O que exatamente é uma macro no Excel?

Uma macro é uma lista de instruções que o Excel executa em uma ordem definida . Pode ser algo simples como aplicar um estilo de porcentagem ou algo complexo como preparar um relatório com tabelas dinâmicas , formatá-lo, criar planilhas e enviar um e-mail no Outlook. As macros são salvas na sua pasta de trabalho e podem ser executadas sempre que necessário.

Você não precisa saber programar para começar: o gravador traduz suas ações em código VBA. Mesmo assim, algum conhecimento de VBA permitirá que você crie funções personalizadas, formulários e até mesmo miniaplicativos no Excel.

Por que usar macros? Vantagens reais

O principal objetivo de uma macro é evitar tarefas repetitivas e minimizar erros . Se você prepara o mesmo relatório todos os meses, uma macro irá poupá-lo das etapas mecânicas e permitirá que você se concentre no que é importante.

Entre os benefícios, destacam-se a economia de tempo, a execução consistente (sem etapas omitidas) e a possibilidade de criar atalhos e botões para agilizar processos . Se você usa o Excel apenas ocasionalmente, talvez não valha a pena; mas se o utiliza diariamente, notará a diferença desde o primeiro dia.

Habilitar a aba Desenvolvedor (Windows e Mac)

A guia Desenvolvedor fica oculta por padrão. No Windows, clique com o botão direito do mouse na faixa de opções e selecione "Personalizar a Faixa de Opções". Marque a opção "Desenvolvedor" e clique em OK. Depois disso, você verá a guia Desenvolvedor ao lado de Exibir.

No Mac, acesse Excel > Preferências > Barras de Ferramentas e Faixa de Opções. Em "Guias Principais", selecione "Desenvolvedor" e salve. Isso lhe dará acesso ao gravador, VBA e controles . Se você for iniciante no Excel, consulte o guia básico do Excel para se familiarizar com a faixa de opções e suas opções.

Como criar macros com o Recorder

O gravador é perfeito para começar. Em Desenvolvedor > Gravar Macro (ou Alt+T+M+R no Windows), atribua um nome descritivo. Lembre-se: o nome deve começar com uma letra, sem espaços ou símbolos.

Escolha onde salvar: "Esta pasta de trabalho" funcionará na maioria dos casos. Se você quiser mantê-la sempre disponível, selecione "Pasta de trabalho de macros pessoal" e o Excel a criará/salvará em Personal.xlsb , que será aberta oculta com o Excel.

Opcionalmente, adicione um atalho. Para evitar conflitos (por exemplo, perder a combinação Ctrl+Z), recomenda-se usar atalhos com Ctrl+Shift. Você também pode escrever uma descrição curta e clara (muito útil quando você tem muitas macros).

Clique em OK e execute as ações que deseja gravar. Por exemplo: selecione A1 e aplique o formato "Porcentagem". Evite cliques desnecessários ou alterações de seleção que não façam parte do processo pretendido, pois o gravador registra praticamente tudo.

  Como excluir fotos duplicadas no Android passo a passo

Ao terminar, pare a gravação. Para executá-la, acesse Desenvolvedor > Macros (ou Alt+F8), selecione sua macro e clique em Executar. Você verá o Excel repetir os passos exatamente na mesma ordem.

Execute, edite e gerencie suas macros

Em Desenvolvedor > Macros (Alt+F8), você pode executar, editar ou excluir macros. Se escolher Editar, o Editor do Visual Basic será aberto com o código gravado, que você pode limpar e otimizar (frequentemente inclui etapas redundantes).

Atribuir uma macro a um botão ou forma é muito prático: insira uma forma, clique com o botão direito > Atribuir Macro, escolha a macro e pronto. Ao clicar na forma, ela será executada instantaneamente.

Para mantê-lo sempre disponível na Barra de Ferramentas de Acesso Rápido, abra o menu da barra de ferramentas (seta para baixo) > Mais Comandos > em "Comandos disponíveis em", escolha "Macros", adicione o seu e altere o ícone, se desejar. Agora você terá um botão permanente mesmo quando não estiver no Modo Desenvolvedor.

Se precisar reutilizar a macro em outra pasta de trabalho, você pode copiar o módulo do Editor do Visual Basic. Abra o VBE (Alt+F11), arraste o módulo para a outra pasta de trabalho aberta ou use a opção Exportar/Importar arquivo .bas.

Programação de macros no Excel com o Editor Visual Basic (VBA)

Para ir além do gravador, abra o Editor com Alt+F11. Insira um Módulo (Inserir > Módulo) e crie sua primeira sub-rotina. O padrão básico é Sub Nome() … End Sub.

Por exemplo, para exibir uma mensagem e escrever um valor na célula A1, você pode começar com algo simples. Dessa forma, você entende a estrutura e como chamar a macro do Excel (Alt+F8) ou atribuí-la a um botão, com pouquíssimas linhas de código.

Sub Primera_Macro()
    Range("A1").Value = "Esto de las macros mola."
    MsgBox "Hola, querido amigo."
End Sub

Outro exemplo rápido de como aplicar o estilo de porcentagem à seleção atual. Esta macro replica o que você fez com o gravador , mas digitada diretamente:

Sub FormatoPorcentaje()
    Selection.Style = "Percent"
End Sub

A combinação ideal é: gravar para agilizar o processo e, em seguida, abrir o VBE para eliminar etapas desnecessárias, adicionar variáveis, condições ou loops. Dessa forma, você transforma uma gravação "literal" em uma macro robusta e reutilizável.

Referências absolutas vs. relativas

Por padrão, o gravador cria macros no modo absoluto: ele sempre atua nas mesmas células (por exemplo, B3), independentemente de onde você esteja no momento da execução. Se os dados mudarem de posição no seu processo, isso pode não ser o que você precisa.

Com a opção "Usar referências relativas", a macro funciona em relação à célula ativa no momento da execução. Por exemplo, se você começou a gravar na célula B3 e digitou "Nome", "Sobrenome", etc., movendo-se para a direita, ao executar a partir da célula C4, ela digitará as mesmas informações em relação às células C4, D4, E4, etc.

Um exemplo típico: adicionar títulos a uma tabela que às vezes começa na célula B3 e às vezes na célula C5. No modo absoluto, o texto seria sempre escrito na célula B3. No modo relativo, ele se adaptará à célula inicial selecionada.

Erros comuns ao registrar processos

Um erro comum é gravar uma fórmula "arrastar" por, digamos, três linhas, e pensar que ela funcionará para tabelas maiores. O gravador registrará algo equivalente a " preencher três células para baixo ", e não "até o final da tabela".

A solução é mudar sua abordagem: use intervalos dinâmicos (por exemplo, detectando a última linha), loops ou o método CurrentRegion, ou ajuste a macro em VBA após a gravação para que ela se adapte a qualquer tamanho.

  Atalhos de teclado nos navegadores: um guia completo para uma navegação mais rápida.

Boas práticas na hora de gravar

Antes de gravar, repita o processo manualmente algumas vezes para aprimorá-lo. Faça gravações curtas e específicas em vez de uma única gravação longa; isso facilita a organização e a combinação das gravações.

Evite cliques desnecessários, rolagem na faixa de opções e seleções que não contribuem em nada. Mantenha o nome e a descrição da macro claros para que você ou qualquer colega possa identificar instantaneamente sua finalidade.

Execute macros de várias maneiras

Além da caixa de diálogo Macros (Alt+F8), você pode executar macros usando uma forma, um botão na Barra de Ferramentas de Acesso Rápido ou abrindo a pasta de trabalho. Você pode até mesmo fazer com que o Excel execute a macro a partir de outros aplicativos do Office, permitindo automatizar tarefas entre aplicativos (por exemplo, atualizar uma tabela e enviar um e-mail pelo Outlook).

Pense bem nos atalhos de teclado: se você atribuir Ctrl+Z a uma macro, perderá a capacidade de desfazer a ação enquanto a planilha estiver aberta. Portanto, recomenda-se usar combinações de Ctrl+Shift para evitar conflitos.

Salvando pastas de trabalho com macros

Quando um arquivo contém código VBA, salve-o como um arquivo .xlsm para que o código seja preservado e possa ser executado. Salvar como um arquivo .xlsx destruirá o projeto VBA . Se você quiser macros globais, use a Pasta de Trabalho de Macros Pessoais (Personal.xlsb).

Segurança e habilitação de macros

As macros podem ser bloqueadas dependendo das suas configurações de segurança. Verifique a Central de Confiabilidade para habilitá-las seletivamente e nunca habilite macros de fontes desconhecidas. Compreender seu nível de segurança ajuda a equilibrar proteção e produtividade.

Atribuir macros a botões, formas e controles

Para permitir que os usuários executem macros automaticamente, atribua uma macro a um botão, forma ou controle. Clique com o botão direito do mouse no objeto > Atribuir Macro > selecione. Você também pode colocar um ícone na faixa de opções ou na Barra de Ferramentas de Acesso Rápido e vinculá-lo à macro.

Se você utiliza formulários ou controles ActiveX, pode atribuir macros ou procedimentos de evento (por exemplo, ao clicar) a eles. Isso permite interfaces mais amigáveis ​​e processos guiados.

Exemplos úteis de macros (VBA)

Estes exemplos ilustram tarefas comuns. Você pode colá-los em um Módulo (Alt+F11 > Inserir > Módulo) e adaptá-los. Lembre-se de assinar as pastas de trabalho ou ajustar as configurações de segurança, caso sua organização exija, para que você possa executá-las sem avisos.

Copie o conteúdo selecionado para outro local na mesma planilha: Selection.Copy Destination

Sub CopiarSeleccion()
    If TypeName(Selection) = "Range" Then
        Selection.Copy Destination:=Selection.Offset(0, 2)
    Else
        MsgBox "Selecciona un rango de celdas primero."
    End If
End Sub

Imprimir a planilha ativa: ActiveSheet.PrintOut

Sub ImprimirHojaActual()
    ActiveSheet.PrintOut
End Sub

Salve o arquivo como uma pasta de trabalho habilitada para macros (.xlsm): ActiveWorkbook.SaveAs

Sub GuardarComoXlsm()
    Dim ruta As String
    ruta = ThisWorkbook.Path & Application.PathSeparator & "LibroConMacros.xlsm"
    ActiveWorkbook.SaveAs Filename:=ruta, FileFormat:=xlOpenXMLWorkbookMacroEnabled
End Sub

Aplicar formatação a um intervalo (ajuste o intervalo conforme necessário): Com Range(…)

Sub FormatoRango()
    With Range("A1:D10")
        .Font.Bold = True
        .Interior.Color = RGB(230, 230, 250)
        .Borders.LineStyle = xlContinuous
    End With
End Sub

Encontrar um valor em um intervalo e exibir a primeira correspondência: Range(…).Find

Sub BuscarValor()
    Dim celda As Range
    Dim valor As String
    valor = InputBox("¿Qué valor quieres buscar?")
    If valor = "" Then Exit Sub
    Set celda = Range("A1:D1000").Find(What:=valor, LookIn:=xlValues, LookAt:=xlPart)
    If Not celda Is Nothing Then
        MsgBox "Encontrado en: " & celda.Address
        celda.Select
    Else
        MsgBox "No se encontró el valor especificado."
    End If
End Sub

Caso prático: formatação em porcentagem

Gravação: Inicie a gravação, dê um nome a ela, escolha onde salvá-la e, opcionalmente, atribua um atalho e uma descrição. Selecione as células e aplique o estilo "Porcentagem" na guia Página Inicial. Pare a gravação e, em seguida, execute-a novamente com Alt+F8. Se desejar reproduzi-la com um código minimalista, use Selection.Style = "Percent" em VBA.

  Guia completo de truques do Notepad++ para iniciantes

Dica: Durante a gravação, evite trocar de célula desnecessariamente. Esses movimentos de vai e vem são gravados e podem tornar a macro mais lenta e corrompê-la.

Automatize tarefas longas: pequenas macros são melhores

Se você tiver um processo com muitas etapas, considere dividi-lo em várias macros menores e chamá-las sequencialmente. Isso facilita a manutenção, permite reutilizar blocos e simplifica a depuração.

Por exemplo, uma macro para preparar dados, outra para formatar, outra para gerar uma impressão e outra para exportar para PDF ou enviar por e-mail . Você pode chamá-las uma a uma ou todas de uma vez.

Editar e limpar código gravado

O gravador captura "tudo": seleções, cliques e mudanças de tabulação. Quando o VBE é aberto, ele remove seleções desnecessárias (Select/Selection) substituindo-as por referências diretas (por exemplo, Range("A1").Value = ... ) e agrupa formatos em blocos With/End With.

Além disso, adiciona variáveis ​​e tratamento básico de erros. Algumas instruções condicionais e verificações simples evitam erros quando o intervalo está vazio ou a seleção não é a esperada.

Perguntas frequentes

Como criar um UserForm no Excel? Abra o Editor do Visual Basic (Alt+F11), vá para Inserir > UserForm e adicione controles (caixas de texto, botões etc.). Você pode exibi-lo usando uma macro.

Sub MostrarFormulario()
    UserForm1.Show
End Sub

A partir daí, atribua procedimentos aos eventos dos controles (por exemplo, um clique de botão) para executar a lógica necessária.

Como faço para proteger/desproteger uma planilha com macros? Use essas rotinas alterando a senha conforme desejado. Elas permitem ativar ou desativar a proteção com um único clique.

Sub ProtegerHoja()
    ActiveSheet.Protect Password:="segura", AllowFiltering:=True
End Sub

Sub DesprotegerHoja()
    ActiveSheet.Unprotect Password:="segura"
End Sub

Como faço para excluir uma macro? Vá para Desenvolvedor > Macros, selecione a macro e pressione Delete. Se você quiser excluir todo o código de um módulo, abra o VBE (Alt+F11), localize o módulo no projeto, clique com o botão direito do mouse e selecione Remover Módulo (você pode exportá-lo primeiro, se quiser salvá-lo).

Uma última dica prática: se você formatar um relatório mensal onde os clientes com saldos em aberto devem ser destacados em vermelho e negrito, grave a sequência uma única vez, ajuste o código VBA para aplicar ao intervalo correto (usando detecção da última linha ou filtros) e salve a macro em sua pasta de macros pessoal. Da próxima vez, um simples atalho ou botão será tudo o que você precisa para aplicar a formatação instantaneamente, perfeitamente, em segundos.

Macros no Excel
Artigo relacionado:
Macros no Excel: Como automatizar tarefas e aumentar sua produtividade