Cuando colabora en un documento de Word con varios revisores, los cambios controlados a veces pueden quedar huérfanos. Los cambios controlados huérfanos son revisiones que aparecen en el documento pero que ya no tienen un comentario visible ni una atribución de autor en el Panel de revisiones estándar. Esto suele ocurrir cuando se eliminan los comentarios pero permanecen las marcas de revisión subyacentes, o cuando se importan cambios de diferentes versiones del documento. No puede eliminar estas marcas huérfanas con los botones Aceptar o Rechazar de la pestaña Revisar porque Word no las reconoce como cambios activos. Este artículo explica cómo identificar cambios controlados huérfanos y eliminarlos mediante un script de VBA que fuerza a Word a borrar todos los datos de revisión residuales.
Puntos clave: Limpiar cambios controlados huérfanos con VBA
- Método de macro de VBA: ActiveDocument.Revisions.AcceptAll y ActiveDocument.Revisions.RejectAll: Estos comandos fuerzan a Word a procesar todas las marcas de revisión, incluidas las entradas huérfanas que la interfaz de usuario ignora.
- Comprobación de visibilidad del Panel de revisiones: Abra el Panel de revisiones para confirmar que existen cambios huérfanos antes de ejecutar el script.
- Configuración de seguridad de macros Archivo > Opciones > Centro de confianza > Configuración del Centro de confianza > Configuración de macros > Habilitar todas las macros: Debe permitir temporalmente que se ejecuten las macros para ejecutar el script.
Por qué se producen los cambios controlados huérfanos y cómo los detecta VBA
Los cambios controlados huérfanos son marcas de revisión que permanecen en el XML del documento pero que no se muestran en la vista estándar de globos de Control de cambios. Se producen cuando se elimina el perfil de usuario de un revisor del sistema, cuando se eliminan los comentarios durante la conversión del documento o cuando se pegan cambios de otro documento que tenía activado el control de cambios. La interfaz gráfica de Word se basa en los metadatos del autor para agrupar y mostrar las revisiones. Cuando esos metadatos faltan o están dañados, los comandos Aceptar y Rechazar de la pestaña Revisar pueden omitir esas entradas huérfanas.
VBA proporciona acceso directo a la colección Revisions del documento. El objeto ActiveDocument.Revisions contiene todas las marcas de revisión independientemente de su estado de visualización. Al recorrer esta colección mediante programación, puede aceptar o rechazar todas las revisiones, incluidas las huérfanas que la interfaz de usuario ignora. El script no depende de los nombres de los autores ni de los datos de los comentarios. Procesa cada entrada de revisión en el almacenamiento subyacente del documento.
Qué se considera un cambio controlado huérfano
Un cambio controlado huérfano tiene una o más de estas características:
- La revisión aparece en el documento como tachado o subrayado pero no se muestra en la barra vertical del Panel de revisiones.
- La revisión no tiene nombre de autor ni fecha en la vista de detalles del Panel de revisiones.
- La revisión no se puede seleccionar haciendo clic en ella en el cuerpo del documento.
- El comando Aceptar todos los cambios de la pestaña Revisar no elimina el formato ni el cambio de texto.
Pasos para limpiar cambios controlados huérfanos con un script de VBA
Antes de ejecutar el script, guarde una copia del documento. La macro de VBA acepta o rechaza permanentemente todas las revisiones, incluidas las marcas huérfanas. No puede deshacer esta acción después de guardar y cerrar el archivo.
Paso 1: Habilitar las macros en Word
- Abrir Opciones de Word
Haga clic en Archivo > Opciones > Centro de confianza. Haga clic en Configuración del Centro de confianza. - Cambiar la configuración de macros
Seleccione Configuración de macros. Elija Habilitar todas las macros. Haga clic en Aceptar dos veces para cerrar los cuadros de diálogo.
Paso 2: Abrir el Editor de VBA
- Presione Alt+F11
Esto abre la ventana del editor de Visual Basic para Aplicaciones. - Insertar un nuevo módulo
En el editor, haga clic en Insertar > Módulo. Aparece una ventana de código en blanco.
Paso 3: Pegar el script de VBA
- Copiar el código de la macro
Copie el siguiente script exactamente:Sub CleanOrphanRevisions() Dim rev As Revision Dim doc As Document Set doc = ActiveDocument ' Accept all revisions including orphans doc.Revisions.AcceptAll ' Reject any remaining revisions that could not be accepted doc.Revisions.RejectAll MsgBox "All tracked changes including orphan marks have been removed." End Sub - Pegar en el módulo
Haga clic dentro de la ventana del módulo y presione Ctrl+V para pegar el código.
Paso 4: Ejecutar la macro
- Ejecutar el script
Presione F5 mientras el cursor está dentro del código de la macro. Como alternativa, haga clic en Ejecutar > Ejecutar Sub/UserForm. - Confirmar la acción
Word procesa todas las revisiones. Aparece un cuadro de mensaje cuando finaliza la macro. Haga clic en Aceptar.
Paso 5: Verificar el documento
- Comprobar el Panel de revisiones
En la pestaña Revisar, haga clic en Panel de revisiones. El panel debe mostrar cero revisiones. - Guardar el documento
Presione Ctrl+S para guardar la versión limpia. Use un nuevo nombre de archivo para conservar la copia de seguridad original.
Si el script de VBA no elimina todas las marcas huérfanas
En algunos casos, los comandos AcceptAll y RejectAll pueden omitir revisiones que están bloqueadas por la protección del documento o que existen en subdocumentos anidados. Las siguientes secciones abordan estos escenarios específicos.
El documento está protegido solo para cambios controlados
Si el documento se ha configurado para forzar el control de cambios, no puede aceptar ni rechazar revisiones mediante programación. Para quitar la protección:
- Abrir el panel Restringir edición
Haga clic en Revisar > Restringir edición. - Detener la protección
Haga clic en Detener protección. Si se le solicita, introduzca la contraseña. - Ejecutar la macro de nuevo
Repita los pasos de la sección principal anterior.
Existen marcas huérfanas en un documento maestro con subdocumentos
La macro se ejecuta solo en el documento activo. Los subdocumentos son archivos independientes. Para limpiar todas las huérfanas:
- Expandir todos los subdocumentos
En la pestaña Vista, haga clic en Esquema. En la pestaña Esquema, haga clic en Expandir subdocumentos. - Ejecutar la macro en cada subdocumento
Abra cada archivo de subdocumento individualmente y ejecute la macro.
Word muestra un error de compilación al ejecutar la macro
Un error de compilación generalmente significa que el proyecto de VBA está bloqueado por la configuración de seguridad o que el código contiene un error tipográfico. Verifique que las macros estén habilitadas según el Paso 1. Compruebe que el código se haya pegado exactamente como se muestra, sin caracteres adicionales. Si el error persiste, reinicie Word e inténtelo de nuevo.
Limpieza manual vs script de VBA: diferencias clave
| Elemento | Limpieza manual | Limpieza con script de VBA |
|---|---|---|
| Método | Pestaña Revisar > Aceptar todos los cambios | ActiveDocument.Revisions.AcceptAll y RejectAll |
| Gestiona marcas huérfanas | No | Sí |
| Requiere habilitar macros | No | Sí |
| Se puede deshacer después de guardar | No | No |
| Funciona en documentos protegidos | No | No (primero debe quitar la protección) |
| Funciona en subdocumentos | No | No (debe ejecutarse por archivo) |
Ahora puede eliminar cambios controlados huérfanos de cualquier documento de Word con el script de VBA proporcionado. Antes de ejecutar la macro en un archivo crítico, pruébela siempre en una copia. Para documentos que contengan una mezcla de revisiones legítimas y huérfanas, considere usar solo el comando AcceptAll y luego revisar manualmente las marcas restantes. Un consejo avanzado: modifique el script para recorrer cada revisión y registrar su autor y fecha en un archivo de texto antes de aceptar, lo que le proporcionará un registro de lo que se eliminó.