Несколько лет назад я скопировал определенный код VBA в Outlook 2007. Он запускает мои правила в текущей папке, которую я выбрал. Компания только что перешла на Outlook 2016 (Office 365), и хотя код VBA был сохранен (в "ThisOutlookSession"), он больше не работает.
Возможно, присутствует какой-то код VBA, который больше не поддерживается?
Sub RunAllInboxRules()
Dim st As Outlook.Store
Dim myRules As Outlook.Rules
Dim rl As Outlook.Rule
Dim runrule As String
Dim rulename As String
rulename = "DBLP RULE"
Set st = Application.Session.DefaultStore
Set myRules = st.GetRules
Set cf = Application.ActiveExplorer.CurrentFolder
For Each rl In myRules
If rl.RuleType = olRuleReceive Then
If rl.Name = rulename Then
rl.Execute ShowProgress:=True, Folder:=cf
runrule = rl.Name
End If
End If
Next
Set rl = Nothing
Set st = Nothing
Set myRules = Nothing
End Sub
Я тоже пробовал
Set st = Application.Session.Stores(1)
потому что я видел, что у кого-то еще была проблема с DefaultStore. Это не решило это.
Я также попытался явно указать rulename:
If rl.Name = "DBLP RULE" Then
Опять же, это не заставило его работать.