Se você tem um documento do Word com dezenas ou centenas de comentários de um período de revisão, resolver cada um manualmente é demorado e sujeito a erros. O Word não possui um comando nativo para resolver todos os comentários anteriores a uma data escolhida. Este artigo explica como usar uma macro VBA simples para resolver comentários em lote com base em uma data de corte que você define, economizando um tempo significativo de edição.
Principais Conclusões: Automatizando a Resolução de Comentários por Data
- Macro VBA personalizando a propriedade Comment.Date: Permite filtrar comentários inseridos antes de uma data específica e resolvê-los em um único lote.
- Configurações de segurança de macro em Arquivo > Opções > Central de Confiabilidade > Configurações da Central de Confiabilidade > Configurações de Macro: Devem ser ajustadas para habilitar todas as macros ou macros assinadas digitalmente antes da execução do script.
- Barra de Ferramentas de Acesso Rápido ou atalho de teclado (Alt+F8): Fornece acesso rápido para executar a macro sem abrir o editor VBA toda vez.
Como o Word Armazena Comentários e a Propriedade Date
Cada comentário em um documento do Word é armazenado como um objeto Comment no modelo de objeto VBA. O objeto inclui uma propriedade Date que registra o timestamp exato em que o comentário foi inserido. O Word também fornece um método Resolve que marca um comentário como resolvido, ocultando-o da lista padrão de comentários, mas sem excluí-lo. Ao escrever uma macro VBA curta que percorre todos os comentários, verifica a propriedade Date em relação a uma data de corte e chama o método Resolve nos comentários correspondentes, você pode resolver comentários antigos em lote em segundos.
Para executar uma macro VBA, você precisa habilitar o suporte a macros no Word. A macro descrita neste artigo não modifica nenhum conteúdo do documento além do status do comentário. Antes de começar, certifique-se de que seu documento esteja salvo em um formato habilitado para macros (.docm) se você planeja manter a macro anexada ao documento.
Passos para Criar e Executar a Macro de Resolução em Lote
- Abra o editor VBA
Pressione Alt+F11 no teclado. Isso abre a janela do Microsoft Visual Basic for Applications. - Insira um novo módulo
No painel do Explorer de Projetos à esquerda, clique com o botão direito no nome do seu documento (ou Normal para uso global) e escolha Inserir > Módulo. Uma janela de código em branco aparece. - Cole o código da macro
Copie e cole o seguinte código na janela do módulo:Sub ResolveCommentsOlderThanDate()
Dim c As Comment
Dim cutoffDate As Date
cutoffDate = DateSerial(2024, 6, 1) ' altere para sua data de corte
For Each c In ActiveDocument.Comments
If c.Date < cutoffDate Then
c.Resolve
End If
Next c
End Sub
SubstituaDateSerial(2024, 6, 1)pela data de corte desejada. O formato éDateSerial(ano, mês, dia). - Execute a macro
Pressione Alt+F8 para abrir a caixa de diálogo Macro. Selecione ResolveCommentsOlderThanDate na lista e clique em Executar. Todos os comentários com data anterior à sua data de corte são resolvidos instantaneamente. - Salve o documento (opcional)
Se quiser manter a macro no documento para uso futuro, salve o arquivo como um documento habilitado para macros (.docm) usando Arquivo > Salvar Como e selecionando Documento Habilitado para Macro do Word.
Problemas Comuns ao Executar a Macro
Erro “A macro não pode ser executada porque as macros estão desabilitadas”
O Word bloqueia macros por padrão por segurança. Vá para Arquivo > Opções > Central de Confiabilidade > Configurações da Central de Confiabilidade > Configurações de Macro. Selecione Habilitar todas as macros ou Desabilitar todas as macros, exceto as assinadas digitalmente. Reinicie o Word e execute a macro novamente.
Comentários ainda visíveis após executar a macro
O método Resolve altera o status do comentário para resolvido, mas os comentários resolvidos permanecem visíveis no documento a menos que você altere as configurações de exibição de revisão. Para ocultar comentários resolvidos, vá para a guia Revisão, clique em Mostrar Comentários e desmarque Comentários Resolvidos.
A macro resolve comentários do intervalo de datas errado
A propriedade Date usa a data e hora do sistema no momento em que o comentário foi criado. Se você copiou comentários de outro documento, a data pode refletir a data de inserção original. Verifique manualmente alguns comentários passando o mouse sobre eles para confirmar as datas. Ajuste o valor de cutoffDate na macro conforme necessário.
Resolução Manual vs. Baseada em Macro
| Item | Resolução Manual | Resolução com Macro |
|---|---|---|
| Tempo necessário para 50+ comentários | 5–15 minutos dependendo da rolagem | Menos de 1 segundo |
| Risco de perder comentários | Alto — fácil pular comentários ao rolar | Nenhum — a macro verifica todos os comentários |
| Capacidade de filtrar por data | Não é possível — precisa resolver um por um | Integrado via parâmetro DateSerial |
| Requer conhecimento em VBA | Não | Mínimo — só precisa editar a linha da data |
| Formato de documento necessário | Qualquer .doc ou .docx | .docm se a macro for salva dentro do documento |
Agora você pode resolver todos os comentários anteriores a uma data específica em uma única execução de macro. Para refinar o processo, modifique a macro para resolver comentários dentro de um intervalo de datas adicionando uma segunda variável DateSerial para o limite superior. Por exemplo, use If c.Date >= startDate And c.Date <= endDate Then para resolver comentários de um mês específico.