Метод ViewFields.Add (Outlook)
Добавляет указанное поле в конец коллекции ViewFields для представления.
Синтаксис
expression. Add (PropertyName)
Выражение Переменная, представляющая объект ViewFields .
Параметры
Имя | Обязательный или необязательный | Тип данных | Описание |
---|---|---|---|
PropertyName | Обязательный | String | Имя свойства, с которым связан новый объект. На это свойство можно ссылаться по имени поля (отображается в выборе поля) или по пространству имен (представлено viewField.ViewXMLSchemaName). |
Возвращаемое значение
Объект ViewField , представляющий новое поле представления.
Замечания
Чтобы программно добавить настраиваемое поле в представление, используйте метод ViewFields.Add . Это рекомендуемый способ динамического изменения представления при задании свойства XML объекта View .
Для ссылки на свойство в PropertyName по имени поля требуется локализованное имя в соответствующем языковом стандарте. Дополнительные сведения о ссылке на свойства по пространству имен см. в разделе Ссылка на свойства по пространству имен.
При добавлении настраиваемого свойства в коллекцию ViewFields свойство должно существовать в коллекции UserDefinedProperties родительской папки View.
Если свойство уже существует в коллекции ViewFields , Outlook вызовет ошибку.
Некоторые свойства нельзя добавить в представление с помощью ViewFields.Add, включая двоичные свойства, вычисляемые свойства и содержимое текста HTML или RTF. Дополнительные сведения см. в разделе Неподдерживаемые свойства в объекте таблицы или фильтре таблиц.
Пример
Следующий пример кода в Microsoft Visual Basic для приложений (VBA) добавляет поле Subject в текущее представление папки "Входящие", ссылаясь на него по имени поля. Чтобы избежать возникновения ошибки в Outlook, он проверяет наличие поля в коллекции ViewFields, представляющей текущее представление папки "Входящие", перед его добавлением.
Sub DemoViewFieldsAdd()
Dim oTableView As Outlook.TableView
Dim oViewFields As Outlook.ViewFields
Dim oViewField As Outlook.ViewField
Dim oInbox As Outlook.folder
Set oInbox = Application.Session.GetDefaultFolder(olFolderInbox)
On Error GoTo Err_Handler
If oInbox.CurrentView.ViewType = olTableView Then
Set oTableView = oInbox.CurrentView
Set oViewField = oTableView.ViewFields("Subject")
If oViewField Is Nothing Then
Set oViewField = oTableView.ViewFields.Add("Subject")
End If
End If
Exit Sub
Err_Handler:
MsgBox Err.Description, vbExclamation
Resume Next
End Sub
В следующем примере кода в VBA предполагается, что текущее представление является TableView, ссылается на свойство Класса сообщений по пространству имен и добавляет его в текущее представление текущей папки. Чтобы избежать возникновения ошибки в Outlook, код проверяет наличие этого свойства в представлении перед вызовом ViewFields.Add.
Sub ViewFieldsAdd()
Dim oFolder As Outlook.Folder
Dim oView As Outlook.TableView
Dim oViewField As Outlook.ViewField
On Error Resume Next
Dim PR_MESSAGE_CLASS As String
PR_MESSAGE_CLASS = "http://schemas.microsoft.com/mapi/proptag/0x001a001e"
Set oFolder = Application.ActiveExplorer.CurrentFolder
If oFolder.CurrentView.ViewType = olTableView Then
Set oView = oFolder.CurrentView
'Determine if the ViewField exists in ViewFields collection
If oView.ViewFields(PR_MESSAGE_CLASS) Is Nothing Then
Set oViewField = oView.ViewFields.Add(PR_MESSAGE_CLASS)
'Persist the changes
oView.Save
End If
End If
End Sub
См. также
Поддержка и обратная связь
Есть вопросы или отзывы, касающиеся Office VBA или этой статьи? Руководство по другим способам получения поддержки и отправки отзывов см. в статье Поддержка Office VBA и обратная связь.