Como Converter Comentários do Word para o Estado Resolvido em Lote via VBA
🔍 WiseChecker

Como Converter Comentários do Word para o Estado Resolvido em Lote via VBA

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.

ADVERTISEMENT

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:

  1. Abra Opções do Word
    Vá em Arquivo > Opções > Personalizar Faixa de Opções.
  2. 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:

  1. Abra a Central de Confiabilidade
    Vá em Arquivo > Opções > Central de Confiabilidade > Configurações da Central de Confiabilidade.
  2. Habilite macros
    Selecione Habilitar todas as macros. Isso é seguro apenas se você executar macros que você mesmo escreveu ou de fontes confiáveis.
  3. 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.

ADVERTISEMENT

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.

  1. Abra o editor VBA
    Pressione Alt + F11 no teclado. Alternativamente, clique em Desenvolvedor > Visual Basic.
  2. Insira um novo módulo
    No editor VBA, vá em Inserir > Módulo. Uma janela de código em branco é aberta.
  3. 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

  4. 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.
  5. 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.

  1. 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

  2. Execute a macro de desfazer
    Pressione Alt + F8, selecione DesfazerResolucaoTodosComentarios e clique em Executar.

ADVERTISEMENT

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.

ADVERTISEMENT