先日から、マクロによるピボットテーブルの扱いを纏めている(備忘録)。
昨日は、データ範囲の表示形式変更に挑戦した。
infoment.hatenablog.com
今日は、今までの内容を更に一まとめにすることで、普段のピボットテーブル作成マクロを更に圧縮することに挑戦する。
大した話ではない。もともと個人用マクロであるからして、普段から使用頻度の高い組み合わせを「お好みセット」として準備しておくだけの話。
' お気に入り書式盛合せ Public Sub SetFavoriteFormat() ' 表形式で表示。 SetRowAxisLayout layout_row_type:=xlTabularRow ' 小計を非表示。 SetSubTotals subtotal_visible:=False ' 平均で集計。 SetValueVield xlAverage ' 書式を桁区切りに。 SetFormat ft桁区切り End Sub
そうすると、昨晩のコードの行数は、半分強まで圧縮されることになる。
Sub Test() Dim PvtTable As VBAProject.PvtTable Set PvtTable = New VBAProject.PvtTable If PvtTable.MakePivotTable(ActiveSheet.ListObjects(1)) = False Then MsgBox "ピボットテーブルの作成に失敗しました。" Exit Sub End If With PvtTable ' 各フィールドを設定。 .SetFields xlPageField, "カレーの食べ方", "キャリア" .SetFields xlRowField, "都道府県", "性別" .SetFields xlColumnField, "婚姻" .SetFields xlDataField, 6 .SetFavoriteFormat End With End Sub
今回テストに追加されたのは、この一行だけ。
.SetFavoriteFormat
正直、この設定をクラスモジュール内に置くことには自分自身、少なからぬ抵抗感がある。なぜなら、クラスモジュール内を見ない限り、この一文がもたらす結果をユーザーは知り得ないから。
(或いは毎回、丁寧なコメント文を載せることになる)。
ということで、これはあくまで個人使用に限定ってことで。
明日に続きます。
参考まで。