「PivotTableを更新すると、列幅が広がり過ぎる…」
「毎回直すの、めんどくさい…」
「対処方法が分からない…」
PivotTableは便利ですが、いくつかクセもあります。
その代表例が「更新時に列幅が勝手に変わる問題」です。
この対処方法について、お伝えします。

※項目名が横に長くなり過ぎる…
対処法①:調整機能をオフにする
もっとも簡単に設定できるのは、ピボットテーブルの「オプション設定」を変更することです。
「ピボットテーブル分析」タブから「オプション」を選びます。

次に、「レイアウトと書式」タブの中の
「更新時に列幅を自動調整する」
のチェックを外せばOKです。

ピボットテーブルを作成して、列幅の自動調整をしたくないものはチェックを外しましょう。
対処法②:VBAで特定の列の幅指定
もう1つの方法としては、「VBA」を使う方法もあります。
ピボットテーブル更新時に、列幅調整用のマクロを呼び出すことで自動化できます。
Sub PivotTableの更新()
' 1. アクティブシートのピボットテーブルを更新
Dim pt As PivotTable
For Each pt In ActiveSheet.PivotTables
pt.RefreshTable
Next pt
' 2. シート名が「P分析」の場合のみ、列幅の調整を実行
If ActiveSheet.Name = "P分析" Then
Call AdjustWidth
End If
End Sub
Sub AdjustWidth()
' 幅を10.5(=177ピクセル)に設定
Columns("D:E").ColumnWidth = 10.5
Columns("AD").ColumnWidth = 10.5
End Sub上記の例だと、ピボットテーブルの更新をした場合、
「P分析」シートであれば、特定列の幅を調整するように指定しています。
標準機能(更新時に列幅を自動調整するをオフ)で十分な場合は、
ここまで踏み込む必要はありません。
ただし、「毎回同じ形式の資料」では、
- フォント
- 色
- 罫線
- 小数点桁
- マイナス表示
といった調整もできるので「痒い所に手が届く」ことを望む場合は、使ってみるのもいいでしょう。
対処法③:ピボットテーブルを使わない
他にも対処方法はあり、「そもそもピボットテーブルを使わない」という選択肢もあります。
例えば、
- テーブルから関数で必要な情報だけ拾う
- Power Queryを使う
- 別シートで参照式(GETPIVOTDATA等)
※これはピボットテーブル自体は集計用に作成する
といった方法も。
大切なことは、自分に合った方法を見つけること。
個人分析なら標準機能、定型帳票ならVBAなどを検討するとよいでしょう。
ピボットテーブルの列幅自動調整に苦しんでいる人は、ここ挙げた例を試してみてください。
では、また次回。
編集後記
◇日記
昨日はオフ。大宮公園小動物園へ。
ハイエナが見えたり、小さい園ながらサルがいたりして、楽しめました。
(風が強くて寒すぎましたが)
◇ブログネタ経緯
以前、書きかけたネタを採用
◇1日1新
大宮公園小動物園