ピボットテーブルを作成する | カメレオンのVBA

カメレオンのVBA

VBAの私的メモ書き


’読込シートA1~M最下行までのデータを元に
’分析結果シートのD7セルへ
’ピボットテーブル(テーブル名"結果_P")を作成する。

 Sheets("分析結果").Select
 ActiveWindow.FreezePanes = False

'既存ピボット削除
 Columns("D:BB").Delete Shift:=xlToLeft

 Sheets("読込").Select
 Range("A1").Select

’①ピボットテーブル作成 項目は↓適宜変更すると良い
 ActiveWorkbook.PivotCaches.Add(SourceType:=xlDatabase, SourceData:= _
 "読込!A1:M" & Cells(Rows.Count, "M").End(xlUp).Row & "") _
 .CreatePivotTable TableDestination:=Worksheets("分析結果").Range("D7") _
 , TableName:="結果_P"


’②ピボットテーブルの設定
  ’ピボットフィールドに 請求先名 を指定する
 With ActiveSheet.PivotTables("結果_P").PivotFields("請求先名")
  .Orientation = xlRowField '行の指定
  .Position = 1 ’一行目
 End With

 ’ピボットフィールドに 出荷先名 を指定する
 With ActiveSheet.PivotTables("結果_P").PivotFields("出荷先名")
  .Orientation = xlRowField '行の指定
  .Position = 2 ’二行目
 End With

’ピボットフィールドに 日 を指定する
 With ActiveSheet.PivotTables("結果_P").PivotFields("日")
  .Orientation = xlColumnField  '列の指定
  .Position = 1 ’一行目
 End With

’集計データを指定する ⇒ピボットフィールド「ケース数量」の個数を集計する
 ActiveSheet.PivotTables("結果_P").AddDataField ActiveSheet.PivotTables( _
 "結果_P").PivotFields("ケース数量"), "データの個数 / ケース数量", xlCount