我如何知道规则何时完成处理?

How can I tell when Rules have finished processing?

我正在尝试找到一种方法,在 Outlook 规则处理结束时触发一次 VBA 子。我目前正在使用 SyncEnd events,但在首次启动 Outlook 时这似乎无法正常工作(SyncEnd 在整个收件箱的规则为 运行 之前触发,并且邮件项目不是但出现在我的函数期望它们所在的文件夹中。

是否可以捕获 "rules processing completed" 事件?

所有 Outlook 事件都在 VBE 中有详细记录。只需按 F2 进入对象浏览器,然后 select Outlook 库(在下拉菜单的顶部,然后查看所有可用事件。

以下是(例如)Outlook 应用程序本身的所有可用事件:

不幸的是,您会发现没有事件在规则之后发生。可用事件 NewMailNewMailEx 发生“[...] 当新邮件到达收件箱时且在客户端规则处理发生之前。” (https://msdn.microsoft.com/en-us/library/office/ff869202.aspx)

然而,正如@Om3r 指出的那样,您可以利用 VBA 一次运行一个命令(逐行)并等待命令完成(在继续下一个)。至少,这就是 VBA 的工作方式,除非您强制它以不同的方式处理命令。

因此,您可以使用 Application.NewMailApplication.NewMailEx 事件来执行规则,然后在处理完规则后附加要执行的 VBA 命令。

我当然希望这能解决您的问题。如果您还有其他问题,请告诉我。