【发布时间】:2016-06-01 15:29:01
【问题描述】:
我有一个 Outlook 宏,可以编辑我所有联系人中的某些字段。是否可以在创建/保存新联系人时自动触发此宏运行?
【问题讨论】:
我有一个 Outlook 宏,可以编辑我所有联系人中的某些字段。是否可以在创建/保存新联系人时自动触发此宏运行?
【问题讨论】:
将此代码添加到ThisOutlookSession 模块:
Private WithEvents objNewContact As Items
Private Sub Application_Startup()
Set objNewContact = Application.GetNamespace("MAPI").GetDefaultFolder(olFolderContacts).Items
End Sub
Private Sub objNewContact_ItemAdd(ByVal Item As Object)
MsgBox Item.CompanyAndFullName & " added"
End Sub
Private Sub objNewContact_ItemChange(ByVal Item As Object)
MsgBox Item.CompanyAndFullName & " changed"
End Sub
Application_StartUp 将设置 objNewContact 以在您启动 Outlook 时监视联系人文件夹。ItemAdd 将在您保存联系人时触发。ItemChange 将在您更改现有联系人后保存时触发.
正如@Maciej 提供的链接所述 - 示例代码必须放在类模块中,并且 ThisOutlookSession 是一个类模块。
【讨论】:
Public 而不是 Private。在我的示例中,您只需将 MsgBox 行替换为 NameOfYourMacro Item 或 Call NameOfYourMacro(Item)