Outlook) (Table.GetArray 方法
從 Table 取得包含一組資料列和資料行 值的二維陣列。
語法
expression。 GetArray
( _MaxRows_
)
表達 代表 Table 物件的變數。
參數
名稱 | 必要/選用 | 資料類型 | 描述 |
---|---|---|---|
MaxRows | 必要 | Long | 會指定要從 Table 傳回的最大列數。 |
傳回值
Variant值,代表 Table 中的一組資料列和資料行值的二維陣列。 陣列是以零起始;陣列索引 (i、j 將索引) 到陣列中的第 i 個數據行和第 j 個數據列。 陣列中的資料行會對應至 Table中的資料行,而陣列中的資料列會對應至 Table 中的資料 列。 傳回陣列中的資料列數目是 MaxRows 的較小值,以及 Table中的實際資料列數目。
註解
GetArray 方法提供一項在概念上相當簡單的方式,藉由將 Table 中的所有或部分資料 (根據目前的列) 複製到陣列並索引陣列,取得 Table 中的值。
GetArray 一定會從 Table 的目前列開始。 如果 Table 中至少有從目前位置開始的MaxRows資料列數目,則會傳回具有MaxRows資料列數目的陣列。 如果MaxRows不大於Table中的資料列總數,而且從目前資料列開始,Table中的元素數目少於MaxRows,則會傳回只包含Table中其餘資料列的陣列。 如果呼叫 GetArray 時,沒有其餘列,GetArray 就會傳回零個元素的空陣列。
從 Table 取得適當的列之後並在其傳回之前,GetArray 一定會將目前列的位置重新調整為 Table 中的下一列 (如果下一列存在的話)。 GetArray(n)
的運作方式就如 同 Table.GetNextRow 呼叫 n 次一樣。
欄中的值會對應至 Table 中的欄,因此會由欄所用的屬性名稱格式決定。 如需詳細資訊,請參閱影響 Table 及 View 類別之屬性值表示的因素。
範例
下列程式碼範例會篩選主旨中包含 「Office」 之收件匣中的所有專案,以取得資料 表 。 然後,它會使用 Table.GetArray 方法,將 Table 中的資料複製到陣列,並列印每一個傳回項目的屬性值。
如需依命名空間參照在篩選條件中指定屬性名稱的詳細資訊,請參閱依命名空間參照屬性。
Sub DemoTableUsingGetArray()
'Declarations
Dim Filter As String
Dim i, ubRows As Long
Dim j, ubCols As Integer
Dim varArray
Dim oTable As Outlook.Table
Dim oFolder As Outlook.Folder
Const SchemaPropTag As String = _
"http://schemas.microsoft.com/mapi/proptag/"
On Error Resume Next
'Get a Folder object for the Inbox
Set oFolder = Application.Session.GetDefaultFolder(olFolderInbox)
'Filter on the subject containing "Office"
Filter = "@SQL=" & Chr(34) & SchemaPropTag & "0x0037001E" _
& Chr(34) & " like '%Office%'"
'Get all items in Inbox that meet the filter
Set oTable = oFolder.GetTable(Filter)
On Error GoTo Err_Trap
varArray = oTable.GetArray(oTable.GetRowCount)
'Number of rows is the second dimension of the array
ubRows = UBound(varArray, 2)
'Number of columns is the first dimension of the array
ubCols = UBound(varArray)
'Array is zero-based
'Rows corrspond to items in the table, so for each item...
For j = 0 To ubRows
'Columns correspond to properties in the table, print the value of each property
For i = 0 To ubCols
Debug.Print varArray(i, j)
Next
Next
Exit Sub
Err_Trap:
Debug.Print "Error#:" & Err.Number & " Desc: " & Err.Description
Resume Next
End Sub
另請參閱
支援和意見反應
有關於 Office VBA 或這份文件的問題或意見反應嗎? 如需取得支援服務並提供意見反應的相關指導,請參閱 Office VBA 支援與意見反應。