【发布时间】:2017-11-13 14:27:56
【问题描述】:
我希望了解 MailItem 中已更改内容的详细信息。
我已经能够根据 Application.Session.Folders("TargetFolder") 触发 ItemChange 到一个变量,如下所示:
Private Sub olInvMbxItems_ItemChange(ByVal X As Object).
我想知道X 中的属性已更改。如果我将X 传递给Private Sub X_PropertyChange(ByVal x As Object) 的全局变量,它将错过第一次迭代,因为X 在ItemChange 的第一次传递时未初始化。
如何监控 MailItems 文件夹以检测类别更改。虽然 ItemChange 执行此操作,但它会产生重复的操作,如果我查找特定类别,则尽可能多的更改触发 ItemChange,如此处所述:
Handle ItemChange event when outlook appointments are dismissed
这里:
Outlook Macro that will copy an email I flag and put it in a folder
第二项中 UserProperties 的二进制标志将不起作用,因为它不是一次性事件。
Outlook Events VBA 说要使用 PropertyChange,但没有提供实现技术。
【问题讨论】:
-
从进一步的问题来看,如果不完整的自我回答应该是合理的,您似乎需要重新考虑您的解决方案。特别是如果其他系统可能会更改项目,您可能必须保存旧的类别代码,可能在用户定义的字段中,并定期循环项目Run a code every half an hour,或通过提醒触发,以查看当前的猫代码是否匹配。跨度>
-
当我回家处理这个问题时,我正在学习这个方向。如果我可以注册一个本地副本以在 ItemChanged 被触发时检查更改,它可能会运行良好。缓存为 UserProperty 的类别副本可能会理想地工作。我会随着进度更新内容。
-
您仍然可以尝试对项目所做的更改,但我建议您不会识别由其他系统完成的 ItemChange 或 PropertyChange,这就是为什么在这种情况下您会将当前的 cat 代码与保存的 cat 进行比较定期编写代码。