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.
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
- 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. - 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. - 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. - 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. - 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
- Abra el Editor de Visual Basic
En la pestaña Desarrollador, haga clic en Visual Basic. Como alternativa, presione Alt+F11 en el teclado. - 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. - 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 SubEsta 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. - 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. - 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
- Coloque el cursor donde desea el campo
Haga clic en el documento en la ubicación exacta donde debe aparecer el campo. - 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. - Seleccione InsertCustomField y haga clic en Ejecutar
Haga clic en el nombre de la macro y luego en Ejecutar. Aparece un cuadro de entrada. - Escriba el código de campo y presione Entrar
Por ejemplo, escribaDOCPROPERTY "Company"y presione Entrar. El campo se inserta en la posición del cursor.
Asignar un atajo de teclado a la macro (opcional)
- Vaya a Archivo > Opciones > Personalizar cinta de opciones
Haga clic en Archivo, luego en Opciones y luego en Personalizar cinta de opciones. - 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. - Seleccione Macros en la lista Categorías
Desplácese por la lista izquierda y haga clic en Macros. - Seleccione InsertCustomField en la lista Comandos
Haga clic en el nombre de la macro en la lista derecha. - 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.
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.