PivotCacheを利用する
ピボットテーブルを作成した際、内部的に構築がキャッシュ(保存)されます。
このキャッシュされたデータが PivotCacheオブジェクト になります。
既存のピボットテーブルがあれば、PivotCacheオブジェクト を呼び出し再度使用することができます。
同じデータソースからフィールドの配置を変えたピボットテーブルを作成するときなどに使えます。
CreatePivotTableメソッド
キャッシュされたデータを引き出すためには CreatePivotTableメソッド を使います。
※フィールドの設定は別途必要になります。
構文
Object.CreatePivotTable(TableDestination, TableName, ReadData, DefaultVersion)
| Object | PivotCacheオブジェクトを表す変数です。 |
| TableDestination | 作成するピボットテーブルが配置するシート名とセルを指定します。必須です。 |
| TableName | 作成するピボットテーブルの名前を指定します。 |
| ReadData | True を指定すると、外部データベースのすべてのレコードを含むキャッシュが作成されます。 |
| DefaultVersion | ピボットテーブルの既定のバージョンを指定します。 |
サンプルコード
A1セルに下記の表をコピペしてください。
| 商品名 | 日付 | 売上 |
| りんご | 1月1日 | 2000 |
| みかん | 1月1日 | 1500 |
| ぶどう | 1月2日 | 3000 |
| りんご | 1月2日 | 3000 |
Public Sub PivotTable()
'キャッシュの基となるピボットテーブルを作成
Worksheets("Sheet1").PivotTableWizard SourceType:=xlDatabase, _
SourceData:=Range("A1").CurrentRegion, _
TableDestination:=Range("E1"), _
TableName:="売上表"
End Sub
Public Sub PivotCache()
Dim pivot As PivotCache
Set pivot = ThisWorkbook.PivotCaches(1) '■キャッシュデータを取得
'ピボットテーブルを作成する
'作成位置を指定(Sheet1,E10セル)
'テーブル名を「日付別販売個数」にする
pivot.CreatePivotTable _
TableDestination:=Worksheets("Sheet1").Range("E10"), _
TableName:="日付別売上"
'フィールドの設定
With Worksheets("Sheet1").PivotTables("日付別売上")
.PivotFields("日付").Orientation = xlRowField '「日付」を行に設定
.PivotFields("商品名").Orientation = xlRowField '「商品名」を行に追加
'販売個数に対する処理
With .PivotFields("売上")
.Orientation = xlDataField 'データ
.Function = xlSum '合計値を求める
End With
End With
End Sub
注意点
- PivotCacheオブジェクトは PivotCachesコレクション のメンバーです。
関連記事



コメント