În mod implicit, puteți rula o regulă doar într-un folder la un moment dat. În acest articol, vă vom învăța cum să utilizați o bucată de cod VBA pentru a rula o anumită regulă în toate folderele de e-mail.
Outlook permite utilizatorilor să execute manual regula. Puteți doar să accesați caseta de dialog „Reguli și alerte” și să apăsați butonul „Run Rules Now”. În caseta de dialog ulterioară, selectați o anumită regulă și alegeți un folder în care doriți să rulați această regulă. Dar, dacă doriți să rulați rapid o regulă în toate folderele de e-mail, puteți utiliza următorul cod VBA.

Rulați rapid o anumită regulă în toate dosarele de e-mail
- În primul rând, start programul dvs. Outlook.
- Apoi, în fereastra principală Outlook, apăsați butoanele tastei „Alt + F11”.
- În continuare, în fereastra emergentă „Microsoft Visual Basic for Applications”, ar trebui să deschideți un modul care nu este utilizat.
- Ulterior, copiați codul VBA de mai jos în fereastra acestui modul. În plus, ar trebui să modificați unele rânduri în funcție de cazul dvs., cum ar fi numele regulii.
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
- După aceea, ar trebui să verificați setările macrocomenzilor Outlook, asigurându-vă că macro este permisă.
- În cele din urmă poți încerca.
- Doar faceți clic în subrutina „RunSpecificRule_AllMailFolders”.
- Apoi apăsați butonul F5 pentru a declanșa acest cod.
- În continuare macrocomanda va rula imediat.
- După ce se finalizează, veți primi un mesaj, precum următoarea captură de ecran. Se referă la regula sa terminat.
Atenție la macro-urile rău intenționate
După cum știm cu toții, e-mailurile rău intenționate au devenit din ce în ce mai răspândite. Astfel de e-mailuri au adesea macrocomenzi rău intenționate. Astfel, dacă setați nivelul de securitate al macrocomenzii Outlook la scăzut, trebuie să aveți grijă de virușii și programele malware ascunse. Mai mult, este prudent să obțineți un instrument puternic de remediere PST, cum ar fi DataNumen Outlook Repair. Este capabil să repara PST fișier și extrage maximum de date pentru tine, fără să te rupi.
Introducerea autorului:
Shirley Zhang este expertă în recuperarea datelor DataNumen, Inc., care este lider mondial în tehnologiile de recuperare a datelor, inclusiv recupera mdf și produse software de reparații Outlook. Pentru mai multe informații vizitați www.datanumen.com

