【发布时间】:2016-04-02 12:53:57
【问题描述】:
我正在关注 MSDN 上显示的示例,但我遗漏了一部分,因为我无法触发“事件”。
目标是在每次用户打开/预览/标记为已读邮件项时在邮件末尾附加时间戳和用户名。
我已阅读 MailItem.Open (https://msdn.microsoft.com/en-us/library/office/ff865989.aspx) 和 MailItem.Read (https://msdn.microsoft.com/EN-US/library/office/ff869872.aspx)。我已禁用宏安全性(启用所有宏)。
我在“ThisOutlookSession”中的代码。每次更改时我都会重新启动 Outlook:
Public WithEvents SelectedItem As Outlook.MailItem
Sub Initialize_handler()
Set SelectedItem = Application.ActiveExplorer.CurrentFolder.Items(1)
SelectedItem.Display
End Sub
Sub SelectedItem_Read()
MsgBox "Trigger by MailItem.Read"
End Sub
Sub SelectedItem_Open()
MsgBox "Trigger by MailItem.Open"
End Sub
在任何打开/预览 3 秒/标记为用户已读的情况下,我都无法显示 msgbox。
当事件起作用时,我计划调用以下子:
Sub MessageWasOpenned()
Dim myItem As MailItem
Set SelectedItems = ActiveExplorer.Selection
For Each myItem In SelectedItems
myItem.Body = myItem.Body & vbCrLf & "This message was opened by: " & (Environ$("Username")) & " on: " & Now
myItem.Save
Next
End Sub
【问题讨论】:
-
我也是 VBA 的新手。你可能想看代码清单 17.2。在 Outlook 项目上标记日期和当前用户 msdn.microsoft.com/en-us/library/dd492012(v=office.12).aspx>