Ao colaborar em um documento do Word com vários revisores, as alterações controladas podem se tornar órfãs. Alterações órfãs são revisões que aparecem no documento, mas não têm mais um comentário visível ou atribuição de autor no painel de revisão padrão. Isso geralmente acontece quando comentários são excluídos, mas as marcas de revisão subjacentes permanecem, ou quando alterações são importadas de versões diferentes do documento. Você não pode remover essas marcas órfãs usando os botões Aceitar ou Rejeitar na guia Revisão porque o Word não as reconhece como alterações ativas. Este artigo explica como identificar alterações órfãs e removê-las usando um script VBA que força o Word a limpar todos os dados residuais de revisão.
Principais Conclusões: Limpando Alterações Órfãs com VBA
- Método de macro VBA: ActiveDocument.Revisions.AcceptAll e ActiveDocument.Revisions.RejectAll: Esses comandos forçam o Word a processar todas as marcas de revisão, incluindo entradas órfãs que a interface ignora.
- Verificação de visibilidade do painel de revisão: Abra o painel de revisão para confirmar se existem alterações órfãs antes de executar o script.
- Configuração de segurança de macro: Arquivo > Opções > Central de Confiabilidade > Configurações da Central de Confiabilidade > Configurações de Macro > Habilitar todas as macros: Você deve permitir temporariamente a execução de macros para rodar o script.
Por que as Alterações Órfãs Ocorrem e Como o VBA as Detecta
Alterações órfãs são marcas de revisão que permanecem no XML do documento, mas não são exibidas na visualização padrão de balões de controle de alterações. Elas ocorrem quando o perfil de usuário de um revisor é removido do sistema, quando comentários são removidos durante a conversão do documento ou quando alterações são coladas de outro documento que tinha controle de alterações ativado. A interface gráfica do Word depende de metadados do autor para agrupar e exibir revisões. Quando esses metadados estão ausentes ou corrompidos, os comandos Aceitar e Rejeitar na guia Revisão podem pular essas entradas órfãs.
O VBA fornece acesso direto à coleção de Revisões do documento. O objeto ActiveDocument.Revisions contém todas as marcas de revisão, independentemente do estado de exibição. Ao iterar por essa coleção programaticamente, você pode aceitar ou rejeitar todas as revisões, incluindo as órfãs que a interface ignora. O script não depende de nomes de autor ou dados de comentário. Ele processa cada entrada de revisão no armazenamento subjacente do documento.
O que é Considerado uma Alteração Órfã
Uma alteração órfã tem uma ou mais destas características:
- A revisão aparece no documento como tachado ou sublinhado, mas não aparece na barra vertical do painel de revisão.
- A revisão não tem nome de autor ou data na visualização detalhada do painel de revisão.
- A revisão não pode ser selecionada clicando nela no corpo do documento.
- O comando Aceitar Todas as Alterações na guia Revisão não remove a formatação ou a alteração de texto.
Passos para Limpar Alterações Órfãs Usando um Script VBA
Antes de executar o script, salve uma cópia do seu documento. A macro VBA aceita ou rejeita permanentemente todas as revisões, incluindo marcas órfãs. Você não pode desfazer essa ação após salvar e fechar o arquivo.
Passo 1: Habilitar Macros no Word
- Abra as Opções do Word
Clique em Arquivo > Opções > Central de Confiabilidade. Clique em Configurações da Central de Confiabilidade. - Altere as configurações de macro
Selecione Configurações de Macro. Escolha Habilitar todas as macros. Clique em OK duas vezes para fechar as caixas de diálogo.
Passo 2: Abrir o Editor VBA
- Pressione Alt+F11
Isso abre a janela do editor do Visual Basic for Applications. - Insira um novo módulo
No editor, clique em Inserir > Módulo. Uma janela de código em branco aparece.
Passo 3: Colar o Script VBA
- Copie o código da macro
Copie o script a seguir exatamente:Sub CleanOrphanRevisions() Dim rev As Revision Dim doc As Document Set doc = ActiveDocument ' Aceitar todas as revisões, incluindo órfãs doc.Revisions.AcceptAll ' Rejeitar quaisquer revisões restantes que não puderam ser aceitas doc.Revisions.RejectAll MsgBox "Todas as alterações controladas, incluindo marcas órfãs, foram removidas." End Sub - Cole no módulo
Clique dentro da janela do módulo e pressione Ctrl+V para colar o código.
Passo 4: Executar a Macro
- Execute o script
Pressione F5 enquanto o cursor estiver dentro do código da macro. Alternativamente, clique em Executar > Executar Sub/UserForm. - Confirme a ação
O Word processa todas as revisões. Uma caixa de mensagem aparece quando a macro termina. Clique em OK.
Passo 5: Verificar o Documento
- Verifique o painel de revisão
Na guia Revisão, clique em Painel de Revisão. O painel deve mostrar zero revisões. - Salve o documento
Pressione Ctrl+S para salvar a versão limpa. Use um novo nome de arquivo para manter o backup original.
Se o Script VBA Não Remover Todas as Marcas Órfãs
Em alguns casos, os comandos AcceptAll e RejectAll podem pular revisões que estão bloqueadas pela proteção do documento ou que existem em subdocumentos aninhados. As seções a seguir abordam esses cenários específicos.
O Documento Está Protegido para Apenas Controle de Alterações
Se o documento foi configurado para forçar o controle de alterações, você não pode aceitar ou rejeitar revisões programaticamente. Para remover a proteção:
- Abra o painel Restringir Edição
Clique em Revisão > Restringir Edição. - Pare a proteção
Clique em Parar Proteção. Se solicitado, insira a senha. - Execute a macro novamente
Repita os passos da seção principal acima.
Marcas Órfãs Existem em um Documento Mestre com Subdocumentos
A macro é executada apenas no documento ativo. Subdocumentos são arquivos separados. Para limpar todas as órfãs:
- Expanda todos os subdocumentos
Na guia Exibição, clique em Estrutura de Tópicos. Na guia Estrutura de Tópicos, clique em Expandir Subdocumentos. - Execute a macro em cada subdocumento
Abra cada arquivo de subdocumento individualmente e execute a macro.
O Word Exibe um Erro de Compilação ao Executar a Macro
Um erro de compilação geralmente significa que o projeto VBA está bloqueado pelas configurações de segurança ou o código contém um erro de digitação. Verifique se as macros estão habilitadas conforme o Passo 1. Verifique se o código foi colado exatamente como mostrado, sem caracteres extras. Se o erro persistir, reinicie o Word e tente novamente.
Limpeza Manual vs Script VBA: Principais Diferenças
| Item | Limpeza Manual | Limpeza com Script VBA |
|---|---|---|
| Método | Guia Revisão > Aceitar Todas as Alterações | ActiveDocument.Revisions.AcceptAll e RejectAll |
| Lida com marcas órfãs | Não | Sim |
| Requer habilitação de macro | Não | Sim |
| Desfazível após salvar | Não | Não |
| Funciona em documentos protegidos | Não | Não (é necessário remover a proteção primeiro) |
| Funciona em subdocumentos | Não | Não (é necessário executar por arquivo) |
Agora você pode remover alterações órfãs de qualquer documento do Word usando o script VBA fornecido. Antes de executar a macro em um arquivo crítico, sempre teste em uma cópia. Para documentos que contêm uma mistura de revisões legítimas e órfãs, considere usar apenas o comando AcceptAll e depois revisar manualmente as marcas restantes. Uma dica avançada: modifique o script para percorrer cada revisão e registrar seu autor e data em um arquivo de texto antes de aceitar, fornecendo um registro do que foi removido.