Cómo crear una macro de VBA de Word que inserte un campo personalizado en el cursor
🔍 WiseChecker

Cómo crear una macro de VBA de Word que inserte un campo personalizado en el cursor

Desea insertar un campo personalizado en la posición exacta del cursor en un documento de Word sin tener que navegar manualmente por los menús cada vez. Word no incluye un comando integrado para insertar códigos de campo arbitrarios con un solo clic. Al escribir una breve macro de VBA, puede insertar cualquier código de campo, como DocProperty, UserName o una fórmula personalizada, directamente donde se encuentra el cursor. Este artículo explica cómo crear, ejecutar y asignar un atajo de teclado a una macro de VBA que inserta un campo personalizado en el punto de inserción.

Puntos clave: Crear una macro de VBA para insertar un campo personalizado

  • Alt+F11 (Editor de VBA): Abre el entorno donde se escribe y almacena el código de la macro.
  • Método Selection.Fields.Add: El comando de VBA que inserta un campo en la posición actual del cursor con una cadena de código de campo específica.
  • Archivo > Opciones > Personalizar cinta de opciones > Desarrollador: Habilita la pestaña Desarrollador necesaria para acceder al botón Macros y al Editor de Visual Basic.

ADVERTISEMENT

Qué hace la macro de VBA y qué necesita antes de comenzar

Una macro de VBA es un pequeño programa que automatiza tareas repetitivas en Word. La macro que creará utiliza el método Selection.Fields.Add para insertar un campo en la ubicación exacta del cursor de texto. Un campo es un conjunto de códigos que indica a Word que inserte contenido dinámico, como propiedades del documento, números de página o valores calculados. La macro no requiere ningún complemento externo; se ejecuta completamente dentro del motor de VBA de Word.

Antes de crear la macro, debe habilitar la pestaña Desarrollador en la cinta de opciones. La pestaña Desarrollador proporciona acceso al Editor de Visual Basic (VBE), a la grabación de macros y a la configuración de seguridad de macros. Sin esta pestaña, no puede escribir ni ejecutar macros. También debe establecer el nivel de seguridad de macros para permitir todas las macros o al menos para preguntar antes de habilitarlas. Los pasos a continuación suponen que utiliza Word 2019, Word 2021 o Word para Microsoft 365 en Windows 10 o Windows 11. El mismo proceso funciona en Word 2016.

Pasos para crear y ejecutar una macro de VBA que inserta un campo personalizado en el cursor

Habilitar la pestaña Desarrollador y ajustar la seguridad de macros

  1. Abra Word y vaya a Archivo > Opciones
    Haga clic en Archivo en la esquina superior izquierda y luego en Opciones en la parte inferior del menú izquierdo.
  2. Seleccione Personalizar cinta de opciones
    En el cuadro de diálogo Opciones de Word, haga clic en Personalizar cinta de opciones en la barra lateral izquierda.
  3. Marque la casilla Desarrollador en la lista derecha
    En Fichas principales, busque Desarrollador y marque su casilla. Haga clic en Aceptar para cerrar el cuadro de diálogo. La pestaña Desarrollador ahora aparece en la cinta de opciones.
  4. Abra la configuración de Seguridad de macros
    Haga clic en la pestaña Desarrollador y luego en Seguridad de macros en el grupo Código.
  5. Seleccione Habilitar todas las macros
    En el cuadro de diálogo Centro de confianza, elija Habilitar todas las macros. Marque también Confiar en el acceso al modelo de objetos del proyecto de VBA. Haga clic en Aceptar. Esta configuración permite que la macro se ejecute sin interrupciones.

Escribir el código de la macro de VBA

  1. Abra el Editor de Visual Basic
    En la pestaña Desarrollador, haga clic en Visual Basic. Como alternativa, presione Alt+F11 en el teclado.
  2. Inserte un nuevo módulo
    En el Editor de VBA, haga clic en Insertar en la barra de menús y luego seleccione Módulo. Se abre una ventana de código en blanco.
  3. Pegue el código de la macro en el módulo
    Copie el siguiente código y péguelo en el área de código blanca:

    Sub InsertCustomField()
    Dim fieldCode As String
    fieldCode = InputBox("Enter the field code to insert:")
    If fieldCode <> "" Then
    Selection.Fields.Add Range:=Selection.Range, Type:=wdFieldEmpty, Text:=fieldCode
    End If
    End Sub

    Esta macro muestra un cuadro de entrada donde se escribe el código de campo, como DOCPROPERTY "Author" o =SUM(1,2). Si introduce un código, inserta ese campo en el cursor.

  4. Guarde la macro
    Presione Ctrl+S. En el cuadro de diálogo Guardar como, elija un nombre como “CustomFieldMacro” y mantenga el tipo de archivo como .bas. La macro ahora se almacena en la plantilla Normal.dotm, lo que la hace disponible en todos los documentos futuros.
  5. Cierre el Editor de VBA
    Haga clic en la X en la esquina superior derecha de la ventana del Editor de VBA para volver a su documento.

Ejecutar la macro

  1. Coloque el cursor donde desea el campo
    Haga clic en el documento en la ubicación exacta donde debe aparecer el campo.
  2. Abra el cuadro de diálogo Macros
    En la pestaña Desarrollador, haga clic en Macros. El cuadro de diálogo Macros enumera todas las macros disponibles.
  3. Seleccione InsertCustomField y haga clic en Ejecutar
    Haga clic en el nombre de la macro y luego en Ejecutar. Aparece un cuadro de entrada.
  4. Escriba el código de campo y presione Entrar
    Por ejemplo, escriba DOCPROPERTY "Company" y presione Entrar. El campo se inserta en la posición del cursor.

Asignar un atajo de teclado a la macro (opcional)

  1. Vaya a Archivo > Opciones > Personalizar cinta de opciones
    Haga clic en Archivo, luego en Opciones y luego en Personalizar cinta de opciones.
  2. Haga clic en el botón Personalizar junto a Atajos de teclado
    En la parte inferior del cuadro de diálogo, haga clic en Personalizar.
  3. Seleccione Macros en la lista Categorías
    Desplácese por la lista izquierda y haga clic en Macros.
  4. Seleccione InsertCustomField en la lista Comandos
    Haga clic en el nombre de la macro en la lista derecha.
  5. Presione una nueva combinación de teclas de atajo
    Haga clic en el cuadro Presione la nueva tecla de atajo y presione, por ejemplo, Alt+Shift+F. Haga clic en Asignar y luego en Cerrar. Ahora puede presionar ese atajo para ejecutar la macro.

ADVERTISEMENT

Problemas comunes de macros y qué tener en cuenta

La macro no aparece en la lista de macros

Si la macro falta en el cuadro de diálogo Macros, es posible que haya guardado el módulo en un documento que no está abierto. Las macros almacenadas en Normal.dotm siempre están disponibles. Para mover una macro a Normal.dotm, abra el Editor de VBA, arrastre el módulo desde el proyecto del documento al proyecto Normal, o vuelva a crear la macro en un nuevo módulo bajo Normal.

Word muestra una advertencia de seguridad y bloquea la macro

Si ve una barra amarilla que dice “Se han deshabilitado las macros”, la seguridad de macros está configurada en Deshabilitar todas las macros. Vaya a Desarrollador > Seguridad de macros y seleccione Habilitar todas las macros. Para mayor seguridad, puede firmar digitalmente la macro o almacenarla en una ubicación de confianza.

El campo no se actualiza después de la inserción

Los campos insertados por la macro muestran el valor actual en el momento de la inserción. Para actualizar el campo, haga clic con el botón derecho en él y seleccione Actualizar campo, o presione F9 con el campo seleccionado. Para que el campo se actualice automáticamente al abrir el documento, incluya el modificador \ MERGEFORMAT en el código de campo, por ejemplo: DOCPROPERTY "Author" \ MERGEFORMAT.

Insertar un campo que requiere un marcador o un rango con nombre

Algunos tipos de campo, como REF o PAGEREF, requieren que exista un marcador en el documento. Si inserta un campo que hace referencia a un marcador inexistente, Word muestra un error. Defina primero el marcador seleccionando texto y presionando Ctrl+Shift+F5, luego use la macro para insertar el campo con el nombre de marcador correcto.

Inserción manual vs macro de VBA: comparación de métodos de inserción de campos

Elemento Inserción manual (Alt+F9 + Ctrl+F9) Macro de VBA (Selection.Fields.Add)
Velocidad Varias pulsaciones de teclas por campo Un clic o atajo de teclado
Flexibilidad del código de campo Debe escribir el código entre corchetes manualmente Acepta cualquier cadena de código de campo válida
Repetibilidad Repetir los pasos cada vez La macro se puede ejecutar cientos de veces
Riesgo de error Error tipográfico en corchetes o código El código es consistente; validación de entrada opcional
Curva de aprendizaje No se necesitan conocimientos de VBA Se requieren conocimientos básicos de VBA

Ahora puede crear una macro de VBA que inserte un campo personalizado en el cursor en Word. Comience habilitando la pestaña Desarrollador, escribiendo la macro en el Editor de VBA y ejecutándola desde el cuadro de diálogo Macros. Para un acceso más rápido, asigne un atajo de teclado como Alt+Shift+F. Para ampliar la macro, modifique el código para aceptar un código de campo predefinido sin un cuadro de entrada, o para insertar varios campos en secuencia.

ADVERTISEMENT