PropertyAccessor オブジェクト (Outlook)PropertyAccessor object (Outlook)

オブジェクトのプロパティを作成、取得、設定、および削除する機能を提供します。Provides the ability to create, get, set, and delete properties on objects.

解説Remarks

PropertyAccessor オブジェクトを使用して、Outlook オブジェクト モデルで明示的に公開されていないアイテム レベルのプロパティや、アイテムでない AddressEntryAddressListAttachmentExchangeDistributionListExchangeUserFolderRecipientStore の各オブジェクトのプロパティの値を取得および設定します。Use the PropertyAccessor object to get and set item-level properties that are not explicitly exposed in the Outlook object model, or properties for the following non-item objects: AddressEntry, AddressList, Attachment, ExchangeDistributionList, ExchangeUser, Folder, Recipient, and Store.

複数のカスタム プロパティを設定または取得するには、パフォーマンス向上のために **UserProperties ** オブジェクトの代わりに PropertyAccessor オブジェクトを使用します。To get or set multiple custom properties, use the PropertyAccessor object instead of the UserProperties object for better performance.

PropertyAccessor オブジェクトの使用方法の詳細については、「 プロパティの概要」を参照してください。For more information on using the PropertyAccessor object, see Properties Overview.

Example

次のコードは、 PropertyAccessor.GetProperty メソッドを使用して、 MailItem に属するが Outlook オブジェクト モデルで公開されていない MAPI プロパティの PR_TRANSPORT_MESSAGE_HEADERS を取得する方法を示しています。The following code sample demonstrates how to use the PropertyAccessor.GetProperty method to read a MAPI property that belongs to a MailItem but that is not exposed in the Outlook object model, PR_TRANSPORT_MESSAGE_HEADERS.

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 メソッドで複数のプロパティの値を設定する方法を示しています。The next code sample demonstrates how the PropertyAccessor.SetProperties method sets the values of multiple properties. プロパティが存在せず、親オブジェクトがそのプロパティの作成をサポートしている場合、 SetProperties はプロパティを作成します。If a property does not exist, then SetProperties will create the property as long as the parent object supports the creation of those properties. オブジェクトが明示的な Save 操作をサポートしている場合は、明示的な Save 操作を呼び出したときにプロパティがオブジェクトに保存されます。If the object supports an explicit Save operation, then the properties are saved to the object when the explicit Save operation is called. オブジェクトが明示的な Save 操作をサポートしていない場合は、SetProperties を呼び出したときにプロパティがオブジェクトに保存されます。If the object does not support an explicit Save operation, then the properties are saved to the object when SetProperties is called.

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 do not 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

メソッドMethods

名前Name
BinaryToStringBinaryToString
DeletePropertiesDeleteProperties
DeletePropertyDeleteProperty
GetPropertiesGetProperties
GetPropertyGetProperty
LocalTimeToUTCLocalTimeToUTC
SetPropertiesSetProperties
SetPropertySetProperty
StringToBinaryStringToBinary
UTCToLocalTimeUTCToLocalTime

プロパティProperties

名前Name
アプリケーションApplication
ClassClass
ParentParent
SessionSession

関連項目See also

Outlook オブジェクトモデルリファレンス PropertyAccessor オブジェクトのメンバーOutlook Object Model Reference PropertyAccessor Object Members

サポートとフィードバックSupport and feedback

Office VBA またはこの説明書に関するご質問やフィードバックがありますか?Have questions or feedback about Office VBA or this documentation? サポートの受け方およびフィードバックをお寄せいただく方法のガイダンスについては、Office VBA のサポートおよびフィードバックを参照してください。Please see Office VBA support and feedback for guidance about the ways you can receive support and provide feedback.