Se você escreve macros no Word, provavelmente já encontrou um código que não executa corretamente. O editor VBA do Word inclui ferramentas para percorrer o código, inspecionar variáveis e encontrar erros de lógica. Este artigo explica como usar o depurador integrado ao Visual Basic Editor. Você aprenderá a definir breakpoints, monitorar valores e lidar com erros em tempo de execução.
Principais pontos: Depuração de macros VBA no Word
- Alt+F11: Abre o Visual Basic Editor a partir do Word
- F9 em uma linha de código: Alterna um breakpoint para pausar a execução naquela linha
- F8 (Step Into): Executa uma linha de código por vez para inspeção detalhada
- Ctrl+G (Janela Imediata): Executa comandos VBA rápidos e verifica valores de variáveis durante a depuração
- Depurar > Compilar VBAProject: Captura erros de sintaxe e compilação antes de executar a macro
Como o depurador VBA funciona no Word
O Visual Basic Editor no Word é o mesmo ambiente usado por outros aplicativos do Microsoft Office. Ele contém um depurador integrado que pode pausar a execução da macro, mostrar o conteúdo das variáveis e permitir que você execute o código linha por linha. Para usar o depurador, você deve primeiro abrir o editor VBA pressionando Alt+F11 enquanto o Word está ativo. O editor possui sua própria barra de menus, barra de ferramentas e várias janelas: o Project Explorer, a janela de Código, a janela Imediata e a janela Locals.
Antes de depurar, verifique se as configurações de segurança de macro permitem a execução de código VBA. Vá em Arquivo > Opções > Central de Confiabilidade > Configurações da Central de Confiabilidade > Configurações de Macro e selecione Habilitar todas as macros. Essa configuração é apenas para teste; desabilite-a após a depuração para evitar que códigos maliciosos sejam executados.
O depurador não corrige erros automaticamente. Ele mostra onde o erro ocorre e quais valores as variáveis têm naquele momento. Você deve interpretar essas informações para corrigir o código.
Breakpoints — Pausando o código em uma linha específica
Um breakpoint instrui o depurador a parar a execução em uma linha específica. Para definir um breakpoint, abra a macro na janela de Código, clique na margem cinza à esquerda da linha onde deseja pausar ou pressione F9. Um círculo vermelho aparece na margem e a linha é destacada em vermelho. Quando você executa a macro, a execução para no breakpoint antes que essa linha seja executada. Você pode definir vários breakpoints em uma macro.
A janela Locals — Monitorando variáveis
Quando a execução está pausada, a janela Locals (Exibir > Janela Locals) mostra todas as variáveis do procedimento atual. Ela lista o nome da variável, seu valor atual e seu tipo. Conforme você percorre o código, os valores são atualizados automaticamente. Esta janela é a maneira mais rápida de verificar se uma variável contém os dados esperados.
A janela Imediata — Executando comandos rapidamente
A janela Imediata (Ctrl+G ou Exibir > Janela Imediata) é uma linha de comando dentro do editor VBA. Enquanto estiver pausado, você pode digitar uma instrução VBA e pressionar Enter para executá-la. Por exemplo, digite ?Selection.Text para imprimir o texto selecionado no Word. Use esta janela para alterar o valor de uma variável ou testar uma função sem reiniciar a macro.
Passos para depurar uma macro VBA no Word
Siga estes passos para depurar uma macro que não está produzindo o resultado esperado.
- Abra o Visual Basic Editor
No Word, pressione Alt+F11. O editor VBA é aberto. Se sua macro estiver em um módulo, clique duas vezes no nome do módulo no Project Explorer para exibir seu código. - Defina um breakpoint na primeira linha suspeita
Role até a linha onde você suspeita que o problema começa. Clique na margem esquerda ou pressione F9. Um ponto vermelho aparece. - Execute a macro
Pressione F5 ou clique no botão Executar na barra de ferramentas. A macro é executada até atingir o breakpoint. Nesse ponto, a janela do editor se torna ativa e a linha do breakpoint é destacada em amarelo. - Percorra o código uma linha de cada vez
Pressione F8 para executar a linha destacada atual. Cada pressionamento executa uma linha e move o destaque para a próxima linha. Observe a janela Locals para ver como os valores das variáveis mudam após cada etapa. - Inspecione os valores das variáveis
Passe o mouse sobre o nome de uma variável no código. Uma dica de ferramenta mostra seu valor atual. Como alternativa, digite?nomeDaVariavelna janela Imediata e pressione Enter. - Altere o valor de uma variável, se necessário
Na janela Imediata, digitenomeDaVariavel = novoValore pressione Enter. Isso substitui o valor da variável pelo restante da sessão de depuração. - Continue ou pare a depuração
Para retomar a execução normal, pressione F5. Para interromper totalmente a depuração, clique no botão Redefinir na barra de ferramentas ou pressione Ctrl+Shift+F8.
Erros comuns e limitações na depuração VBA
O breakpoint não fica vermelho quando pressiono F9
Isso acontece quando a janela de código não está com foco ou quando a linha é um comentário ou uma linha em branco. Clique dentro da janela de código primeiro e depois pressione F9. Breakpoints só podem ser definidos em linhas executáveis.
A macro para, mas a janela Locals está vazia
A janela Locals só mostra variáveis que são declaradas no procedimento atual. Se você declarou variáveis no nível do módulo, elas aparecem apenas quando a macro é pausada dentro de um procedimento que as utiliza. Abra a janela Locals pressionando Ctrl+Alt+V, L se ela não estiver visível.
Aparece uma mensagem de erro, mas não consigo ver o número da linha
Por padrão, o VBA mostra uma caixa de diálogo com a descrição do erro, mas não o número da linha. Para ver a linha exata, clique em Depurar na caixa de diálogo de erro. O editor destaca a linha problemática em amarelo. Você pode então inspecionar variáveis e avançar.
O Word congela quando executo a macro com breakpoints
Isso geralmente significa que a macro entrou em um loop infinito. Pressione Ctrl+Break (ou Ctrl+Pause em alguns teclados) para interromper a execução. O editor parará na linha atual. Verifique as condições do loop e os contadores na janela Locals.
Erro de compilação impede a execução da macro
Antes de depurar, sempre compile seu código. Vá em Depurar > Compilar VBAProject. Se existirem erros, o editor destaca a primeira linha problemática. Corrija a sintaxe, referências ausentes ou variáveis não declaradas e compile novamente até que nenhum erro apareça.
Ferramentas de depuração VBA no Word: Breakpoints vs Instruções Stop vs Debug.Print
| Item | Breakpoint (F9) | Instrução Stop | Debug.Print |
|---|---|---|---|
| Como definir | Clique na margem ou pressione F9 | Digite Stop no código |
Digite Debug.Print variavel no código |
| Pausa a execução | Sim, naquela linha | Sim, na linha do Stop | Não, a execução continua |
| Mostra saída | Nenhuma saída | Nenhuma saída | Imprime na janela Imediata |
| Removido automaticamente | Não, deve ser removido manualmente | Não, a linha deve ser excluída | Não, a linha deve ser excluída |
| Melhor usado para | Pausar em um local específico | Pausas condicionais dentro de loops | Registrar valores sem interromper |
Use breakpoints na maioria das sessões de depuração. Use Stop quando quiser um breakpoint que seja salvo com o arquivo de código. Use Debug.Print para monitorar valores ao longo de muitas iterações sem interromper o fluxo da macro.
Agora você pode abrir qualquer macro no Word, definir breakpoints, percorrer o código e inspecionar variáveis usando as janelas Imediata e Locals. Comece compilando seu projeto para capturar erros de sintaxe e, em seguida, coloque um breakpoint na primeira linha que possa causar problemas. Pressione F8 para percorrer cada linha e observar como suas variáveis mudam. Para macros complexas, adicione instruções Debug.Print para registrar valores intermediários na janela Imediata sem interromper a execução.