PropertyAccessor 对象 (Outlook)

提供在对象上创建、获取、设置和删除属性的功能。

备注

对于下面的非项目对象使用 PropertyAccessor 对象来获取和设置不明确显示在 Outlook 对象模型中的项目级属性: AddressEntry设置附件ExchangeDistributionListExchangeUser文件夹收件人商店

要获取或设置自定义的多个属性,使用 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

另请参阅

Outlook 对象模型引用属性Accessor 对象成员

支持和反馈

有关于 Office VBA 或本文档的疑问或反馈? 请参阅 Office VBA 支持和反馈,获取有关如何接收支持和提供反馈的指南。