Метод 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
См. также
Поддержка и обратная связь
Есть вопросы или отзывы, касающиеся Office VBA или этой статьи? Руководство по другим способам получения поддержки и отправки отзывов см. в статье Поддержка Office VBA и обратная связь.