Outlook) (Table 物件
代表 Folder 或 Search 物件中的一組專案資料,其中專案做為資料表的資料列,而屬性則是資料表的資料行。
Table 代表 Folder 或 Search 物件中的唯讀動態資料列集。 使用 Folder.GetTable 或 Search.GetTable 取得 Table 物件,代表資料夾或搜尋資料夾中的一組專案。 如果 Table 物件取自 Folder.GetTable,您可以進一步指定篩選 (在 Table.Restrict 中) 取得資料夾中的項目子集。 如果您未指定任何篩選準則,則會取得資料夾中的所有專案。
根據預設,所傳回 Table 中的每個項目,只會包含其屬性的預設子集。 您可以將 Table 的每個資料列視為資料夾中的專案、將每個資料行視為專案的屬性,並將 Table 視為記憶體內部輕量型資料列集,以允許快速列舉和篩選資料夾中的專案。 雖然 Table 中的列會反映基礎資料夾的新增及刪除,但是 Table 並不支援新增、變更及移除列的任何事件。 如果您需要 Table 列中的可寫入物件,請從 Table 的預設 EntryID 欄取得該列的項目 ID,然後使用 NameSpace 物件的 GetItemFromID 方法來取得完整項目,例如支援讀寫作業的 MailItem 或 ContactItem 。 如需 Table 的預設欄的詳細資訊,請參閱 Table 物件中顯示的預設屬性。
如需 Table 物件的詳細資訊,請參閱列舉、搜尋和篩選資料夾中的項目。
在下列程式碼範例中,會說明 Table 物件如何根據 LastModificationTime 屬性傳回經過篩選的項目集合。 它也會顯示如何列出項目的預設屬性及特定屬性。
Sub DemoTable()
'Declarations
Dim Filter As String
Dim oRow As Outlook.Row
Dim oTable As Outlook.Table
Dim oFolder As Outlook.Folder
'Get a Folder object for the Inbox
Set oFolder = Application.Session.GetDefaultFolder(olFolderInbox)
'Define Filter to obtain items last modified after May 1, 2005
Filter = "[LastModificationTime] > '5/1/2005'"
'Restrict with Filter
Set oTable = oFolder.GetTable(Filter)
'Remove all columns in the default column set
oTable.Columns.RemoveAll
'Specify desired properties
With oTable.Columns
.Add ("Subject")
.Add ("LastModificationTime")
'PR_ATTR_HIDDEN referenced by the MAPI proptag namespace
.Add ("http://schemas.microsoft.com/mapi/proptag/0x10F4000B")
End With
'Enumerate the table using test for EndOfTable
Do Until (oTable.EndOfTable)
Set oRow = oTable.GetNextRow()
Debug.Print (oRow("Subject"))
Debug.Print (oRow("LastModificationTime"))
Debug.Print (oRow("http://schemas.microsoft.com/mapi/proptag/0x10F4000B"))
Loop
End Sub
有關於 Office VBA 或這份文件的問題或意見反應嗎? 如需取得支援服務並提供意見反應的相關指導,請參閱 Office VBA 支援與意見反應。