Você está trabalhando em um documento do Word quando uma macro começa a ser executada e não para. A macro pode estar presa em um loop infinito, processando um grande volume de dados ou encontrando um erro que impede sua conclusão normal. Este artigo explica as três maneiras confiáveis de interromper uma macro em execução no Word: usando o atalho de teclado, forçando o Word a entrar no modo de interrupção e encerrando o processo do Word como último recurso. Você aprenderá as teclas exatas e os passos para cada método, incluindo como impedir que macros sejam executadas novamente até que você esteja pronto.
Principais Conclusões: Como Interromper uma Macro no Word
- Ctrl+Break (ou Ctrl+Pause/Break): O atalho de teclado principal para interromper uma macro em execução e abrir o editor VBA no modo de depuração.
- Ctrl+Alt+Shift+Escape: Força o Word a interromper a execução da macro e exibir o editor VBA com a linha atual destacada, mesmo quando Ctrl+Break falha.
- Gerenciador de Tarefas > Finalizar Tarefa: O último recurso que encerra o processo do Word completamente, descartando alterações não salvas, quando a macro bloqueia toda a entrada do usuário.
Por que uma Macro Não Para Normalmente
Quando você executa uma macro no Word, o código VBA é executado dentro do processo do aplicativo Word. A macro é executada na mesma thread da interface do usuário do Word. Isso significa que, se a macro entrar em um loop infinito, realizar um cálculo muito longo ou aguardar um recurso que nunca fica disponível, ela bloqueia a interface do Word, impedindo-a de responder a entradas normais. A faixa de opções, os menus e até a tecla Escape podem parecer não responder. A macro não para porque o Word está ocupado executando o código e não pode processar novos comandos do usuário até que o procedimento atual termine ou seja explicitamente interrompido. Entender esse comportamento de thread única é a chave para saber por que apenas teclas específicas podem interromper a execução.
Três Métodos para Parar uma Macro em Execução
O método que funciona depende se a macro permite que o buffer do teclado seja lido, se o editor VBA já está aberto e o quão sem resposta o Word se tornou. Use estes métodos na ordem apresentada.
Método 1: Pressione Ctrl+Break ou Ctrl+Pause/Break
- Localize a tecla Break no seu teclado
Na maioria dos teclados de tamanho completo, a tecla Break está na linha superior, geralmente compartilhando a tecla Pause. Em laptops, pode ser uma função secundária na tecla F12 ou Insert, ativada pressionando a tecla Fn junto com a tecla marcada. Procure o texto “Break” ou “Pause/Break” na linha superior de teclas. - Pressione Ctrl+Break (ou Ctrl+Fn+Break em laptops)
Enquanto a macro estiver em execução, mantenha pressionada a tecla Ctrl e pressione a tecla Break. Se o seu teclado tiver uma tecla Pause/Break dedicada, pressione Ctrl+Pause/Break. Isso envia um sinal de interrupção para o ambiente de tempo de execução VBA. - Observe a abertura do editor VBA
Se a interrupção for bem-sucedida, a janela do editor Visual Basic for Applications é aberta. A execução da macro para na linha atual do código, que é destacada em amarelo. Você pode então pressionar F5 para retomar ou pressionar Shift+F8 para percorrer o código restante linha por linha. - Se o editor VBA não aparecer
Aguarde alguns segundos e tente novamente. Algumas macros desabilitam a tecla Break usando a propriedade Application.EnableCancelKey. Se o autor da macro definiu EnableCancelKey como xlDisabled (ou o equivalente VBA), Ctrl+Break é ignorado. Vá para o Método 2.
Método 2: Pressione Ctrl+Alt+Shift+Escape
- Pressione Ctrl+Alt+Shift+Escape simultaneamente
Mantenha pressionadas Ctrl, Alt e Shift, e pressione Escape. Essa combinação de teclas força o Word a interromper a macro atual e abrir o editor VBA, mesmo que a macro tenha desabilitado a tecla Break normal. Esse método funciona porque envia uma interrupção de prioridade mais alta ao mecanismo VBA que não pode ser desabilitada pelo código da macro. - Confirme que o editor VBA está aberto
O editor VBA deve aparecer com a macro pausada na linha atual. A janela de código mostra um destaque amarelo na linha que estava sendo executada quando a interrupção ocorreu. - Use a janela Imediato para parar a macro
Se você quiser parar a macro completamente sem retomar, abra a janela Imediato pressionando Ctrl+G. Digite o comandoEnde pressione Enter. Isso encerra todo o código VBA em execução no documento atual.
Método 3: Encerre o Processo do Word pelo Gerenciador de Tarefas
- Abra o Gerenciador de Tarefas
Pressione Ctrl+Shift+Escape para abrir o Gerenciador de Tarefas diretamente. Se isso não funcionar, pressione Ctrl+Alt+Delete e selecione Gerenciador de Tarefas na tela que aparece. - Localize o processo do Word
Na guia Processos, procure por Microsoft Word ou WINWORD.EXE. Se você tiver várias janelas do Word abertas, pode haver várias instâncias. Selecione aquela que está executando a macro travada. - Selecione Finalizar Tarefa
Clique no processo e depois clique em Finalizar Tarefa. O Word fecha imediatamente. Quaisquer alterações não salvas no documento são perdidas. Este método é o último recurso porque não permite salvar seu trabalho ou examinar o código da macro. - Reinicie o Word e desabilite macros temporariamente
Após encerrar o processo, abra o Word novamente. Antes de abrir o documento que contém a macro problemática, vá em Arquivo > Opções > Central de Confiabilidade > Configurações da Central de Confiabilidade > Configurações de Macro. Selecione Desabilitar todas as macros sem notificação. Isso impede que a macro seja executada automaticamente ao abrir o documento, permitindo que você edite ou exclua o código da macro manualmente no editor VBA.
Prevenindo que Macros Sejam Executadas Incontrolavelmente
Se você trabalha frequentemente com documentos que contêm macros, pode tomar medidas para evitar ficar travado novamente. O método mais eficaz é definir o nível de segurança de macro como Desabilitar todas as macros com notificação. Essa configuração exibe uma barra de aviso de segurança abaixo da faixa de opções quando um documento contém macros. Você pode então optar por habilitar macros apenas quando confiar na fonte. Para alterar essa configuração, vá em Arquivo > Opções > Central de Confiabilidade > Configurações da Central de Confiabilidade > Configurações de Macro e selecione Desabilitar todas as macros com notificação. Isso não interrompe uma macro depois que ela é executada, mas impede que qualquer macro seja iniciada automaticamente, dando a você controle sobre quando e se deseja executar o código.
Problemas Comuns ao Parar uma Macro
Ctrl+Break Não Funciona e o Word Está Completamente Congelado
Quando a macro desabilitou a tecla Break e a interface do Word não responde, Ctrl+Alt+Shift+Escape também pode falhar porque o Word não consegue processar teclas. Nessa situação, o Gerenciador de Tarefas é a única opção. Após encerrar a tarefa, verifique o código VBA do documento em busca de qualquer linha que defina Application.EnableCancelKey = xlDisabled e remova ou comente essa linha. Isso evita que o mesmo problema ocorra novamente com essa macro.
Macro Retoma Automaticamente Após a Interrupção
Se você interromper a macro no editor VBA usando Ctrl+Break ou Ctrl+Alt+Shift+Escape, a macro pode retomar se você pressionar acidentalmente F5 ou clicar no botão Executar. Para parar a macro permanentemente, use a janela Imediato (Ctrl+G) e digite End. Alternativamente, coloque a macro no modo de interrupção e pressione F8 repetidamente para percorrer o código até chegar à linha End Sub ou End Function, depois pressione F5 para deixá-la terminar normalmente.
Não é Possível Abrir o Editor VBA Após Encerrar a Tarefa
Após encerrar o processo do Word, o editor VBA não abre porque o Word foi fechado. Para editar o código da macro, reabra o documento com as macros desabilitadas. Em seguida, pressione Alt+F11 para abrir o editor VBA manualmente. Navegue até o módulo que contém a macro problemática e edite ou exclua o código. Salve o documento como um arquivo .docx sem macro para remover todas as macros permanentemente.
Atalhos de Teclado para Parar Macros: Comparação
| Atalho | Efeito | Quando Usar |
|---|---|---|
| Ctrl+Break | Interrompe a macro e abre o editor VBA | Primeira tentativa; funciona na maioria dos teclados, a menos que a macro desabilite a tecla Break |
| Ctrl+Alt+Shift+Escape | Força a interrupção da macro mesmo se a tecla Break estiver desabilitada | Quando Ctrl+Break falha e o Word ainda está parcialmente responsivo |
| Gerenciador de Tarefas Finalizar Tarefa | Encerra o processo do Word; descarta alterações não salvas | Quando o Word está completamente congelado e nenhuma tecla funciona |
Agora você conhece três métodos distintos para parar uma macro em execução no Word. Comece com Ctrl+Break. Se falhar, use Ctrl+Alt+Shift+Escape. Use o Gerenciador de Tarefas apenas como último recurso, pois ele descarta o trabalho não salvo. Para evitar problemas futuros, defina a segurança de macro como Desabilitar todas as macros com notificação e remova quaisquer linhas Application.EnableCancelKey = xlDisabled do seu código VBA. Como dica avançada, você pode adicionar uma instrução DoEvents dentro de loops longos em suas próprias macros para que a tecla Break permaneça responsiva durante a execução.