【Excelマクロ】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 = "ピボットテーブル"

シートの追加については以下の記事をご覧ください。

 

②ピボットキャッシュ、ピボットテーブル作成

    ' ピボットキャッシュ作成 → ピボットテーブル作成
    ThisWorkbook.PivotCaches.Create(xlDatabase, Worksheets("Sheet1").Range("A1:I19")).CreatePivotTable Sheets("ピボットテーブル").Range("A3"), "ピボットテーブル1"

そもそもピボットテーブルを作成する前にピボットキャッシュというものを作成しておく必要があります。

 

ピボットキャッシュを作成するとは、ピボットテーブルを作成するための元データとなる表を保持しておくことです。

 

ちなみにキャッシュとは一時的に保存されているデータのことで、Webページ関連で良く活用される用語です。英語でcacheと書き、日本語では「貯蔵する所」と訳されます。

 

このキャッシュをもとに、ピボットテーブルを作成するという仕組みです。

 

補足

今回は、予め表のサイズがわかっていたため、範囲選択は簡単でした。しかし、表のサイズがあらかじめわかっていない場合もあるかと思います。

 

その際は、表の範囲選択についての応用した選択方法が必要となります。(起点となるセルから最後の列、最後の行を取得して範囲を選択する)気になる方は、以下の記事をご覧ください。

 

以上でVBAでピボットテーブルを作成する方法でした。作成ができた方は、ピボットフィールドの設定を学びましょう。以下の記事をご覧ください。

 

以下はVBAに関するおすすめの書籍です。ぜひ参考にしてみてください。