次の方法で共有


ReportTable.GetCellText メソッド (Project)

ReportTable オブジェクト内の指定したセルのテキスト値を返します。

構文

expressionGetCellText (Row,Col)

表現 'ReportTable' オブジェクトを表す変数。

パラメーター

名前 必須 / オプション データ型 説明
必須 Long テーブル内の行番号。
Col 必須 Long テーブル内の列番号。
必須 INT
Col 必須 INT

戻り値

String

指定したテーブル セルのテキスト値。

解説

返される文字列は、改行文字 ( で終わります。 chr(10)これは vbCrLf 文字と同じです)。

GetTableText の例では、アクティブなレポートのすべてのテーブルを検索し、テーブル内の各セルの値を取得し、各値の最後の文字 (改行文字) を削除してから、テーブル セルの値を VBE のイミディエイト ウィンドウに出力します。 GetTableText マクロを使用するには、Chart Object トピックで指定されている例などの値を含むプロジェクトを作成し、次の手順を実行します (図 1 を参照)。

  1. レポートを手動で作成します。 たとえば、リボンの [ プロジェクト ] タブの [ レポート ] ドロップダウン リストで、[ その他のレポート] を選択します。 [ レポート ] ダイアログ ボックスで、左側のウィンドウで [ 新規 ] を選択し、右側のウィンドウで [空白 ] を選択し、[選択] を 選択します。 [ レポート名 ] ダイアログ ボックスに「Report 1」と入力します。

  2. レポートに 2 つのテーブルを追加します。 リボンの [デザイン] タブの [レポート ツール] で、[挿入] グループの [テーブル] コマンドを使用します。

  3. プロジェクト概要タスクの [名前]、[ 開始]、[ 完了]、および [ 完了率 ] の各フィールドを含む、最初のテーブルの既定値をそのまま使用します。 最初のテーブルを選択して [フィールド 一覧 ] 作業ウィンドウを表示し、[ 実績コスト ] と [ 残りのコスト] を選択します。

  4. 2 番目のテーブルを選択します。 [フィールド 一覧] 作業ウィンドウで、[フィルター] を [すべてのタスク] に変更し、[実績コスト] と [残りのコスト] を選択します。 テーブルで、 Start 列と Finish 列を選択して削除します。

  5. リボンの [挿入] グループの [テキスト ボックス] コントロールを使用して、2 つのテキスト ボックスをレポートに追加します。 たとえば、最初のテキスト ボックスを編集して [プロジェクトの概要タスク] を表示し、2 番目のテキスト ボックスを編集してタスク情報を表示します。

図 1. サンプル レポートには、2 つのテーブルと 3 つのテキスト ボックスが含まれています

2 つのテーブルと 3 つのテキスト ボックスを含むレポート

Sub GetTableText()
    Dim theReport As Report
    Dim shp As shape
    Dim theReportTable As ReportTable
    Dim reportName As String
    Dim row As Integer, col As Integer, i As Integer
    Dim output As String
    
    reportName = "Report 1"
    
    For i = 1 To ActiveProject.Reports(reportName).Shapes.Count
        Set shp = ActiveProject.Reports(reportName).Shapes(i)
        Debug.Print shp.Name & "; ID = " & shp.ID
    Next i
    
    For Each shp In ActiveProject.Reports(reportName).Shapes
        If shp.HasTable Then
            Debug.Print vbCrLf & "Table name: " & shp.Name
            
            For row = 1 To shp.Table.RowsCount
                output = vbTab
                
                For col = 1 To shp.Table.ColumnsCount
                    output = output & shp.Table.GetCellText(row, col)
                    output = left(output, Len(output) - 1) & vbTab
                Next col
                
                Debug.Print output
            Next row
        End If
    Next shp
End Sub

GetTableText マクロを実行すると、VBE のイミディエイト ウィンドウに次のテキストが表示されます。 上の 5 行は、図形オブジェクトの既定の名前付け方法と ID 値の作成方法を示しています。

TextBox 1; ID = 2
Table 2; ID = 3
Table 3; ID = 4
TextBox 4; ID = 5
TextBox 5; ID = 6

Table name: Table 2
    Name    Start   Finish  % Complete  Actual Cost Remaining Cost  
    TestShapes  Mon 5/14/12 Tue 5/31/12 58% $1,595.00   $2,125.00   

Table name: Table 3
    Name    % Complete  Actual Cost Remaining Cost  
    T1  100%    $0.00   $0.00   
    T2  71% $1,280.00   $640.00 
    T3  44% $315.00 $765.00 
    T4  0%  $0.00   $720.00

関連項目

ReportTable オブジェクトID プロパティ

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

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