【问题标题】:Excel VBA to extract Outlook Contact's "Notes" propertyExcel VBA 提取 Outlook 联系人“便笺”属性
【发布时间】:2020-09-30 09:40:07
【问题描述】:

我正在尝试通过 Excel VBA 宏从 Outlook 中转储整个 GAL

我调整了以下链接中的代码以适应我在 excel 中的需求: Excel Dump GAL

我能够提取大部分常见字段,但我需要以下帮助:

  1. 在 Outlook 中,当我们右键单击联系人并选择“打开 Outlook 属性”时,我们会看到以下窗口: Contact's Outlook Properties 在这个窗口中,有一个我想为用户提取的“注释”字段。 有人可以建议如何获得它
  2. 用户的任何生日字段?

注意:由于公司安全政策,我无法安装 Outlookspy。

【问题讨论】:

  • 所以您正试图从您从地址列表 (GAL) 中检索的 AddressEntry 对象中提取数据?
  • 是的。但是 olMember.GetExchangeUser.Notes 不返回任何内容。在一些博客中,他们建议尝试使用 .Body。但这也不会返回任何东西。注意:由于我已经有了用户的电子邮件地址,如果有其他方法(不访问 AddressEntry 对象)来获取“Notes”。我也愿意在代码中构建它
  • 您确实需要使用 OutlookSpy 或 MFCMAPI 查看数据,以确保其存在
  • 如果您参考我在最初问题中发布的屏幕截图,您可以在 SAP Code、Seat Code、Level、Emp Type 等“Notes”字段中看到内容。因为,它我公司的笔记本电脑,无法安装 Outlookspy 等外部工具。

标签: excel vba outlook mapi gal


【解决方案1】:

该屏幕截图中的注释编辑框绑定到PR_COMMENT_W 属性(DASL 名称http://schemas.microsoft.com/mapi/proptag/0x3004001F)。它应该通过AddressEntry.PropertyAccessor.GetProperty 方法访问。 ExchangeUser.Notes 也应该可以正常工作。

【讨论】:

  • 太棒了!带有 DASL 的 .PropertyAccessor.GetProperty 成功了。 ExchangeUser.Notes 没有工作。您还可以建议是否有 DASL 来获取用户的生日?
  • 你在 GAL 的通讯录中看到了吗?
  • 不,生日在标准 Outlook 联系人字段中不可见,但查看链接 codeproject.com/Tips/127769/… 我想知道生日字段是否有可以转储的 DASL 名称? GetExchangeUser.Birthday 不返回任何内容。
  • 这就是为什么您需要使用 OutlookSpy 或 MFCMAPI 查看 GAL 对象以查看该属性是否可用的原因。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2023-03-19
  • 1970-01-01
  • 2016-01-01
相关资源
最近更新 更多