Cómo convertir comentarios de Word al estado resuelto en masa mediante VBA
🔍 WiseChecker

Cómo convertir comentarios de Word al estado resuelto en masa mediante VBA

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.

ADVERTISEMENT

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:

  1. Abrir Opciones de Word
    Vaya a Archivo > Opciones > Personalizar cinta de opciones.
  2. 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:

  1. Abrir el Centro de confianza
    Vaya a Archivo > Opciones > Centro de confianza > Configuración del Centro de confianza.
  2. Habilitar macros
    Seleccione Habilitar todas las macros. Esto es seguro solo si ejecuta macros que usted escribió o que provienen de fuentes de confianza.
  3. 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.

ADVERTISEMENT

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.

  1. Abrir el editor de VBA
    Presione Alt + F11 en su teclado. Como alternativa, haga clic en Desarrollador > Visual Basic.
  2. Insertar un nuevo módulo
    En el editor de VBA, vaya a Insertar > Módulo. Se abre una ventana de código en blanco.
  3. 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

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

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

  2. Ejecutar la macro de reversión
    Presione Alt + F8, seleccione UnresolveAllComments y haga clic en Ejecutar.

ADVERTISEMENT

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.

ADVERTISEMENT