ピボットテーブルの行の列(RowRangeプロパティ)
今日は、職場で受けた相談をアレンジして紹介。
いつもの「なんちゃって個人情報」で、A列を「グループNo.」に変更した。
今回は無作為に、1~5でグループ分け。
このテーブルを用いて、ピボットテーブルを作成。
このたび受けた相談は、マクロでグループ番号を3桁に出来ないか?というもの。
具体的には、こんな感じだ。
そこで今回は、表示形式の設定で対応することにした。
早速、マクロの記録で概要を確認。すると、こんなコードが記録された。
Sub Macro1() ActiveSheet.PivotTables("ピボットテーブル1").PivotSelect "グループNo[All]", xlLabelOnly + _ xlFirstRow, True Selection.NumberFormatLocal = "000" End Sub
列を指定するだけなのに、何やら色々と情報が多くて分かり難い。
そこで色々と探してみたところ、良さげなものがあったので使ってみた。
Sub Macro1() Dim Pvt As PivotTable Set Pvt = ActiveSheet.PivotTables(1) Pvt.RowRange.NumberFormatLocal = "000" End Sub
この「RowRange」を用いることで、希望する書式変更を実現できた。良かった。
docs.microsoft.com
ただし確認のため、↓ のように「年齢」を行に加えて実行してみたところ、年齢も三桁になってしまった。
このことから、以下二つの条件を同時に満たす場合は有効なようだ。
- 数字だけのラベルが無い(RowRangeはラベルも含まれるため)。
- 行の全てが同じ書式になって構わない。
というわけで、「RowRange」で指定するか否かは、時と場合と各位の好みで。
参考まで。