Cómo configurar una regla de Outlook para ejecutar una acción de script (solo en la versión clásica)
🔍 WiseChecker

Cómo configurar una regla de Outlook para ejecutar una acción de script (solo en la versión clásica)

Desea automatizar una acción personalizada en Outlook, como mover correos electrónicos a una carpeta específica según una lógica compleja o guardar archivos adjuntos automáticamente. Es posible que las condiciones y acciones de reglas integradas no cubran sus necesidades exactas. Las reglas de Outlook pueden ejecutar una acción de script, pero esta característica solo está disponible en la versión clásica de Outlook para Windows, no en el nuevo Outlook para Windows ni en Outlook en la web. Este artículo explica cómo habilitar la acción Ejecutar un script en una regla y cómo escribir y asignar un script VBA simple para automatizar una tarea.

Puntos clave: Crear una regla de Outlook que ejecute un script VBA

  • Archivo > Opciones > Centro de confianza > Configuración del Centro de confianza > Configuración de macros: Habilite todas las macros para permitir que los scripts VBA se ejecuten cuando una regla los active.
  • Pestaña Desarrollador > Visual Basic: Abra el editor de VBA e inserte un nuevo módulo para escribir su script para la acción de la regla.
  • Archivo > Administrar reglas y alertas > Nueva regla > Empezar con una regla en blanco > Comprobar mensajes > Seleccionar acción Ejecutar un script: Asigne su script VBA como la acción de la regla.

ADVERTISEMENT

Por qué la acción Ejecutar un script se limita a Outlook clásico

La acción Ejecutar un script forma parte del motor de reglas del lado cliente heredado de Outlook. Este motor se ejecuta en su equipo local y puede ejecutar macros VBA almacenadas en el proyecto de VBA de Outlook. El nuevo Outlook para Windows y Outlook en la web usan un motor de reglas del lado servidor que no admite la ejecución de scripts locales. Outlook clásico (la aplicación de escritorio completa) conserva esta característica para la compatibilidad con flujos de trabajo empresariales que dependen de la automatización personalizada.

La acción de script se ejecuta después de que se cumplan las condiciones de la regla. El script debe ser una subrutina de VBA en el proyecto de VBA de Outlook que acepte un único argumento de tipo MailItem. El script puede leer o modificar el elemento de correo, pero no puede crear nuevos elementos ni mostrar cuadros de diálogo durante la ejecución de la regla. Si su script requiere entrada del usuario o crea nuevos elementos, fallará silenciosamente.

Pasos para configurar una regla de Outlook que ejecute un script

  1. Habilitar macros en el Centro de confianza de Outlook
    Abra Outlook. Vaya a Archivo > Opciones > Centro de confianza. Haga clic en Configuración del Centro de confianza. Seleccione Configuración de macros. Elija Habilitar todas las macros. Haga clic en Aceptar dos veces para cerrar los cuadros de diálogo.
  2. Abrir el editor de VBA
    Presione Alt + F11 para abrir el editor de Visual Basic para Aplicaciones. Si el panel Explorador de proyectos no está visible, presione Ctrl + R para mostrarlo.
  3. Insertar un nuevo módulo
    En el Explorador de proyectos, busque Project1 (VbaProject.OTM). Haga clic con el botón derecho y seleccione Insertar > Módulo. Se abre una ventana de código en blanco.
  4. Escribir la subrutina del script
    Pegue el siguiente script de ejemplo en la ventana del módulo. Este script mueve los mensajes de un remitente específico a una carpeta llamada “Project X”. Reemplace el correo electrónico del remitente y el nombre de la carpeta según sea necesario.
    Public Sub MoveToProjectX(ByVal myMail As Outlook.MailItem)
        Dim objFolder As Outlook.Folder
        Set objFolder = Application.Session.GetDefaultFolder(olFolderInbox).Folders("Project X")
        myMail.Move objFolder
        Set objFolder = Nothing
    End Sub
  5. Guardar el script
    Presione Ctrl + S para guardar el proyecto de VBA. Cierre el editor de VBA.
  6. Crear una nueva regla
    Vaya a Archivo > Administrar reglas y alertas. Haga clic en Nueva regla. En Empezar con una regla en blanco, seleccione Comprobar mensajes cuando lleguen. Haga clic en Siguiente.
  7. Establecer condiciones
    Seleccione las condiciones que desee. Por ejemplo, marque de personas o grupo público y luego haga clic en el valor subrayado en la descripción de la regla para especificar el remitente. Haga clic en Siguiente.
  8. Asignar la acción de script
    En la lista de acciones, desplácese hacia abajo y marque ejecutar un script. En el área de descripción de la regla, haga clic en la palabra subrayada script. Un cuadro de diálogo muestra una lista de scripts disponibles. Seleccione MoveToProjectX y haga clic en Aceptar. Haga clic en Siguiente.
  9. Establecer excepciones y nombrar la regla
    Agregue las excepciones que necesite. Haga clic en Siguiente. Escriba un nombre para la regla, como “Mover correos de Project X”. Asegúrese de que Activar esta regla esté marcada. Haga clic en Finalizar.

ADVERTISEMENT

Problemas comunes al ejecutar una regla de script

Mensaje “La acción de script no está disponible”

Este error aparece cuando el proyecto de VBA no contiene una subrutina pública con la firma correcta. La subrutina debe ser Public y aceptar exactamente un argumento de tipo Outlook.MailItem. Si la subrutina es Private o tiene un tipo de argumento diferente, el editor de reglas no la mostrará. Abra el editor de VBA y verifique que la declaración de la subrutina coincida con el ejemplo anterior.

El script se ejecuta pero no hace nada

El script puede contener un error de tiempo de ejecución que se ignora silenciosamente. Pruebe el script manualmente ejecutándolo desde el editor de VBA con un elemento de correo de ejemplo. En la ventana Inmediato, escriba ?Application.Session.GetDefaultFolder(olFolderInbox).Folders("Project X") para confirmar que la carpeta existe. Si el nombre de la carpeta está mal escrito, el script fallará silenciosamente. También asegúrese de que la configuración de seguridad de macros no esté bloqueando la ejecución. Establezca la seguridad de macros en Habilitar todas las macros como se muestra en el paso 1.

La regla se ejecuta pero el script no se activa

Es posible que el motor de reglas no active acciones del lado cliente si Outlook se ejecuta en modo en caché con una conexión lenta. Compruebe que Outlook esté en línea. Vaya a la pestaña Enviar/Recibir y haga clic en Trabajar sin conexión para desactivarlo si está activado. También verifique que la regla no esté configurada para ejecutarse solo en este equipo y que el script esté guardado en el proyecto de VBA correcto. El script debe estar en Project1 (VbaProject.OTM), no en un proyecto de complemento.

Elemento Outlook clásico Nuevo Outlook / Outlook Web
Tipo de regla Del lado cliente y del lado servidor Solo del lado servidor
Acción Ejecutar un script Disponible No disponible
Requisito de macro VBA Requerido No compatible
Ideal para Automatización personalizada en el equipo local Reglas básicas que funcionan en todas partes

La acción Ejecutar un script en Outlook clásico le brinda la capacidad de automatizar tareas que las reglas estándar no pueden manejar, como mover correos electrónicos según una lógica personalizada o modificar propiedades de mensajes. Antes de crear una regla de script, confirme que está usando Outlook clásico para Windows y que las macros están habilitadas. Escriba primero un script de prueba simple y luego asígnelo a una regla con una sola condición. Este enfoque reduce el tiempo de solución de problemas y le ayuda a aprender la firma exacta del script requerida. Para la automatización avanzada, considere usar Power Automate con conectores de Outlook, que funciona en todas las versiones de Outlook y no requiere VBA.

ADVERTISEMENT