Cuando revisa un documento de Word con decenas o cientos de comentarios, marcar cada uno como resuelto manualmente lleva demasiado tiempo. Word no proporciona un botón integrado para resolver todos los comentarios a la vez. Este artículo explica cómo usar una macro de VBA para convertir todos los comentarios al estado resuelto en una sola acción. Aprenderá el código de la macro, cómo ejecutarla y qué tener en cuenta al usarla en documentos compartidos o protegidos.
Puntos clave: Resolver comentarios en masa en Word con VBA
- Alt + F11 (Editor de VBA): Abre el entorno donde se pega y ejecuta la macro para resolver todos los comentarios.
- ActiveDocument.Comments(i).Done = True: La única línea de código que marca cada comentario como resuelto.
- Archivo > Opciones > Centro de confianza > Configuración del Centro de confianza > Habilitar todas las macros: Configuración de seguridad necesaria antes de que se ejecute la macro.
Cómo maneja Word la resolución de comentarios
Word almacena cada comentario como un objeto Comment en el modelo del documento. Cada comentario tiene una propiedad Done. Cuando hace clic derecho en un comentario y elige Marcar comentario como resuelto, Word establece Done = True. El comentario permanece visible pero aparece atenuado o tachado según su versión de Word y la configuración de vista.
Word no expone un comando integrado para establecer Done en todos los comentarios simultáneamente. La pestaña Revisar ofrece navegación con Comentario siguiente y Comentario anterior, pero no un botón de resolución en masa. VBA evita esta limitación recorriendo la colección Comments y estableciendo la propiedad en cada elemento.
No se requiere ningún complemento de terceros. La macro funciona en Word 2016, Word 2019, Word 2021 y Word para Microsoft 365 en Windows. Los usuarios de Mac pueden usar un enfoque similar con el Editor de Visual Basic, pero las rutas de menú difieren ligeramente.
Requisitos previos antes de ejecutar la macro
Antes de ejecutar cualquier macro de VBA en Word, debe cambiar dos configuraciones.
Habilitar la pestaña Desarrollador
La pestaña Desarrollador está oculta de forma predeterminada. Para mostrarla:
- Abrir Opciones de Word
Vaya a Archivo > Opciones > Personalizar cinta de opciones. - Marcar Desarrollador
En el panel derecho, en Pestañas principales, marque Desarrollador. Haga clic en Aceptar.
Ajustar la seguridad de macros
De forma predeterminada, Word bloquea todas las macros. Para permitir que se ejecute su propia macro:
- Abrir el Centro de confianza
Vaya a Archivo > Opciones > Centro de confianza > Configuración del Centro de confianza. - Habilitar macros
Seleccione Habilitar todas las macros. Esto es seguro solo si ejecuta macros que usted escribió o que provienen de fuentes de confianza. - Comprobar el acceso al proyecto de VBA
En el mismo cuadro de diálogo, vaya a Configuración de macros y asegúrese de que Confiar en el acceso al modelo de objetos del proyecto de VBA esté marcado.
Pasos para escribir y ejecutar la macro de resolución en masa
Siga estos pasos para crear, pegar y ejecutar la macro de VBA que resuelve todos los comentarios.
- Abrir el editor de VBA
Presione Alt + F11 en su teclado. Como alternativa, haga clic en Desarrollador > Visual Basic. - Insertar un nuevo módulo
En el editor de VBA, vaya a Insertar > Módulo. Se abre una ventana de código en blanco. - Pegar el código de la macro
Copie el siguiente código y péguelo en la ventana del módulo:Sub ResolveAllComments()
Dim c As Comment
For Each c In ActiveDocument.Comments
c.Done = True
Next c
MsgBox "All comments have been marked as resolved."
End Sub - Ejecutar la macro
Presione F5 mientras el cursor está dentro del código de la macro, o cierre el editor de VBA y presione Alt + F8 para abrir el cuadro de diálogo Macros. Seleccione ResolveAllComments y haga clic en Ejecutar. - Verificar el resultado
Cambie al documento. Todos los comentarios deberían aparecer ahora con una línea de tachado o texto atenuado, lo que indica que están resueltos. El Panel de revisiones también muestra el estado resuelto.
La macro se ejecuta al instante incluso en documentos con cientos de comentarios. No elimina comentarios ni modifica ningún texto.
Si necesita revertir la resolución de todos los comentarios
A veces es necesario revertir la resolución en masa. Cree una segunda macro que establezca Done = False para cada comentario.
- Agregar un nuevo sub
En el mismo módulo, pegue este código debajo de la primera macro:Sub UnresolveAllComments()
Dim c As Comment
For Each c In ActiveDocument.Comments
c.Done = False
Next c
MsgBox "All comments have been unresolved."
End Sub - Ejecutar la macro de reversión
Presione Alt + F8, seleccione UnresolveAllComments y haga clic en Ejecutar.
Problemas comunes al ejecutar la macro
La macro no aparece en la lista de macros
Esto ocurre si pegó el código en la ubicación incorrecta. Asegúrese de haber insertado un Módulo en el proyecto Normal o en el proyecto del documento actual. El código colocado dentro de un objeto ThisDocument no aparecerá en el cuadro de diálogo Macros.
Word dice "Las macros están deshabilitadas"
Revise la configuración del Centro de confianza. Si su documento proviene de Internet, Word puede bloquear las macros incluso con Habilitar todas las macros activado. Guarde el documento en una ubicación de confianza o desbloquee el archivo: haga clic derecho en el documento en el Explorador de archivos, elija Propiedades y marque Desbloquear.
La macro resuelve solo algunos comentarios
Es posible que VBA no pueda acceder a los comentarios dentro de cambios controlados o en secciones bloqueadas. Quite primero la protección del documento. Vaya a Revisar > Restringir edición > Detener protección si hay una contraseña establecida.
La macro afecta a los comentarios en encabezados o pies de página
La colección ActiveDocument.Comments incluye solo los comentarios del cuerpo principal del documento. Los comentarios en encabezados, pies de página, cuadros de texto o notas al pie no se incluyen. Word no admite la resolución programática de comentarios en esas áreas.
Resolución en masa con VBA frente a resolución manual: diferencias clave
| Elemento | Resolución en masa con VBA | Resolución manual (clic derecho en cada uno) |
|---|---|---|
| Tiempo para 100 comentarios | Menos de 1 segundo | De 5 a 10 minutos |
| Riesgo de omitir comentarios | Ninguno: se procesan todos los comentarios | Alto: es fácil pasar por alto comentarios |
| Posibilidad de deshacer | Fácil con una segunda macro | Revertir manualmente cada comentario |
| Funciona en documentos protegidos | No: primero hay que quitar la protección | Sí, si los comentarios individuales se pueden editar |
| Requiere conocimientos de VBA | Copia y pegado básicos | Ninguno |
La macro de VBA es el método más rápido cuando necesita resolver grandes cantidades de comentarios. La resolución manual es mejor para documentos en los que desea revisar cada comentario individualmente antes de marcarlo como resuelto.
Ahora puede resolver todos los comentarios de un documento de Word con una sola macro. Guarde la macro en su plantilla Normal.dotm para tenerla disponible en todos los documentos. Para un control avanzado, modifique el bucle para resolver solo los comentarios de un autor específico comprobando la propiedad c.Author antes de establecer Done = True.