関数・メソッド

ピボットテーブルを作成する【PivotTableWizardメソッド】【ExcelVBA】

VBAでピボットテーブルを作成する

Excelでは大定番のピボットテーブル。使用する人は多いと思います。
ピボットテーブルは集計や分析が大変楽で、フィルタや並べ替えも簡単にできます。
大量のデータでも数クリックで完成してしまう、非常に強力な機能です。

VBAでは PivotTableWizardメソッド を使うことでピボットテーブルを作成することができます。
※フィールドの設定についてはコチラ

構文
Object.PivotTableWizard(SourceType,SourceData,TableDestination,TableName,RowGrand,ColumnGrand,SaveData,HasAutoFormat,AutoPage,Reserved,BackgroundQuery,OptimizeCache,PageFieldOrder,PageFieldWrapCount,ReadData,Connection)

Object Worksheetオブジェクトを表す変数です。
SourceType レポートデータソースの種類を表す XlPivotTableSourceType の値です。
この引数を指定する場合、引数 SourceData も指定する必要があります。
SourceData レポートの作成に使うデータを指定します。
TableDestination レポートの配置場所を表す Rangeオブジェクト を指定します。
省略すると、アクティブセルに配置されます。
TableName 新しいレポートの名前を指定します。
RowGrand True を指定すると、行の総計を表示します。
ColumnGrand True を指定すると、列の総計を表示します。
SaveData True を指定すると、レポートと共にデータを保存します。
※ False はレポートの定義のみを保存
HasAutoFormat True を指定すると、レポートが更新されたとき、またはフィールドが移動されたときに自動的で書式設定されます。
AutoPage True を指定すると、Excel で統合のページフィールドが作成されます。
※ SourceType が xlConsolidation の場合にのみ有効
Reserved Excel では使用しません。
BackgroundQuery True の場合、レポートのクエリをバックグラウンドで実行します。
既定値は False。
OptimizeCache True の場合、ピボットテーブルのキャッシュの最適化を行います。
既定値は False です。
PageFieldOrder ピボットテーブルレポートのレイアウトに追加するページフィールドの順序です。
使用する XlOrder定数 は xlDownThenOver(規定値)、xlOverThenDown のいずれかです。
PageFieldWrapCount ピボットテーブルの各列または各行のページフィールドの数を指定します。
既定値は 0 (ゼロ) です。
ReadData True を指定 すると、外部データベースのすべてのレコードを含むピボットテーブル キャッシュが作成されます。
※このキャッシュは非常に大きくなる可能性あり
Connection ODBCデータソースと接続できるようにするODBC設定のいずれかを含む文字を指定します。
XlPivotTableSourceType 説明
xlDatabase 1 Excel のデータベース
xlExternal 2 外部のアプリケーションのデータ
xlConsolidation 3 複数のワークシート範囲
xlScenario 4 [シナリオの登録と管理] を使用して作成されたシナリオに基づきます。
xlPivotTable -4148 既存のピボットテーブル

 

サンプルコード

Public Sub Sample()

'■ピボットテーブルを作成する
  'データのソースがExcelのデータベースであることを指定
  'データベースの場所(A1セルの表)
  'ピボットテーブルの作成位置(E1セル)
  'テーブル名を設定
  Worksheets("Sheet1").PivotTableWizard SourceType:=xlDatabase, _
                             SourceData:=Range("A1").CurrentRegion, _
                             TableDestination:=Range("E1"), _
                             TableName:="新しいテーブル名"

End Sub

 

関連記事

 

コメント