この記事では、Excelマクロ、VBAを活用したピボットテーブルの自動化の中でも、特にフィールドの設定方法について、紹介しています。
Excelマクロの利用を始める方は、まず以下の記事をご覧ください。
VBAの環境構築の方法をまとめました
この記事では、Excelマクロ・VBAを使い始めるための環境構築の方法をまとめています。これからVBAを活用したい方はぜひ参考にしてください。
また、VBAでのピボットテーブルの作成方法については、以下の記事をご覧ください。
【Excelマクロ】VBAによるピボットテーブルの作成方法【ピボットキャッシュの解説付】
この記事では、Excelマクロ・VBAを活用してピボットキャッシュ・ピボットテーブルの作成を自動で行う方法について書いています。ピボットテーブルを活用した業務効率化を目指している人はぜひ参考にしてください。
それでは、本題に入っていきます。以下のような表があるとします。
こちらの表でピボットテーブルを作成し、以下の状態だとします。
補足
前提として、VBAを使わない場合もそうですが、ピボットテーブルを操作するときは、ピボットテーブルのどこかを選択している必要があります。上記の表の場合は、A3を選択している状態です。以降は、A3を選択している前提で進めます。
ちなみに、A3を選択するためのコードは以下の通りです。
' ピボットテーブルのセルを選択 Sheets("ピボットテーブル").Select Cells(3, 1).Select
補足は以上で、本題に戻ります。ピボットテーブルのフィールド設定は「フィルター」「列」「行」「値」のどれかを指定します。
今回の例では、以下のような設定をするとします。
フィルター → 学年
列 → クラス
行 → 名前
値 → 国語
前提として、このピボットテーブルの名前は「ピボット1」です。ピボットテーブルの名前の確認方法は以下より確認下さい。
ピボットテーブル名の確認・変更方法を紹介
この記事では、ピボットテーブルの名前の確認・変更方法について紹介しています。ピボットテーブルに項目を設定している場合と設定していない場合の2通り紹介しているので、ぜひ参考にしてください。
ピボット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を学ぶのにおすすめの書籍となっています。ぜひ参考にしてください。