Como Depurar Código VBA no Editor do Word
🔍 WiseChecker

Como Depurar Código VBA no Editor do Word

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

ADVERTISEMENT

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.

  1. 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.
  2. 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.
  3. 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.
  4. 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.
  5. 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 ?nomeDaVariavel na janela Imediata e pressione Enter.
  6. Altere o valor de uma variável, se necessário
    Na janela Imediata, digite nomeDaVariavel = novoValor e pressione Enter. Isso substitui o valor da variável pelo restante da sessão de depuração.
  7. 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.

ADVERTISEMENT

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.

ADVERTISEMENT