PivotTableの更新で列幅が変わる問題|対処法3選(標準機能・VBA・代替案)

「PivotTableを更新すると、列幅が広がり過ぎる…」
「毎回直すの、めんどくさい…」
「対処方法が分からない…」

PivotTableは便利ですが、いくつかクセもあります。

その代表例が「更新時に列幅が勝手に変わる問題」です。

この対処方法について、お伝えします。

※項目名が横に長くなり過ぎる…

Contents

対処法①:調整機能をオフにする

もっとも簡単に設定できるのは、ピボットテーブルの「オプション設定」を変更することです。

「ピボットテーブル分析」タブから「オプション」を選びます。

次に、「レイアウトと書式」タブの中の

「更新時に列幅を自動調整する」

のチェックを外せば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新
 大宮公園小動物園

よかったらシェアしてね!
  • URLをコピーしました!
  • URLをコピーしました!
Contents