ピボットテーブルの備忘録 ②クラス化(7)お好みセット

先日から、マクロによるピボットテーブルの扱いを纏めている(備忘録)。
昨日は、データ範囲の表示形式変更に挑戦した。
infoment.hatenablog.com

今日は、今までの内容を更に一まとめにすることで、普段のピボットテーブル作成マクロを更に圧縮することに挑戦する。

f:id:Infoment:20200320230126j:plain

大した話ではない。もともと個人用マクロであるからして、普段から使用頻度の高い組み合わせを「お好みセット」として準備しておくだけの話。

' お気に入り書式盛合せ
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

正直、この設定をクラスモジュール内に置くことには自分自身、少なからぬ抵抗感がある。なぜなら、クラスモジュール内を見ない限り、この一文がもたらす結果をユーザーは知り得ないから。
(或いは毎回、丁寧なコメント文を載せることになる)。

ということで、これはあくまで個人使用に限定ってことで。

明日に続きます。

参考まで。