PivotFields
コレクションは、参照できるアイテムを除外しているようです。例えば。これらは、イミディエイトウィンドウにエラーません。
? ActiveSheet.PivotTables("PivotTable1").PivotFields("Sum of c")
? ActiveSheet.PivotTables("PivotTable1").PivotFields("Values")
(私のピボットがc
という名前の列を持っていることに注意してください)
しかし、彼らはあなたのコードごとに出力しません。
For Each fld In pvt.PivotFields
Debug.Print fld.Name
Next fld
コレクションを列挙するときにこれらが公開されない理由は明確ではありません。
ただし、PivotFields
などRowFields
、ColumnFields
、PageFields
とDataFields
のサブコレクションを直接参照することができます。そうすることで、目的を達成することができます。
Option Explicit
Sub Test()
HideFields ActiveSheet.PivotTables(1)
End Sub
Sub HideFields(pvt As PivotTable)
Dim fld As Object
'rows
For Each fld In pvt.RowFields
Debug.Print fld.Name
fld.Orientation = xlHidden
Next fld
'columns
For Each fld In pvt.ColumnFields
Debug.Print fld.Name
fld.Orientation = xlHidden
Next fld
'pages
For Each fld In pvt.PageFields
Debug.Print fld.Name
fld.Orientation = xlHidden
Next fld
'data
For Each fld In pvt.DataFields
Debug.Print fld.Name
fld.Orientation = xlHidden
Next fld
End Sub
魅力的な作品です。本当にありがとう! – alpenmilch411