2

サンプル VBA コードを次に示します。

Sub Macro1()
    Dim pt As PivotTable
    Set pt = ActiveSheet.PivotTables("SomePivotTable")
    'Set colOfFields = pt.PivotFields  
End Sub

3行目は不完全/壊れています。ピボットテーブル内のすべてのフィールドのコレクションにアクセスする正しい方法は何ですか? それらをループできる必要があります。実際のコーディングは C# VSTO Project で行っています。

4

2 に答える 2

3

これは私にとってはうまくいきます(Excel 2003 [11.8146.8202] SP2):

Sub Macro1()
    Dim pt As PivotTable
    Dim col As PivotFields
    Dim c As PivotField

    ' Name of the pivot table comes from right clicking on the pivot table,
    ' Table Options..., Name field.
    Set pt = ActiveSheet.PivotTables("PivotTable1")
    Set col = pt.PivotFields
    For Each c In col
        Debug.Print c.Name
    Next
End Sub
于 2008-12-04T17:45:19.840 に答える
1

Ok。いくつかの C# 風コードのアイデアを見つけました:
http://blogs.msdn.com/andreww/archive/2008/07/25/creating-a-pivottable-programmatically.aspx

// pvtTable is an Excel.PivotTable set earlier in the code
Excel.PivotFields pflds =     
    (Excel.PivotFields)pvtTable.PivotFields(System.Type.Missing);
    foreach (Excel.PivotField pf in pflds)
    {
      //some code here
    }

秘訣は、System.Type.Missing を渡して、フィールドの「コレクション」を取得することです。

于 2008-12-04T18:21:58.313 に答える