Ha escrito una macro de VBA en Word que automatiza una tarea repetitiva, pero necesita que se ejecute solo cuando un documento en particular esté abierto. De forma predeterminada, Word almacena las macros en la plantilla Normal.dotm, lo que las pone a disposición de todos los documentos. Este artículo explica cómo guardar una macro directamente en un solo documento para que no afecte a otros archivos.
La solución es almacenar la macro en el propio documento en lugar de en una plantilla global. Word admite dos ubicaciones de almacenamiento para macros: el cuerpo del documento y la plantilla global. Cuando guarda una macro dentro de un documento, esa macro viaja con el archivo y se ejecuta solo cuando ese documento está activo. Este enfoque es ideal para la automatización específica de un flujo de trabajo que no debe saturar el entorno global.
Este artículo cubre los pasos exactos para crear una macro en un documento, cómo verificar que se almacene correctamente y qué hacer si la macro no aparece al volver a abrir el archivo. También aprenderá las diferencias entre las macros de nivel de documento y las globales para que pueda elegir el enfoque correcto para cada proyecto.
Puntos clave: Guardar una macro en un solo documento de Word
- Pestaña Desarrollador > grupo Código > Macros > Nombre de la macro > lista desplegable Almacenar macro en > Nombre del documento: La única forma correcta de asignar una macro a un documento específico en lugar de a la plantilla global Normal.dotm.
- Archivo > Guardar como > Documento de Word habilitado para macros (docm): El formato de archivo requerido para cualquier documento que contenga macros. Un archivo .docx normal descartará el código de macro al guardarse.
- Archivo > Opciones > Centro de confianza > Configuración del Centro de confianza > Configuración de macros > Habilitar todas las macros: Configuración de seguridad necesaria para permitir que las macros se ejecuten en el documento. Sin esto, la macro no se ejecutará.
Comprender las ubicaciones de almacenamiento de macros en Word
Word almacena las macros de VBA en uno de dos lugares. La ubicación predeterminada es la plantilla global Normal.dotm. Cualquier macro guardada allí está disponible para todos los documentos que abra. La segunda ubicación es el propio documento. Una macro almacenada en un documento se denomina macro de nivel de documento. Está incrustada en el archivo y se ejecuta solo cuando ese documento específico está activo.
El requisito clave para las macros de nivel de documento es la extensión de archivo. Un documento de Word estándar usa la extensión .docx. Este formato no puede contener código de VBA. Debe guardar el archivo como Documento de Word habilitado para macros con la extensión .docm. Si guarda un archivo .docm como .docx, Word elimina todas las macros de forma silenciosa. La macro se pierde de forma permanente a menos que tenga una copia de seguridad.
Otro factor importante es la configuración de seguridad del Centro de confianza. De forma predeterminada, Word deshabilita todas las macros con notificación. Debe cambiar esta configuración para permitir que las macros se ejecuten. Esta configuración se aplica a todos los documentos, no solo al que contiene su macro. Puede ajustarla temporalmente y revertirla después de las pruebas.
Pasos para guardar una macro en un documento específico
Siga estos pasos para crear una nueva macro y almacenarla dentro de un solo documento. El procedimiento supone que ya ha abierto el documento de destino en Word.
- Habilite la pestaña Desarrollador
Vaya a Archivo > Opciones > Personalizar cinta de opciones. En el panel derecho, en Fichas principales, marque la casilla junto a Desarrollador. Haga clic en Aceptar. La pestaña Desarrollador ahora aparece en la cinta de opciones. - Abra el Editor de Visual Basic
En la pestaña Desarrollador, haga clic en Visual Basic. Como alternativa, presione Alt+F11. Se abre el editor de VBA. - Inserte un módulo en el proyecto correcto
En el panel Explorador de proyectos de la izquierda, busque el proyecto que coincida con el nombre de su documento. Aparece como Proyecto (NombreDeSuDocumento). Haga clic con el botón derecho en ese proyecto, seleccione Insertar y luego Módulo. Aparece un nuevo módulo de código bajo el proyecto. - Escriba o pegue el código de la macro
En la ventana del módulo, escriba o pegue su código de VBA. Por ejemplo:Sub MyDocumentMacro()
MsgBox "This macro runs only in this document."
End Sub - Guarde el documento como un archivo habilitado para macros
Cierre el editor de VBA. Vaya a Archivo > Guardar como. En la lista desplegable Guardar como tipo, seleccione Documento de Word habilitado para macros (docm). Elija una carpeta y un nombre de archivo, y luego haga clic en Guardar. - Habilite las macros en el Centro de confianza
Vaya a Archivo > Opciones > Centro de confianza > Configuración del Centro de confianza. Seleccione Configuración de macros. Elija Habilitar todas las macros. Haga clic en Aceptar dos veces. - Pruebe la macro
Presione Alt+F8 para abrir el cuadro de diálogo Macros. En la lista desplegable Macros en, confirme que aparece el nombre de su documento. Seleccione su macro y haga clic en Ejecutar. La macro se ejecuta.
Qué hacer si la macro no aparece después de volver a abrir
Si vuelve a abrir el documento más tarde y la macro falta o no se ejecuta, verifique estos tres factores en orden.
¿Guardó como .docm en lugar de .docx?
La causa más común es guardar el archivo con una extensión .docx. Word descarta silenciosamente todo el código de VBA cuando guarda como .docx. Abra el archivo, verifique la extensión del archivo en la barra de título o en el Explorador de archivos. Si termina en .docx, la macro se ha perdido. Debe volver a crearla y guardarla como .docm.
¿Está la macro almacenada en el proyecto correcto?
Abra el editor de VBA con Alt+F11. En el Explorador de proyectos, busque un proyecto con el nombre de su documento. Si la macro está dentro de Proyecto (Normal) en su lugar, es una macro global, no de nivel de documento. Haga clic con el botón derecho en el módulo en Normal, elija Quitar, luego vuelva a insertar el módulo bajo el proyecto del documento correcto y repita los pasos de guardado.
¿Están las macros habilitadas en el Centro de confianza?
Word deshabilita las macros de forma predeterminada cuando abre un archivo desde una ubicación no confiable. Vaya a Archivo > Opciones > Centro de confianza > Configuración del Centro de confianza > Configuración de macros. Si la configuración es Deshabilitar todas las macros sin notificación, cámbiela a Habilitar todas las macros. También agregue la carpeta que contiene su archivo .docm a la lista de Ubicaciones de confianza para evitar el aviso de seguridad cada vez.
Macro de documento de Word vs macro global: diferencias clave
| Elemento | Macro de nivel de documento | Macro global (Normal.dotm) |
|---|---|---|
| Ubicación de almacenamiento | Incrustada en el archivo .docm | Plantilla Normal.dotm en la carpeta de plantillas del usuario |
| Ámbito | Solo el documento host | Todos los documentos abiertos en Word |
| Extensión de archivo requerida | .docm | Ninguna (Normal.dotm siempre se carga) |
| Portabilidad | Viaja con el archivo del documento | Permanece solo en la máquina local |
| Riesgo de copia de seguridad | Se pierde si se guarda como .docx | Se pierde si Normal.dotm se daña o se elimina |
| Mejor caso de uso | Automatización de un solo proyecto | Utilidades reutilizables en todo el trabajo |
Ahora puede guardar una macro en un documento específico y mantener su plantilla global limpia. Use la pestaña Desarrollador para insertar un módulo en el proyecto correcto, escriba su código y guarde el archivo como .docm. Verifique siempre la extensión del archivo después de guardar. Por seguridad, habilite las macros en el Centro de confianza o agregue la carpeta del documento a Ubicaciones de confianza. Como sugerencia avanzada, también puede exportar un módulo desde el editor de VBA como un archivo .bas e importarlo en cualquier proyecto de documento sin volver a escribir el código.