【问题标题】:Is it possible to run an Outlook macro when a new Contact is created/saved?创建/保存新联系人时是否可以运行 Outlook 宏?
【发布时间】:2016-06-01 15:29:01
【问题描述】:

我有一个 Outlook 宏,可以编辑我所有联系人中的某些字段。是否可以在创建/保存新联系人时自动触发此宏运行?

【问题讨论】:

标签: vba outlook macros


【解决方案1】:

将此代码添加到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 是一个类模块。

【讨论】:

  • 非常感谢。能够通过将我现有的宏复制/粘贴到 ItemAdd 的主体中来使其工作。出于好奇 - 我是否可以从 ItemAdd 内部调用位于 Module1 中的宏,而不是将其移动到 ThisOutlookSession?
  • 是的,只要定义为 Public 而不是 Private。在我的示例中,您只需将 MsgBox 行替换为 NameOfYourMacro ItemCall NameOfYourMacro(Item)
猜你喜欢
  • 1970-01-01
  • 2023-02-09
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2011-05-17
  • 1970-01-01
相关资源
最近更新 更多