関数・メソッド

同じデータソースから別のピボットテーブルを作成する【CreatePivotTableメソッド】【ExcelVBA】

PivotCacheを利用する

ピボットテーブルを作成した際、内部的に構築がキャッシュ(保存)されます。
このキャッシュされたデータが PivotCacheオブジェクト になります。

既存のピボットテーブルがあれば、PivotCacheオブジェクト を呼び出し再度使用することができます。
同じデータソースからフィールドの配置を変えたピボットテーブルを作成するときなどに使えます。

 

CreatePivotTableメソッド

キャッシュされたデータを引き出すためには CreatePivotTableメソッド を使います。
※フィールドの設定は別途必要になります。

構文
Object.CreatePivotTable(TableDestination, TableName, ReadData, DefaultVersion)

ObjectPivotCacheオブジェクトを表す変数です。
TableDestination作成するピボットテーブルが配置するシート名とセルを指定します。必須です。
TableName作成するピボットテーブルの名前を指定します。
ReadDataTrue を指定すると、外部データベースのすべてのレコードを含むキャッシュが作成されます。
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コレクション のメンバーです。

 

関連記事

 

コメント

タイトルとURLをコピーしました