Shapes.AddTable メソッド (Project)

テーブルをレポートに追加し、テーブルを表す Shape オブジェクトを返します。

構文

expressionAddTable(NumRows,NumColumns,Left,Top,Width,Height)

表現Shapes オブジェクトを表す変数です。

パラメーター

名前 必須 / オプション データ型 説明
NumRows 必須 長整数型 (Long) 表の行数を指定します。 テーブルの作成時に NumRows は無視されます。
NumColumns 必須 長整数型 (Long) 表の列数を指定します。 テーブルの作成時には NumColumns は無視されます。
Left 必須 Single レポート ウィンドウの左側を基準とした表の左端 (ポイント単位)。
Top 必須 Single レポート ウィンドウの上部を基準とした、テーブルの上端 (ポイント単位)。
Width 必須 Single テーブルの幅 (ポイント単位)。
Height 必須 Single テーブルの高さ (ポイント単位)。
NumRows 必須 INT
NumColumns 必須 INT
Left 必須 FLOAT
Top 必須 FLOAT
Width 必須 FLOAT
Height 必須 FLOAT
名前 必須 / オプション データ型 説明

戻り値

Shape

注釈

AddTable メソッドがテーブルを作成するときに、Project では NumRowsNumColumns は無視されます。 テーブルが作成されると、テーブルには 1 行 1 列で構成され、テーブルには「 テーブル データを使用する」という テキストが含まれています (図 1 を参照)。 テーブルを選択すると、既定で [タスク] が選択されたフィールド リストという名前のテーブル データ作業ウィンドウが表示されます。 [ フィールド リスト ] 作業ウィンドウを使用すると、手動でレポートにフィールドを追加できます。

図 1. AddTable メソッドは、1 行と 1 列のテーブルを作成します

AddTable メソッドの使用

TestReportTable マクロは、図 1 に示すテーブルを作成してから、テーブルを選択して [テーブル データ] 作業ウィンドウを表示します。

Sub TestReportTable()
    Dim theReport As Report
    Dim tableShape As shape
    Dim theReportTable As ReportTable
    Dim reportName As String
    Dim tableName As String
    Dim rows As Integer
    Dim columns As Integer
    Dim left As Integer
    Dim top As Integer
    Dim width As Integer
    Dim height As Integer
    
    reportName = "Table Report"
    Set theReport = ActiveProject.Reports.Add(reportName)
    
     ' Add the table.
    tableName = "Task information"
    rows = 0
    columns = 0
    left = 0
    top = 30
    width = 110
    height = 20
       
    ' Project ignores the NumRows and NumColumns parameters when
    ' creating a ReportTable.
    Set tableShape = theReport.Shapes.AddTable(rows, columns, _
                        left, top, width, height)
    
    tableShape.Name = tableName
    tableShape.Select
    Set theReportTable = tableShape.Table
    
    With theReportTable
        Debug.Print "Rows: " & .RowsCount
        Debug.Print "Columns: " & .ColumnsCount
        Debug.Print "Cell 1,1 contents:" & vbCrLf & vbTab; .GetCellText(1, 1)
    End With
End Sub

テーブルのフィールドを指定するには、 UpdateTableData メソッドを使用します。 前のマクロの Set theReportTable = tableShape.Table 行の後に次のコードを追加します。 OutlineLevel パラメーターは、レベル 1 のタスクを指定し、プロジェクトのサマリー タスクをフィルター処理します。

    ' Set fields for the table.
    Dim fieldArray(1 To 6) As PjField
        
    fieldArray(1) = pjTaskName
    fieldArray(2) = pjTaskStart
    fieldArray(3) = pjTaskFinish
    fieldArray(4) = pjTaskPercentComplete
    fieldArray(5) = pjTaskActualCost
    fieldArray(6) = pjTaskRemainingCost
        
    theReportTable.UpdateTableData Task:=True, OutlineLevel:=1, SafeArrayOfPjField:=fieldArray

達成率とリソース コストの値が異なる 4 つのタスクを含むプロジェクトで、変更した TestReportTable マクロを実行します。 図 2 は、テーブルの結果の例です。

図 2. UpdateTableData メソッドでは、テーブルにフィールドを追加できます

UpdateTableData メソッドを使用して表を更新

関連項目

Shapes ObjectShape ObjectApplication.Table メソッド

サポートとフィードバック

Office VBA またはこの説明書に関するご質問やフィードバックがありますか? サポートの受け方およびフィードバックをお寄せいただく方法のガイダンスについては、Office VBA のサポートおよびフィードバックを参照してください。