我正在尝试使用VBA从Outlook.ExchangeUser对象中提取一些属性。除了一些似乎使用Exchange extended attributes
存储的数据外,我可以提取我需要的大部分内容问题:
以下是一些代码,可以了解我正在做什么(这是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获得了架构,但我并不认为这是正确的。当我尝试它时,我没有收到错误,它只是空回来(没有拉动)。我试着找一个属性标签列表,所以我可以尝试别人,但我似乎无法找到它们。如果有人知道从哪里获得那些可能也会有所帮助。
感谢任何帮助。谢谢!
答案 0 :(得分:0)
我找到了一种方法来访问我需要的东西。基本上,一旦找到了正确的属性标签,我就最终使用了属性访问器。在我的情况下(对于扩展属性#7),正确的是“0x8033001F”。所以我用过:
exchUser.PropertyAccessor.GetProperty("http://schemas.microsoft.com/mapi/proptag/0x8033001F")
对于有类似需求但可能具有不同扩展属性的任何人,我建议下载并安装OutlookSpy(或类似工具)。这是我能够发现正确的属性标记的唯一方法,因为我无法通过浏览Microsoft文档找到它。
希望这有助于某人!