この記事では、Excelマクロ・VBAによるピボットテーブルの作成方法について紹介します。
VBAの環境構築の方法については、以下の記事でをご覧ください。
VBAの環境構築の方法をまとめました
この記事では、Excelマクロ・VBAを使い始めるための環境構築の方法をまとめています。これからVBAを活用したい方はぜひ参考にしてください。
早速ですが、以下のような表があるとします。
この表でピボットテーブルを作成するには以下のようなコードとなります。
' ピボットテーブル用のシート追加 Worksheets.Add(after:=Worksheets(Worksheets.Count)).Name = "ピボットテーブル" ' ピボットキャッシュ作成 → ピボットテーブル作成 ThisWorkbook.PivotCaches.Create(xlDatabase, Worksheets("Sheet1").Range("A1:I19")).CreatePivotTable Sheets("ピボットテーブル").Range("A3"), "ピボットテーブル1"
上記のコードを実行すると以下のような結果となります。
手順としては、以下の通り。
①シートを追加
②ピボットキャッシュ、ピボットテーブル作成
①シートの追加
' ピボットテーブル用のシート追加 Worksheets.Add(after:=Worksheets(Worksheets.Count)).Name = "ピボットテーブル"
シートの追加については以下の記事をご覧ください。
【Excel(エクセル)/マクロ/VBA】新規シート追加の様々な方法をまとめました
この記事では、Excelマクロを活用した、4つのシート追加方法をまとめています。
②ピボットキャッシュ、ピボットテーブル作成
' ピボットキャッシュ作成 → ピボットテーブル作成 ThisWorkbook.PivotCaches.Create(xlDatabase, Worksheets("Sheet1").Range("A1:I19")).CreatePivotTable Sheets("ピボットテーブル").Range("A3"), "ピボットテーブル1"
そもそもピボットテーブルを作成する前にピボットキャッシュというものを作成しておく必要があります。
ピボットキャッシュを作成するとは、ピボットテーブルを作成するための元データとなる表を保持しておくことです。
ちなみにキャッシュとは一時的に保存されているデータのことで、Webページ関連で良く活用される用語です。英語でcacheと書き、日本語では「貯蔵する所」と訳されます。
このキャッシュをもとに、ピボットテーブルを作成するという仕組みです。
補足
今回は、予め表のサイズがわかっていたため、範囲選択は簡単でした。しかし、表のサイズがあらかじめわかっていない場合もあるかと思います。
その際は、表の範囲選択についての応用した選択方法が必要となります。(起点となるセルから最後の列、最後の行を取得して範囲を選択する)気になる方は、以下の記事をご覧ください。
VBAで文字数が一番多い列幅で複数列を自動調整する方法
この記事では、複数列の中で一番文字数の大きい列幅に合わせる方法を紹介しています。Excelマクロ・VBAの応用編として少し難しいですが、ぜひ参考にしてみてください。
以上でVBAでピボットテーブルを作成する方法でした。作成ができた方は、ピボットフィールドの設定を学びましょう。以下の記事をご覧ください。
【Excelマクロ】VBAによるピボットテーブルのフィールド設定方法
この記事では、Excelマクロ・VBAを活用してピボットテーブルのフィールド設定を自動で行う方法について書いています。ピボットテーブルを活用した業務効率化を目指している人はぜひ参考にしてください。
以下はVBAに関するおすすめの書籍です。ぜひ参考にしてみてください。