Cómo ejecutar una macro de VBA automáticamente al abrir Word
🔍 WiseChecker

Cómo ejecutar una macro de VBA automáticamente al abrir Word

Desea que una macro de VBA se inicie cada vez que abre Word sin ejecutarla manualmente. Word no tiene una configuración integrada para ejecutar automáticamente una macro al inicio, pero admite un desencadenador basado en eventos llamado AutoExec. Este artículo explica cómo usar la macro AutoExec para automatizar tareas como aplicar una plantilla personalizada, vaciar el portapapeles o restablecer el formato predeterminado al iniciar Word.

Puntos clave: cómo activar una macro de VBA al iniciar Word

  • Macro AutoExec en Normal.dotm: Coloque una macro llamada AutoExec en la plantilla Normal.dotm para ejecutarla cada vez que se abre Word.
  • Editor de Visual Basic (Alt+F11): Abra el editor de VBA para crear y editar el código de la macro AutoExec.
  • Centro de confianza > Configuración de macros > Habilitar todas las macros: Necesario para permitir que la macro AutoExec se ejecute sin una solicitud de seguridad.

ADVERTISEMENT

Qué es la macro AutoExec en VBA de Word

La macro AutoExec es una subrutina especial que Word ejecuta automáticamente al iniciarse la aplicación. Debe almacenarse en la plantilla global Normal.dotm. A diferencia de otras macros que se ejecutan al abrir un documento (AutoOpen) o al cerrarlo (AutoClose), AutoExec se activa exactamente una vez por sesión de Word, antes de que se cargue cualquier documento. Esto la hace ideal para tareas que afectan a todo el entorno de Word, como establecer fuentes predeterminadas, habilitar una vista específica o cargar un complemento.

Para usar AutoExec, necesita conocimientos básicos de VBA. El código de la macro se escribe en el Editor de Visual Basic. También debe ajustar la configuración de seguridad de macros de Word para que se permita la ejecución de la macro. De forma predeterminada, Word deshabilita todas las macros con notificación. La macro AutoExec no se ejecutará a menos que cambie esta configuración a “Habilitar todas las macros” o firme digitalmente el proyecto de macro.

Requisitos previos para crear una macro AutoExec

Antes de escribir la macro, confirme lo siguiente:

  • Tiene acceso a la pestaña Desarrollador en Word. Si no es así, habilítela yendo a Archivo > Opciones > Personalizar cinta de opciones y marcando Desarrollador.
  • Entiende el código de VBA que desea ejecutar. Pruebe la macro manualmente antes de configurarla para que se ejecute automáticamente.
  • Está preparado para cambiar la configuración de seguridad de macros, lo que puede exponer Word a macros malintencionadas si abre documentos que no son de confianza.

Pasos para crear y ejecutar una macro AutoExec

Siga estos pasos para agregar una macro AutoExec a la plantilla Normal.dotm y configurar Word para que la ejecute al iniciarse.

Paso 1: Abrir el Editor de Visual Basic

  1. Abra Word
    Asegúrese de que no haya documentos abiertos que no desee modificar. La macro AutoExec se almacenará en la plantilla global.
  2. Presione Alt+F11
    Esto abre el editor de Visual Basic para Aplicaciones. También puede hacer clic en Desarrollador > Visual Basic.

Paso 2: Insertar la macro AutoExec en Normal.dotm

  1. Localice Normal.dotm en el Explorador de proyectos
    En el editor de VBA, busque el panel Proyecto a la izquierda. Expanda “Normal” si aún no está expandido.
  2. Haga clic derecho en Normal e inserte un módulo
    Haga clic derecho en Normal, seleccione Insertar y luego Módulo. Se abre una nueva ventana de código.
  3. Escriba la macro AutoExec
    En la ventana de código, escriba la siguiente estructura:
    Sub AutoExec()
    ' Your code here
    MsgBox "Word has started"
    End Sub

    Reemplace la línea MsgBox con su código de VBA real. El nombre de la macro debe ser exactamente AutoExec (distingue mayúsculas y minúsculas).
  4. Guarde la macro
    Presione Ctrl+S para guardar la plantilla Normal.dotm. Si se le solicita, confirme guardar los cambios en la plantilla global.

Paso 3: Ajustar la seguridad de macros para permitir que se ejecute la macro

  1. Abra el Centro de confianza
    Vaya a Archivo > Opciones > Centro de confianza > Configuración del Centro de confianza.
  2. Seleccione Configuración de macros
    Haga clic en Configuración de macros en el panel izquierdo.
  3. Elija Habilitar todas las macros
    Seleccione “Habilitar todas las macros (no se recomienda; puede ejecutarse código potencialmente peligroso)”.
  4. Marque el acceso al modelo de objetos del proyecto de VBA
    Si su macro interactúa con el modelo de objetos de VBA, marque también “Confiar en el acceso al modelo de objetos del proyecto de VBA”.
  5. Haga clic en Aceptar
    Cierre todos los cuadros de diálogo. Reinicie Word para probar la macro.

Paso 4: Probar la macro AutoExec

  1. Cierre Word por completo
    Asegúrese de que no haya ningún proceso de Word ejecutándose en segundo plano.
  2. Inicie Word
    Si usó el ejemplo de MsgBox, debería aparecer un cuadro de mensaje inmediatamente después de que se abra Word. Si no sucede nada, revise el nombre de la macro y la configuración de seguridad.

Problemas comunes cuando AutoExec no se ejecuta

ADVERTISEMENT

La macro AutoExec no está en Normal.dotm

La macro AutoExec debe residir en la plantilla Normal.dotm. Si la colocó en una plantilla o documento diferente, no se ejecutará. Abra el editor de VBA, confirme que la macro está en Normal > Módulos y no en un proyecto con el nombre de un documento específico.

La seguridad de macros bloquea la ejecución

Si su configuración de macros es “Deshabilitar todas las macros con notificación”, Word no ejecutará la macro AutoExec. Cambie la configuración a “Habilitar todas las macros” como se describe en el Paso 3. Para entornos de producción, considere firmar digitalmente el proyecto de macro en lugar de reducir la seguridad.

Word se inicia desde un acceso directo a un documento

Si Word se inicia haciendo doble clic en un archivo de documento, la macro AutoExec igualmente se ejecuta. Sin embargo, si el documento contiene una macro AutoOpen, esa macro se ejecuta después de AutoExec. El orden siempre es primero AutoExec, luego AutoOpen. Si su AutoExec depende de un documento en blanco, puede comportarse de manera diferente cuando se abre un documento específico.

La macro contiene errores que impiden la ejecución

Un error de sintaxis o en tiempo de ejecución en la macro AutoExec impedirá que se ejecute. Pruebe la macro manualmente presionando F5 en el editor de VBA antes de confiar en el comportamiento de ejecución automática. Si se produce un error al iniciar, Word puede mostrar un aviso de depuración u omitir la macro silenciosamente.

AutoExec vs AutoOpen: diferencias clave

Elemento AutoExec AutoOpen
Evento desencadenante Inicio de la aplicación Word Apertura de un documento específico
Ubicación de almacenamiento Plantilla global Normal.dotm Cualquier documento o plantilla
Se ejecuta cuando Una vez por sesión de Word, antes de que se cargue cualquier documento Cada vez que se abre un documento que contiene la macro
Caso de uso Configuración del entorno global (fuente predeterminada, carga de complementos) Acciones específicas del documento (formato, limpieza)
Requisito de seguridad Las macros deben estar habilitadas globalmente Las macros deben estar habilitadas para el documento

Ahora puede configurar una macro AutoExec para automatizar cualquier tarea repetitiva al iniciar Word. Como siguiente paso, explore la macro AutoNew, que se ejecuta cuando crea un nuevo documento a partir de una plantilla. Un consejo avanzado: use el método Application.OnTime dentro de AutoExec para programar la ejecución de una macro unos segundos después del inicio, lo que evita interferir con la secuencia de carga inicial de Word.

ADVERTISEMENT