VBA 代码 运行 来自模块的规则
VBA code to run a rule from a Module
我有一个模块,我需要运行一个规则。
Sub RunRuleMyRule()
Application.Session.DefaultStore.GetRules.Item("myRuleName").Execute
End Sub
这在 ThisOutlookSession
中没有任何问题。
但我需要从我的模块调用 "RunRuleMyRule" 或 我需要更改一些内容以便模块能够识别 Application.Session...
我建议您尝试引用该应用程序,因为它可能无法在 ThisOutlookSession
之外被识别,这是一个 class 模块。
尝试这样的事情:
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
您需要为规则指定 [moduleName].[subName] 函数,而不仅仅是触发规则时要调用的子名称。
您也可以从代码中删除应用程序 属性,因此以下代码应该可以在其他模块中使用:
Sub RunRuleMyRule()
Session.DefaultStore.GetRules.Item("myRuleName").Execute
End Sub
有关详细信息,请参阅 Getting Started with VBA in Outlook 2010。
我有一个模块,我需要运行一个规则。
Sub RunRuleMyRule()
Application.Session.DefaultStore.GetRules.Item("myRuleName").Execute
End Sub
这在 ThisOutlookSession
中没有任何问题。
但我需要从我的模块调用 "RunRuleMyRule" 或 我需要更改一些内容以便模块能够识别 Application.Session...
我建议您尝试引用该应用程序,因为它可能无法在 ThisOutlookSession
之外被识别,这是一个 class 模块。
尝试这样的事情:
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
您需要为规则指定 [moduleName].[subName] 函数,而不仅仅是触发规则时要调用的子名称。
您也可以从代码中删除应用程序 属性,因此以下代码应该可以在其他模块中使用:
Sub RunRuleMyRule()
Session.DefaultStore.GetRules.Item("myRuleName").Execute
End Sub
有关详细信息,请参阅 Getting Started with VBA in Outlook 2010。