「vba ピボット 更新時に列幅を」
「excel マクロ pivot 更新時に列幅を自動調整させない」
といった検索で、このサイト・インストラクターのネタ帳へのアクセスが時折あります。
[ピボットテーブルオプション]ダイアログに、[更新時に列幅を自動調整する]チェックボックスがあります。
この[更新時に列幅を自動調整する]チェックボックスを、VBA(Visual Basic for Applications)から操作するにはどのようなコードを書けばいいのかを探している方による検索でしょうか。
アクティブブックの全ピボットテーブルを更新時に列幅を自動調整しないようにするサンプルマクロ
以下のようなマクロで、アクティブなブックの、すべてのピボットテーブルの設定を変更して、更新時に列幅を自動調整しないようにできます。
Dim sh As Worksheet
Dim pvt As PivotTable
For Each sh In Worksheets
For Each pvt In sh.PivotTables
pvt.HasAutoFormat = False
Next pvt
Next sh
サンプルマクロの解説
[ピボットテーブルオプション]ダイアログの[更新時に列幅を自動調整する]チェックボックスをOffにする操作をマクロ記録すると、
ActiveSheet.PivotTables("ピボットテーブル1").HasAutoFormat _
= False
といったコードが作られます。
つまりPivotTableオブジェクトのHasAutoFormatプロパティを、
Falseにすれば、[更新時に列幅を自動調整する]チェックボックスが、Offになるということです。
上記のマクロでは、このPivotTable.HasAutoFormatプロパティをFalseにする処理を、ループ処理の中で繰り返しています。
アクティブなブックの全ワークシートに対するFor Each~Nextループの中で、
For Each sh In Worksheets
各シート上の全ピボットテーブルに対するFor Each~Nextループを回して、
For Each pvt In sh.PivotTables
PivotTable.HasAutoFormatプロパティをFalseに設定しています。
pvt.HasAutoFormat = False
- Newer:Workbooks.Itemとは?
- Older:MergeArea.Itemとは
Home » エクセルマクロ・Excel VBAの使い方 » ピボットテーブル » ピボットテーブル更新時に列幅を自動調整しないようにするExcelマクロ