我有一个模块,我需要运行规则。
Sub RunRuleMyRule()
Application.Session.DefaultStore.GetRules.Item("myRuleName").Execute
End Sub
这适用于ThisOutlookSession
,没有任何问题。
但是我需要从我的模块中调用“RunRuleMyRule” OR 我需要更改一些内容,以便模块识别Application.Session ....
答案 0 :(得分:2)
您需要为规则指定[moduleName]。[subName]函数,而不仅仅是触发规则时要调用的子名称。
此外,您可以从代码中删除Application属性,因此以下代码应该可以在其他模块中使用:
Sub RunRuleMyRule()
Session.DefaultStore.GetRules.Item("myRuleName").Execute
End Sub
有关详细信息,请参阅Getting Started with VBA in Outlook 2010。
答案 1 :(得分:1)
我建议您尝试引用该应用程序,因为它可能无法在ThisOutlookSession
之外被识别,这是一个类模块。
尝试这样的事情:
Dim oOk As Outlook.Application
On Error Resume Next
Set oOk = GetObject(, "Outlook.Application")
If Err.Number <> 0 Then Set oOk = CreateObject("Outlook.Application")
On Error GoTo 0
oOk.Session.DefaultStore.GetRules.Item("myRuleName").Execute