Cómo usar VBA para actualizar todos los campos en Word
🔍 WiseChecker

Cómo usar VBA para actualizar todos los campos en Word

Actualizar manualmente cada campo en un documento largo de Word, como las entradas de la tabla de contenido, las referencias cruzadas, los números de página y los índices, puede llevar minutos y es fácil de olvidar. Los comandos integrados de actualización de campos de Word solo funcionan en la selección actual o en todo el documento al imprimir o cerrar el archivo. Este artículo explica cómo escribir y ejecutar una macro de VBA sencilla que actualiza todos los campos del documento activo con un solo clic, lo que ahorra tiempo y evita referencias desactualizadas.

Puntos clave: Automatizar la actualización de campos con una macro de VBA

  • Alt + F11: Abre el editor de VBA donde se pega el código de la macro
  • Método Fields.Update: El único comando que actualiza todos los campos del documento
  • Alt + F8: Abre el cuadro de diálogo Macro para ejecutar la macro personalizada

ADVERTISEMENT

Qué hace una macro de VBA para actualizar campos y qué necesita antes de usarla

Una macro de VBA es un pequeño programa que automatiza tareas repetitivas dentro de Word. La macro para actualizar todos los campos utiliza el método Fields.Update, que recorre cada campo del documento activo y fuerza su recálculo. Esto incluye campos de la tabla de contenido, referencias cruzadas, números de página, índices, fórmulas y propiedades personalizadas del documento.

Antes de poder usar la macro, debe habilitar la pestaña Desarrollador en Word. Esta pestaña da acceso al editor de VBA y a las herramientas de macros. También debe guardar el documento en un formato que admita macros, ya sea con la extensión .docm (documento habilitado para macros) o .dotm (plantilla habilitada para macros). Los archivos .docx estándar no pueden almacenar código de VBA.

La macro funciona en todo el documento, incluidos encabezados, pies de página, notas al pie, notas al final y cuadros de texto. No requiere experiencia en programación porque solo necesita copiar, pegar y ejecutar el código que se proporciona en este artículo.

Habilitar la pestaña Desarrollador

Si la pestaña Desarrollador no está visible en la cinta de opciones, siga estos pasos:

  1. Abrir Opciones de Word
    Haga clic en Archivo > Opciones.
  2. Personalizar la cinta de opciones
    En el cuadro de diálogo Opciones de Word, seleccione Personalizar cinta de opciones a la izquierda.
  3. Marcar Desarrollador
    En Fichas principales a la derecha, marque la casilla junto a Desarrollador. Haga clic en Aceptar.

Cómo escribir y ejecutar la macro de VBA para actualizar todos los campos

Siga estos pasos para insertar la macro en el documento y ejecutarla. Solo necesita hacerlo una vez por documento. Después, puede ejecutar la macro siempre que necesite actualizar todos los campos.

Paso 1: Abrir el editor de VBA

  1. Presione Alt + F11
    Se abre la ventana del editor de VBA. Muestra el explorador de proyectos a la izquierda y un panel de código a la derecha.
  2. Insertar un nuevo módulo
    En la barra de menús, haga clic en Insertar > Módulo. Aparece un nuevo módulo bajo el proyecto Normal o bajo el proyecto del documento.

Paso 2: Pegar el código de la macro

  1. Copiar el código a continuación
    Seleccione y copie el siguiente código de VBA:
    Sub UpdateAllFields()
        Dim fld As Field
        For Each fld In ActiveDocument.Fields
            fld.Update
        Next fld
        MsgBox "All fields have been updated.", vbInformation, "Field Update Complete"
    End Sub
  2. Pegar en el módulo
    Haga clic dentro del panel de código en blanco y presione Ctrl + V para pegar el código.
  3. Cerrar el editor de VBA
    Haga clic en la X de la esquina superior derecha de la ventana del editor de VBA para volver a Word.

Paso 3: Guardar el documento como habilitado para macros

  1. Haga clic en Archivo > Guardar como
    Elija una ubicación e introduzca un nombre de archivo.
  2. Seleccionar el formato correcto
    En la lista desplegable Guardar como tipo, elija Documento de Word habilitado para macros (docm). Haga clic en Guardar.

Paso 4: Ejecutar la macro

  1. Presione Alt + F8
    Se abre el cuadro de diálogo Macro, que enumera todas las macros disponibles.
  2. Seleccionar UpdateAllFields
    Haga clic en la macro llamada UpdateAllFields y luego en Ejecutar. Un cuadro de mensaje confirma que se han actualizado todos los campos.

ADVERTISEMENT

Errores comunes y limitaciones al usar la macro de actualización de campos

Incluso una macro sencilla puede causar confusión si no se conoce su comportamiento y sus limitaciones. Los siguientes problemas son los más frecuentes entre los usuarios empresariales.

La macro no aparece en la lista de macros

Si no puede ver UpdateAllFields al presionar Alt + F8, la macro se pegó en la ubicación incorrecta. Abra de nuevo el editor de VBA (Alt + F11) y confirme que el código está dentro de un módulo bajo el proyecto Normal o bajo el proyecto del documento. Una macro colocada dentro de un evento de documento o de un módulo de clase no aparecerá en el cuadro de diálogo Macro. Haga clic con el botón derecho en el módulo del Explorador de proyectos y seleccione Quitar para eliminarlo; luego inserte de nuevo un módulo estándar y pegue el código otra vez.

El documento se guarda como .docx y la macro se pierde

Cuando cierra un archivo .docx que contiene una macro, Word elimina el código de VBA de forma silenciosa. Guarde siempre el archivo como .docm después de agregar la macro. Si guardó accidentalmente como .docx, vuelva a pegar el código de la macro y guarde de nuevo con el formato correcto. Para comprobar el formato actual, observe la extensión del archivo en el Explorador de archivos de Windows o haga clic en Archivo > Información y revise el tipo de archivo que aparece en Propiedades.

La macro actualiza los campos pero rompe los números de página de la tabla de contenido

La macro actualiza cada campo exactamente una vez. En una tabla de contenido (TOC), una sola actualización puede no recalcular los números de página si el propio campo TOC requiere dos pasadas. Para solucionarlo, ejecute la macro dos veces seguidas. Como alternativa, haga clic con el botón derecho en la TOC y seleccione Actualizar campo; luego elija Actualizar solo los números de página o Actualizar toda la tabla. Para actualizaciones automáticas de dos pasadas, modifique la macro para llamar a ActiveDocument.TablesOfContents(1).Update dentro de un bucle.

La macro se detiene o devuelve un error en documentos protegidos

Si el documento tiene restricciones de edición o está marcado como final, la macro no puede modificar los campos. Haga clic en Revisar > Restringir edición y detenga la protección. Si el documento está marcado como final, haga clic en la barra Marcado como final en la parte superior y seleccione Editar de todos modos. Después de quitar las restricciones, ejecute la macro de nuevo.

Documento habilitado para macros frente a documento estándar: comportamiento de actualización de campos

Elemento .docm (habilitado para macros) .docx (estándar)
Almacenamiento de macros de VBA Almacena macros dentro del archivo No puede almacenar macros
Método de actualización de campos Ejecutar una macro de VBA personalizada para actualizar todos los campos Debe usar Ctrl + A y luego F9, o depender de la Vista previa de impresión
Advertencia de seguridad al abrir Puede mostrar una advertencia de seguridad; el usuario debe habilitar las macros Sin advertencia de macro
Uso compartido de archivos Algunos servidores de correo bloquean los archivos adjuntos .docm Ampliamente aceptado por los filtros de correo
Velocidad de actualización de campos por lotes Una macro de un clic actualiza cientos de campos en segundos La selección manual y F9 pueden tardar varios minutos en documentos grandes

Ahora puede actualizar todos los campos de un documento de Word presionando Alt + F8 y seleccionando la macro UpdateAllFields. Guarde la macro en la plantilla Normal.dotm para que esté disponible en todos los documentos futuros. Para los documentos que requieren actualizaciones frecuentes de campos, considere asignar la macro a un atajo de teclado personalizado mediante Archivo > Opciones > Personalizar cinta de opciones > Atajos de teclado > Macros.

ADVERTISEMENT