Поделиться через


Метод PropertyAccessor.GetProperties (Outlook)

Получает значения свойств, заданных одномерным массивом SchemaNames.

Синтаксис

выражение. GetProperties( _SchemaNames_ )

Выражение Переменная, представляющая объект PropertyAccessor .

Параметры

Имя Обязательный или необязательный Тип данных Описание
SchemaNames Обязательный Variant Массив, содержащий имена свойств, значения которых должны быть возвращены. На эти свойства ссылается пространство имен. Дополнительные сведения см. в разделе Ссылки на свойства по пространству имен.

Возвращаемое значение

Объект Variant, представляющий массив значений свойств, указанных в параметре SchemaNames. Число элементов в возвращаемом массиве равно числу элементов в массиве SchemaNames . Если возникает ошибка при получении определенного свойства, значение Err будет возвращено в соответствующем расположении в возвращаемом массиве.

Замечания

Массив, возвращаемый Методом GetProperties , может содержать элементы разных типов в зависимости от типа запрошенного свойства. Тип элемента массива, возвращаемого Методом GetProperties , будет таким же, как тип базового свойства. Некоторые необработанные типы свойств, такие как PT_OBJECT , не поддерживаются и вызывают ошибку. Если требуется преобразование типа необработанного свойства, например из PT_BINARY в строку или из PT_SYSTIME в местное время, используйте вспомогательные методы PropertyAccessor.BinaryToString и PropertyAccessor.UTCToLocalTime.

Дополнительные сведения о получении свойств с помощью объекта PropertyAccessor см. в разделе Рекомендации по получению и настройке свойств.

Пример

В следующем примере кода показано, как использовать объект PropertyAccessor для получения свойств MAPI, которые не предоставляются в элементе Outlook, а именно: PR_SUBJECT, PR_ATTR_HIDDEN, PR_ATTR_READONLY и PR_ATTR_SYSTEM. В этом примере кода используется метод GetProperties , чтобы получить их в одном вызове, указав массив ссылок на пространство имен для этих свойств, и получить возвращаемый массив, содержащий необработанное значение для каждого свойства.

Sub DemoPropertyAccessorGetProperties() 
 
 Dim PropNames() As Variant 
 
 Dim myValues As Variant 
 
 Dim i As Integer 
 
 Dim j As Integer 
 
 Dim oMail As Object 
 
 Dim oPA As Outlook.PropertyAccessor 
 
 
 
 'Get first item in the inbox 
 
 Set oMail = _ 
 
 Application.Session.GetDefaultFolder(olFolderInbox).Items(1) 
 
 'PR_SUBJECT, PR_ATTR_HIDDEN, PR_ATTR_READONLY, PR_ATTR_SYSTEM 
 
 PropNames = _ 
 
 Array("http://schemas.microsoft.com/mapi/proptag/0x0037001E", _ 
 
 "http://schemas.microsoft.com/mapi/proptag/0x10F4000B", _ 
 
 "http://schemas.microsoft.com/mapi/proptag/0x10F6000B", _ 
 
 "http://schemas.microsoft.com/mapi/proptag/0x10F5000B") 
 
 'Obtain an instance of a PropertyAccessor object 
 
 Set oPA = oMail.PropertyAccessor 
 
 'Get myValues array with GetProperties call 
 
 myValues = oPA.GetProperties(PropNames) 
 
 For i = LBound(myValues) To UBound(myValues) 
 
 'Examine the type of the element 
 
 If IsError(myValues(i)) Then 
 
 'CVErr returns a variant of subtype error 
 
 Debug.Print (CVErr(myValues(i))) 
 
 ElseIf IsArray(myValues(i)) Then 
 
 propArray = myValues(i) 
 
 For j = LBound(propArray) To UBound(propArray) 
 
 Debug.Print (propArray(j)) 
 
 Next 
 
 ElseIf IsNull(myValues(i)) Then 
 
 Debug.Print ("Null value") 
 
 ElseIf IsEmpty(myValues(i)) Then 
 
 Debug.Print ("Empty value") 
 
 ElseIf IsDate(myValues(i)) Then 
 
 Debug.Print (oPA.UTCToLocalTime(myValues(i))) 
 
 'VB does not have IsBinary function 
 
 ElseIf VarType(myValues(i)) = vbByte Then 
 
 Debug.Print (oPA.BinaryToString(myValues(i))) 
 
 Else 
 
 Debug.Print (myValues(i)) 
 
 End If 
 
 Next 
 
End Sub

См. также

Объект PropertyAccessor

Поддержка и обратная связь

Есть вопросы или отзывы, касающиеся Office VBA или этой статьи? Руководство по другим способам получения поддержки и отправки отзывов см. в статье Поддержка Office VBA и обратная связь.