Por padrão, você só pode executar uma regra em uma pasta por vez. Neste artigo, ensinaremos como utilizar um trecho de código VBA para executar uma regra específica em todas as pastas de e-mail.
O Outlook permite que os usuários executem a regra manualmente. Você pode simplesmente acessar a caixa de diálogo “Regras e alertas” e clicar no botão “Executar regras agora”. Na caixa de diálogo subsequente, selecione uma regra específica e escolha uma pasta na qual deseja executar essa regra. Mas, se quiser executar uma regra rapidamente em todas as pastas de correio, você pode usar o seguinte código VBA.

Execute rapidamente uma regra específica em todas as pastas de correio
- Em primeiro lugar, start seu programa Outlook.
- Em seguida, na janela principal do Outlook, pressione os botões de tecla “Alt + F11”.
- Em seguida, na janela emergente “Microsoft Visual Basic for Applications”, você deve abrir um módulo não em uso.
- Posteriormente, copie o código VBA abaixo para esta janela do módulo. Além disso, você deve alterar algumas linhas com base no seu próprio caso, como o nome da regra.
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
- Depois disso, você deve verificar as configurações de macro do Outlook, garantindo que a macro seja permitida.
- Eventualmente, você pode tentar.
- Basta clicar na sub-rotina “RunSpecificRule_AllMailFolders”.
- Em seguida, pressione o botão da tecla F5 para acionar este código.
- Em seguida, a macro será executada imediatamente.
- Após a conclusão, você receberá uma mensagem, como a captura de tela a seguir. Refere-se à regra terminou.
Cuidado com Macros Maliciosas
Como todos sabemos, os e-mails maliciosos têm se tornado cada vez mais comuns. Esses e-mails geralmente carregam macros maliciosas. Portanto, se você definir o nível de segurança de macro do Outlook como baixo, deverá tomar cuidado com os vírus e malware ocultos. Além disso, é prudente obter uma poderosa ferramenta de correção de PST, como DataNumen Outlook Repair. É capaz de reparar PST arquive e extraia o máximo de dados para você sem suar a camisa.
Introdução do autor:
Shirley Zhang é especialista em recuperação de dados em DataNumen, Inc., líder mundial em tecnologias de recuperação de dados, incluindo recuperar mdf e produtos de software de reparo do Outlook. Para mais informações visite www.datanumen.com

