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