Ao revisar um documento do Word com dezenas ou centenas de comentários, marcar cada um como resolvido manualmente leva muito tempo. O Word não oferece um botão nativo para resolver todos os comentários de uma vez. Este artigo explica como usar uma macro VBA para converter todos os comentários para o estado resolvido em uma única ação. Você aprenderá o código da macro, como executá-la e o que observar ao usá-la em documentos compartilhados ou protegidos.
Principais conclusões: Resolver comentários em lote no Word com VBA
- Alt + F11 (Editor VBA): Abre o ambiente onde você cola e executa a macro para resolver todos os comentários.
- ActiveDocument.Comments(i).Done = True: A única linha de código que marca cada comentário como resolvido.
- Arquivo > Opções > Central de Confiabilidade > Configurações da Central de Confiabilidade > Habilitar todas as macros: Configuração de segurança necessária antes da macro ser executada.
Como o Word lida com a resolução de comentários
O Word armazena cada comentário como um objeto Comment no modelo do documento. Cada comentário tem uma propriedade Done. Quando você clica com o botão direito em um comentário e escolhe Marcar Comentário como Concluído, o Word define Done = True. O comentário permanece visível, mas aparece esmaecido ou tachado, dependendo da versão do Word e das configurações de exibição.
O Word não expõe um comando nativo para definir Done em todos os comentários simultaneamente. A guia Revisão oferece navegação Próximo Comentário e Comentário Anterior, mas nenhum botão de resolução em lote. O VBA contorna essa limitação iterando pela coleção Comments e definindo a propriedade em cada item.
Nenhum complemento de terceiros é necessário. A macro funciona no Word 2016, Word 2019, Word 2021 e Word para Microsoft 365 no Windows. Usuários de Mac podem usar uma abordagem semelhante com o Editor Visual Basic, mas os caminhos de menu diferem um pouco.
Pré-requisitos antes de executar a macro
Antes de executar qualquer macro VBA no Word, você deve alterar duas configurações.
Habilitar a guia Desenvolvedor
A guia Desenvolvedor fica oculta por padrão. Para exibi-la:
- Abra Opções do Word
Vá em Arquivo > Opções > Personalizar Faixa de Opções. - Marque Desenvolvedor
No painel direito, em Guias Principais, marque Desenvolvedor. Clique em OK.
Ajustar a segurança de macro
Por padrão, o Word bloqueia todas as macros. Para permitir que sua própria macro seja executada:
- Abra a Central de Confiabilidade
Vá em Arquivo > Opções > Central de Confiabilidade > Configurações da Central de Confiabilidade. - Habilite macros
Selecione Habilitar todas as macros. Isso é seguro apenas se você executar macros que você mesmo escreveu ou de fontes confiáveis. - Marque acesso ao projeto VBA
Na mesma caixa de diálogo, vá em Configurações de Macro e certifique-se de que Confiar acesso ao modelo de objeto do projeto VBA esteja marcado.
Passos para escrever e executar a macro de resolução em lote
Siga estes passos para criar, colar e executar a macro VBA que resolve todos os comentários.
- Abra o editor VBA
Pressione Alt + F11 no teclado. Alternativamente, clique em Desenvolvedor > Visual Basic. - Insira um novo módulo
No editor VBA, vá em Inserir > Módulo. Uma janela de código em branco é aberta. - Cole o código da macro
Copie o código a seguir e cole na janela do módulo:Sub ResolverTodosComentarios()
Dim c As Comment
For Each c In ActiveDocument.Comments
c.Done = True
Next c
MsgBox "Todos os comentários foram marcados como resolvidos."
End Sub - Execute a macro
Pressione F5 enquanto o cursor estiver dentro do código da macro, ou feche o editor VBA e pressione Alt + F8 para abrir a caixa de diálogo Macros. Selecione ResolverTodosComentarios e clique em Executar. - Verifique o resultado
Volte ao documento. Todos os comentários devem agora aparecer com uma linha tachada ou texto esmaecido, indicando que estão resolvidos. O Painel de Revisão também mostra o status resolvido.
A macro é executada instantaneamente, mesmo em documentos com centenas de comentários. Ela não exclui comentários nem modifica nenhum texto.
Se precisar desfazer a resolução de todos os comentários
Às vezes você precisa reverter a resolução em lote. Crie uma segunda macro que define Done = False para cada comentário.
- Adicione uma nova sub
No mesmo módulo, cole este código abaixo da primeira macro:Sub DesfazerResolucaoTodosComentarios()
Dim c As Comment
For Each c In ActiveDocument.Comments
c.Done = False
Next c
MsgBox "Todos os comentários tiveram a resolução desfeita."
End Sub - Execute a macro de desfazer
Pressione Alt + F8, selecione DesfazerResolucaoTodosComentarios e clique em Executar.
Problemas comuns ao executar a macro
A macro não aparece na lista de Macros
Isso acontece se você colou o código no local errado. Certifique-se de ter inserido um Módulo no projeto Normal ou no projeto do documento atual. Código colocado dentro de um objeto ThisDocument não aparecerá na caixa de diálogo Macros.
O Word diz "Macros estão desabilitadas"
Revise as configurações da Central de Confiabilidade. Se o documento veio da internet, o Word pode bloquear macros mesmo com Habilitar todas as macros ativo. Salve o documento em um local confiável ou desbloqueie o arquivo: clique com o botão direito no documento no Explorador de Arquivos, escolha Propriedades e marque Desbloquear.
A macro resolve apenas alguns comentários
Comentários dentro de alterações controladas ou comentários em seções bloqueadas podem não estar acessíveis ao VBA. Desproteja o documento primeiro. Vá em Revisão > Restringir Edição > Parar Proteção se uma senha estiver definida.
A macro afeta comentários em cabeçalhos ou rodapés
A coleção ActiveDocument.Comments inclui apenas comentários no corpo principal do documento. Comentários em cabeçalhos, rodapés, caixas de texto ou notas de rodapé não são incluídos. O Word não oferece suporte à resolução programática de comentários nessas áreas.
Resolução em lote via VBA vs. Resolução manual: Principais diferenças
| Item | Resolução em lote via VBA | Resolução manual (clique direito em cada um) |
|---|---|---|
| Tempo para 100 comentários | Menos de 1 segundo | 5 a 10 minutos |
| Risco de pular comentários | Nenhum — todos os comentários são processados | Alto — fácil perder comentários |
| Capacidade de desfazer | Fácil com uma segunda macro | Desfazer manualmente cada comentário |
| Funciona em documentos protegidos | Não — é necessário desproteger primeiro | Sim, se comentários individuais forem editáveis |
| Requer conhecimento de VBA | Básico (copiar e colar) | Nenhum |
A macro VBA é o método mais rápido quando você precisa resolver um grande número de comentários. A resolução manual é melhor para documentos onde você deseja revisar cada comentário individualmente antes de marcá-lo como concluído.
Agora você pode resolver todos os comentários em um documento do Word com uma única macro. Salve a macro no seu modelo Normal.dotm para disponibilizá-la em todos os documentos. Para controle avançado, modifique o loop para resolver apenas comentários de um autor específico, verificando a propriedade c.Author antes de definir Done = True.