- 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.

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.
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.
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.
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.