PropertyAccessor 对象 (Outlook)
提供在对象上创建、获取、设置和删除属性的功能。
备注
对于下面的非项目对象使用 PropertyAccessor 对象来获取和设置不明确显示在 Outlook 对象模型中的项目级属性: AddressEntry 、 设置 、 附件 、 ExchangeDistributionList 、 ExchangeUser 、 文件夹 、 收件人 和 商店 。
要获取或设置自定义的多个属性,使用 PropertyAccessor 对象而不是 UserProperties 对象更好的性能。
有关使用 PropertyAccessor 对象的详细信息,请参阅属性概述。
示例
下面的代码示例演示如何使用 PropertyAccessor.GetProperty 方法来读取属于 MailItem ,但它不公开在 Outlook 对象模型中, PR_TRANSPORT_MESSAGE_HEADERS 的 MAPI 属性。
Sub DemoPropertyAccessorGetProperty()
Dim PropName, Header As String
Dim oMail As Object
Dim oPA As Outlook.PropertyAccessor
'Get first item in the inbox
Set oMail = _
Application.Session.GetDefaultFolder(olFolderInbox).Items(1)
'PR_TRANSPORT_MESSAGE_HEADERS
PropName = "http://schemas.microsoft.com/mapi/proptag/0x007D001E"
'Obtain an instance of PropertyAccessor class
Set oPA = oMail.PropertyAccessor
'Call GetProperty
Header = oPA.GetProperty(PropName)
Debug.Print (Header)
End Sub
下一个代码示例演示的 PropertyAccessor.SetProperties 方法将多个属性值的设置。 如果属性不存在, SetProperties 将创建该属性,只要父对象支持属性创建。 如果该对象支持显式 Save 操作,则属性保存到该对象时显式调用 保存 操作。 如果该对象不支持显式 Save 操作,则属性保存到该对象在调用 SetProperties 时。
Sub DemoPropertyAccessorSetProperties()
Dim PropNames(), myValues() As Variant
Dim arrErrors As Variant
Dim prop1, prop2, prop3, prop4 As String
Dim i As Integer
Dim oMail As Outlook.MailItem
Dim oPA As Outlook.PropertyAccessor
'Get first item in the inbox
Set oMail = _
Application.Session.GetDefaultFolder(olFolderInbox).Items(1)
'Names for properties using the MAPI string namespace
prop1 = "http://schemas.microsoft.com/mapi/string/" & _
"{FFF40745-D92F-4C11-9E14-92701F001EB3}/mylongprop"
prop2 = "http://schemas.microsoft.com/mapi/string/" & _
"{FFF40745-D92F-4C11-9E14-92701F001EB3}/mystringprop"
prop3 = "http://schemas.microsoft.com/mapi/string/" & _
"{FFF40745-D92F-4C11-9E14-92701F001EB3}/mydateprop"
prop4 = "http://schemas.microsoft.com/mapi/string/" & _
"{FFF40745-D92F-4C11-9E14-92701F001EB3}/myboolprop"
PropNames = Array(prop1, prop2, prop3, prop4)
myValues = Array(1020, "111-222-Kudo", Now(), False)
'Set values with SetProperties call
'If the properties don't exist, then SetProperties
'adds the properties to the object when saved.
'The type of the property is the type of the element
'passed in myValues array.
Set oPA = oMail.PropertyAccessor
arrErrors = oPA.SetProperties(PropNames, myValues)
If Not (IsEmpty(arrErrors)) Then
'Examine the arrErrors array to determine if any
'elements contain errors
For i = LBound(arrErrors) To UBound(arrErrors)
'Examine the type of the element
If IsError(arrErrors(i)) Then
Debug.Print (CVErr(arrErrors(i)))
End If
Next
End If
'Save the item
oMail.Save
End Sub
方法
名称 |
---|
BinaryToString |
DeleteProperties |
DeleteProperty |
GetProperties |
GetProperty |
LocalTimeToUTC |
SetProperties |
SetProperty |
StringToBinary |
UTCToLocalTime |
属性
名称 |
---|
Application |
类 |
Parent |
Session |
另请参阅
支持和反馈
有关于 Office VBA 或本文档的疑问或反馈? 请参阅 Office VBA 支持和反馈,获取有关如何接收支持和提供反馈的指南。