gpt4 book ai didi

excel - 使用 VBA 提取 Microsoft Exchange 自定义/扩展属性?

转载 作者:行者123 更新时间:2023-12-02 22:36:03 24 4
gpt4 key购买 nike

我正在尝试使用 VBA 从 Outlook.ExchangeUser 对象中提取一些属性。我可以提取我需要的大部分内容,除了一些似乎使用 Exchange extended attributes 存储的数据。

问题:

  1. 是否可以使用 VBA 提取扩展属性?
  2. 如果是这样,怎么做?

下面是一些代码,可让您了解我正在做的事情(这是 Microsoft Excel 文件中的 VBA 代码):

...
Dim myOlApp As Outlook.Application
Dim addrList As AddressList
Dim exchUser As Oulook.ExchangeUser
...
Set myOlApp = CreateObject("Outlook.Application")
Set addrList = myOlApp.GetNamespace("MAPI").addressLists("SOMELIST")
Set exchUser = addrList.addressEntries("doe, john").GetExchangeUser
...

然后我可以使用 Exchange 用户对象提取属性。即...

MsgBox ("User company name: " + exchUser.CompanyName)

如果我尝试执行类似上述操作来提取扩展属性,则会收到类似“对象不支持此属性或方法”的错误。我尝试了以下方法,但没有成功:

exchUser.msExchangeAttributeX  '(where X is a number from 1-15)
exchUser.ms-Exch-Extension-Attribute-X
exchUser.CustomAttributeX
exchUser.ExtensionCustomAttributeX

我还尝试使用 PropertyAccessor...

exchUser.PropertyAccessor.GetProperty("http://schemas.microsoft.com/mapi/proptag/0x802D001E")

我从 here 获取了架构但我不确定这是正确的。当我尝试这样做时,我没有收到错误,它只是返回空(没有任何内容被拉出)。我尝试寻找属性标签列表,以便尝试其他标签,但我似乎找不到它们。如果有人知道在哪里可以得到这些也许也会有帮助。

感谢任何帮助。谢谢!

最佳答案

我找到了一种访问我需要的内容的方法。基本上,当我找到正确的属性标签后,我最终使用了属性访问器。就我而言(对于扩展属性#7),正确的属性是“0x8033001F”。所以我用了:

exchUser.PropertyAccessor.GetProperty("http://schemas.microsoft.com/mapi/proptag/0x8033001F")

对于有类似需求但扩展属性可能不同的任何人,我建议下载并安装 OutlookSpy (或类似的工具)。这是我能够发现正确属性标记的唯一方法,因为我从未通过浏览 Microsoft 文档找到它。

希望这对某人有帮助!

关于excel - 使用 VBA 提取 Microsoft Exchange 自定义/扩展属性?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/42231189/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com