Par défaut, vous ne pouvez exécuter une règle que dans un dossier à la fois. Dans cet article, nous allons vous apprendre à utiliser un morceau de code VBA pour exécuter une règle spécifique dans tous les dossiers de messagerie.
Outlook permet aux utilisateurs d'exécuter la règle manuellement. Vous pouvez simplement accéder à la boîte de dialogue "Règles et alertes" et cliquer sur le bouton "Exécuter les règles maintenant". Dans la boîte de dialogue suivante, sélectionnez une règle spécifique et choisissez un dossier dans lequel vous souhaitez exécuter cette règle. Mais, si vous souhaitez exécuter rapidement une règle dans tous les dossiers de messagerie, vous pouvez utiliser le code VBA suivant.

Exécutez rapidement une règle spécifique dans tous les dossiers de messagerie
- En premier lieu, start votre programme Outlook.
- Ensuite, dans la fenêtre principale d'Outlook, appuyez sur les touches "Alt + F11".
- Ensuite, dans la fenêtre émergente "Microsoft Visual Basic pour Applications", vous devez ouvrir un module non utilisé.
- Ensuite, copiez le code VBA ci-dessous dans cette fenêtre de module. De plus, vous devez modifier certaines lignes en fonction de votre propre cas, comme le nom de la règle.
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
- Après cela, vous devez vérifier vos paramètres de macro Outlook, en vous assurant que la macro est autorisée.
- Finalement, vous pouvez essayer.
- Cliquez simplement sur la sous-routine "RunSpecificRule_AllMailFolders".
- Appuyez ensuite sur la touche F5 pour déclencher ce code.
- Ensuite, la macro s'exécutera immédiatement.
- Une fois terminé, vous recevrez un message, comme la capture d'écran suivante. Il se réfère à la règle est terminée.
Attention aux macros malveillantes
Comme nous le savons tous, les e-mails malveillants sont de plus en plus répandus. Ces e-mails contiennent souvent des macros malveillantes. Ainsi, si vous définissez le niveau de sécurité de votre macro Outlook sur faible, vous devez vous méfier des virus et logiciels malveillants cachés. De plus, il est prudent de se procurer un puissant outil de correction PST, tel que DataNumen Outlook Repair. Il est capable de réparer la TVP fichier et extraire un maximum de données pour vous sans transpirer.
Introduction de l'auteur:
Shirley Zhang est une experte en récupération de données dans DataNumen, Inc., qui est le leader mondial des technologies de récupération de données, y compris récupérer mdf et produits logiciels de réparation Outlook. Pour plus d'informations, visitez www.datanumen.com

