【Excelマクロ】VBAによるピボットテーブルのフィールド設定方法

スポンサーリンク

アイキャッチ画像

この記事では、Excelマクロ、VBAを活用したピボットテーブルの自動化の中でも、特にフィールドの設定方法について、紹介しています。

 

Excelマクロの利用を始める方は、まず以下の記事をご覧ください。

 

また、VBAでのピボットテーブルの作成方法については、以下の記事をご覧ください。

 

それでは、本題に入っていきます。以下のような表があるとします。

表

こちらの表でピボットテーブルを作成し、以下の状態だとします。

ピボット作成画面

 

補足

前提として、VBAを使わない場合もそうですが、ピボットテーブルを操作するときは、ピボットテーブルのどこかを選択している必要があります。上記の表の場合は、A3を選択している状態です。以降は、A3を選択している前提で進めます。

 

ちなみに、A3を選択するためのコードは以下の通りです。

    ' ピボットテーブルのセルを選択
    Sheets("ピボットテーブル").Select
    Cells(3, 1).Select

 

補足は以上で、本題に戻ります。ピボットテーブルのフィールド設定は「フィルター」「列」「行」「値」のどれかを指定します。

 

今回の例では、以下のような設定をするとします。

フィルター → 学年

列 → クラス

行 → 名前

値 → 国語

 

前提として、このピボットテーブルの名前は「ピボット1」です。ピボットテーブルの名前の確認方法は以下より確認下さい。

 

ピボット1にVBAでフィールドを設定するには、以下のようなコードとなります。

Sub フィールド設定()
    ' フィールド設定
    With ActiveSheet.PivotTables("ピボット1")
        ' フィルター設定
        .PivotFields("学年").Orientation = xlPageField
        
        ' 列設定
        .PivotFields("クラス").Orientation = xlColumnField
        
        ' 行設定
        .PivotFields("名前").Orientation = xlRowField
        
        ' 値設定
        .PivotFields("国語").Orientation = xlDataField
    End With
End Sub

 

上記のコードを実行すると以下のようになります。

マクロ実行後のピボット画面

以上、VBAでピボットテーブルのフィールドを設定する方法でした。

 

ピボットテーブルでフィルターを設定する方法(作成中)

ピボットテーブルの値を設定する方法まとめ(作成中)

 

以下、VBAを学ぶのにおすすめの書籍となっています。ぜひ参考にしてください。