De forma predeterminada, solo puede ejecutar una regla en una carpeta a la vez. En este artículo, le enseñaremos cómo utilizar un fragmento de código VBA para ejecutar una regla específica en todas las carpetas de correo.
Outlook permite a los usuarios ejecutar la regla manualmente. Puede acceder al cuadro de diálogo "Reglas y alertas" y presionar el botón "Ejecutar reglas ahora". En el cuadro de diálogo siguiente, seleccione una regla específica y elija una carpeta en la que desee ejecutar esta regla. Pero, si desea ejecutar rápidamente una regla en todas las carpetas de correo, puede usar el siguiente código VBA.

Ejecute rápidamente una regla específica en todas las carpetas de correo
- En primer lugar, start su programa Outlook.
- Luego, en la ventana principal de Outlook, presione los botones de tecla "Alt + F11".
- A continuación, en la ventana emergente "Microsoft Visual Basic para aplicaciones", debe abrir un módulo que no esté en uso.
- Posteriormente, copie el código VBA a continuación en esta ventana del módulo. Además, debe cambiar algunas líneas según su propio caso, como el nombre de la regla.
Sub RunSpecificRule_AllMailFolders()
Dim objStores As Outlook.Stores
Dim objStore As Outlook.Store
Dim objPSTFile As Outlook.Folder
Dim objFolders As Outlook.folders
Dim objFolder As Object
Set objStores = Outlook.Application.Session.Stores
'Process all Outlook PST files in your Outlook
For Each objStore In objStores
Set objPSTFile = objStore.GetRootFolder
For Each objFolder In objPSTFile.folders
Call ProcessFolders(objFolder)
Next
Next
MsgBox "Complete!", vbExclamation + vbOKOnly, "Run Rule "
End Sub
Sub ProcessFolders(ByVal objCurrentFolder As Outlook.Folder)
Dim objRules As Outlook.Rules
Dim objRule As Outlook.Rule
Dim objSubfolder As Outlook.Folder
Set objRules = Outlook.Application.Session.DefaultStore.GetRules
'Change the rule name as per your actual case
Set objRule = objRules.Item("Move Mails to Temp")
On Error Resume Next
'Only work on non-empty Mail folder
If objCurrentFolder.Items.count > 0 And objCurrentFolder.DefaultItemType = olMailItem Then
With objRule
.Enabled = True
.Execute ShowProgress:=True, Folder:=objCurrentFolder, IncludeSubfolders:=True
End With
End If
'Process subfolders recursively
If objCurrentFolder.folders.count > 0 Then
For Each objSubfolder In objCurrentFolder.folders
Call ProcessFolders(objSubfolder)
Next
End If
End Sub
- Después de eso, debe verificar la configuración de la macro de Outlook, asegurándose de que la macro esté permitida.
- Eventualmente puedes intentarlo.
- Simplemente haga clic en la subrutina "RunSpecificRule_AllMailFolders".
- Luego presione el botón de la tecla F5 para activar este código.
- A continuación, la macro se ejecutará inmediatamente.
- Una vez que se complete, recibirá un mensaje, como la siguiente captura de pantalla. Se refiere a que la regla ha terminado.
Cuidado con las macros maliciosas
Como todos sabemos, los correos electrónicos maliciosos se han vuelto cada vez más desenfrenados. Estos correos electrónicos suelen llevar macros maliciosos. Por lo tanto, si configura el nivel de seguridad macro de Outlook en un nivel bajo, debe tener cuidado con los virus y el malware ocultos. Además, es prudente hacerse con una poderosa herramienta de reparación de PST, como DataNumen Outlook Repair. Es capaz de reparar PST archivar y extraer el máximo de datos para usted sin sudar.
Introducción del autor:
Shirley Zhang es experta en recuperación de datos en DataNumen, Inc., que es el líder mundial en tecnologías de recuperación de datos, incluyendo recuperar mdf y productos de software de reparación de Outlook. Para más información visite www.datanumen.com

