次の方法で共有


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 オブジェクト図形オブジェクトApplication.Table メソッド

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

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