共用方式為


Outlook () 的 ViewFields.Add 方法

將指定的欄位新增至檢 視之 ViewFields 集合的結尾。

語法

運算式新增 (PropertyName)

表達 代表 ViewFields 物件的 變數。

參數

名稱 必要/選用 資料類型 描述
PropertyName 必要 字串 要與新物件相關聯之屬性的名稱。 在 [欄位選擇器]) 中顯示的功能變數名稱 (或 ViewField.ViewXMLSchemaName) 所代表的命名空間 (,都可以參考此屬性。

傳回值

代表新檢視欄位的 ViewField 物件。

註解

若要以程式設計方式將自訂欄位新增至檢視,請使用 ViewFields.Add 方法。 這是透過設定View物件的XML屬性,動態變更檢視的建議方式。

以其欄位名稱在 PropertyName 中參照屬性時,需要對應之地區設定中的當地語系化名稱。 如需依命名空間參照屬性的詳細資訊,請參閱依命名空間參照屬性

如果您要將自訂屬性新增至 ViewFields 集合,該屬性必須存在於 View 父資料夾的 UserDefinedProperties 集合中。

如果屬性已存在於 ViewFields 集合中,Outlook 會發生錯誤。

某些屬性無法使用 ViewFields.Add 新增至檢視,其中包括二進位屬性、計算屬性及 HTML 或 RTF 本文內容。 如需詳細資訊,請參閱 Table 物件或 Table 篩選中不受支援的屬性

範例

Microsoft Visual Basic for Applications (VBA) 中的下列程式碼範例會將 [主旨] 欄位新增至 [收件匣] 的目前檢視中,並透過其欄位名稱參照它。 為了避免 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、依命名空間參照 Message Class 屬性,並將其新增至目前資料夾的目前檢視。 為了避免 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

另請參閱

ViewFields 物件

支援和意見反應

有關於 Office VBA 或這份文件的問題或意見反應嗎? 如需取得支援服務並提供意見反應的相關指導,請參閱 Office VBA 支援與意見反應