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
関連記事
- ピボットテーブルのフィールドを設定する【PivotFieldオブジェクト】【Orientation/Functionプロパティ】
- 同じデータソースから別のピボットテーブルを作成する【CreatePivotTableメソッド】



コメント