次の方法で共有


Table.GetArray メソッド (Outlook)

Table からの行と列の値のセットが含まれる 2 次元配列を取得します。

構文

GetArray( _MaxRows_ )

Table オブジェクトを表す変数。

パラメーター

名前 必須 / オプション データ型 説明
MaxRows 必須 長整数型 テーブル から取得する行の最大数を指定します。

戻り値

Table の行と列の値のセットを表す 2 次元配列である Variant 値。 配列は 0 から始まります。配列インデックス (i, j) は、配列内の i 番目の列と j 番目の行にインデックスを作成します。 配列内の列は Table 内の列に対応し、配列内の行は Table 内の行に対応 します。 返される配列内の行数は、 MaxRows の小さい値と Table 内の実際の行数 です

注釈

GetArray メソッドは、概念的には単純な (現在の行に基づいて) テーブル 内のデータのすべてまたは一部を配列にコピーし、配列にインデックスを テーブル から値を取得する手段を提供します。

GetArray は、常に、 テーブル の現在の行から開始します。 現在の位置から始まるテーブル内の行の数が MaxRows 以上ある場合は、MaxRows 行数の配列を返します。 MaxRowsTable 内の行の合計数より大きくなく、現在の行から始まるテーブル内の要素の MaxRows 数よりも少ない場合は、Table 内の残りの行のみを含む配列が返されます。 GetArray を呼び出したとき、残りの行がない場合は、 GetArray は 0 個の要素に空の配列を返します。

Table から適切な行を取得し、処理を終了する前に、GetArray は常に現在の行の位置を Table の次の行に移動します (次の行がある場合)。 GetArray(n) は、 Table.GetNextRow が n 回呼び出されたかのように動作します。

列の値は、 テーブル 内の列にマップし、ため、列で使用されるプロパティ名の形式によって決まります。 詳細については、「Table クラスと View クラスのプロパティ値表示に影響を与える要因」を参照してください。

次のコード サンプルでは、受信トレイで件名に"Office"を含むすべてのアイテムにフィルターを使用して テーブル を取得します。 Table.GetArray メソッドを使用して、配列に テーブル からデータをコピーするのには、アイテムが返されるそれぞれのプロパティの値を出力します。

フィルターで名前空間の参照によってプロパティ名を指定する方法の詳細については、「名前空間でプロパティを参照する」を参照してください。

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 のサポートおよびフィードバックを参照してください。