Necesito una macro de Outlook que ejecute una regla que configuré en una carpeta específica que configuré. Se puede hacer esto?

Hola, Ian.

Si, eso es posible. Puedes hacerlo con algo como esto

  Sub RunRule ()
	 'En la siguiente línea, edite el nombre de la regla que desea ejecutar
     Const RULE_NAME = "El nombre de su regla va aquí"
	 'En la línea siguiente, edite la ruta a la carpeta en la que desea ejecutar la regla
     Const TARGET_FOLDER = "La ruta de la carpeta de destino va aquí"
	 'En la siguiente línea, cambie el valor a Verdadero si desea que la regla procese todas las subcarpetas en la carpeta de destino
     Const INCLUDE_SUBFOLDERS = False
	 'En la línea siguiente, cambie el valor a Verdadero si desea ver un cuadro de diálogo que muestra el progreso de la regla a medida que se ejecuta
     Const SHOW_PROGRESS = Falso
     Const SCRIPT_NAME = "Ejecutar regla"
     Dim olkRul As Outlook.Rule, olkFol As Outlook.MAPIFolder
     Establecer olkFol = OpenOutlookFolder (TARGET_FOLDER)
     If TypeName (olkFol) = "Nothing" Entonces
         MsgBox "No se pudo encontrar una carpeta llamada" & TARGET_FOLDER, vbCritical + vbOKOnly, SCRIPT_NAME
     Más
         Establezca olkRul = Session.GetDefaultFolder (olFolderInbox) .Store.GetRules.Item (RULE_NAME)
         olkRul.Execute SHOW_PROGRESS, olkFol, INCLUDE_SUBFOLDERS
     Terminara si
     Establecer olkRul = Nada
     Establecer olkFol = Nada
 End Sub

 Función OpenOutlookFolder (strFolderPath como cadena) como Outlook.MAPIFolder
     'Propósito: abre una carpeta de Outlook desde una ruta de carpeta'.
     'Escrito: 24/04/2009'
     'Autor: David Lee'
     'Outlook: todas las versiones'
     Dim arrFolders como variante, _
         varFolder como variante, _
         bolBeyondRoot As Boolean
     En Error Reanudar Siguiente
     If strFolderPath = "" Entonces
         Establecer OpenOutlookFolder = Nada
     Más
         Do While VBA.Left (strFolderPath, 1) = "\"
             strFolderPath = VBA.Right (strFolderPath, VBA.Len (strFolderPath) - 1)
         Lazo
         arrFolders = Split (strFolderPath, "\")
         Para cada varFolder In arrFolders
             Seleccione el caso bolBeyondRoot
                 Caso falso
                     Establecer OpenOutlookFolder = Outlook.Session.Folders (varFolder)
                     bolBeyondRoot = True
                 Caso verdadero
                     Establecer OpenOutlookFolder = OpenOutlookFolder.Folders (varFolder)
             Seleccionar final
             Si Err.Number  0 entonces
                 Establecer OpenOutlookFolder = Nada
                 Salir por
             Terminara si
         próximo
     Terminara si
     En error GoTo 0
 Función final