Ответ Нет и Да. Нет для сообщений, да для сообщений, которые вы перемещаете в папку.
Базовый VBA используется на многих сайтах http://www.slipstick.com/outlook/rules/run-outlook-rules-startup/
Sub RunAllInboxRules()
Dim st As Outlook.Store
Dim myRules As Outlook.Rules
Dim rl As Outlook.Rule
Dim count As Integer
Dim ruleList As String
'On Error Resume Next
' get default store (where rules live)
Set st = Application.Session.DefaultStore
' get rules
Set myRules = st.GetRules
' iterate all the rules
For Each rl In myRules
' determine if it's an Inbox rule
If rl.RuleType = olRuleReceive And rl.IsLocalRule = True Then
' if so, run it
rl.Execute ShowProgress:=True
count = count + 1
ruleList = ruleList & vbCrLf & rl.Name
End If
Next
' tell the user what you did
ruleList = "These rules were executed against the Inbox: " & vbCrLf & ruleList
MsgBox ruleList, vbInformation, "Macro: RunAllInboxRules"
Set rl = Nothing
Set st = Nothing
Set myRules = Nothing
End Sub
Если вы хотите запустить его для папки, в которую вы переместили сообщение (я), а не для папки «Входящие», укажите эту папку.
http://msdn.microsoft.com/en-us/library/office/ff864433%28v=office.14%29.aspx
Допустим, вы создали папку в папке "Входящие" с именем "RunRules"
Как только вы переместите сообщение (я) в папку:
Set fldRunRules = st.GetDefaultFolder(olFolderInbox).Folders("RunRules")
rl.Execute Folder:=fldRunRules