ピボットグラフの作成方法
ピボットグラフは、ピボットテーブルを元にして埋め込みグラフとして作成します。通常の埋め込みグラフを作成する方法と同じでChartObjects【チャートオブジェクツ】コレクションのAdd【アド】メソッド使用します。
データ範囲にピボットテーブルのセル範囲をPivotTable【ピボットテーブル】オブジェクトのTableRange1【テーブルレンジワン】プロパティを使用して取得します。
ChartObjects.Add【チャートオブジェックスアド】メソッド
ワークシートに埋め込みグラフを作成するにはChartObjects【チャートオブジェクツ】コレクションのAdd【アド】メソッドを使用します。
新しい埋め込みグラフを作成してChartObject【チャートオブジェクト】オブジェクトを返します。
ChartObject【チャートオブジェクト】オブジェクトはグラフエリアを表し、グラフの大きさや外観を操作します。グラフ自体を操作するにはChartObject【チャートオブジェクト】オブジェクトのChart【チャート】プロパティを使用し、Chart【チャート】オブジェクトを取得して操作します。
ChartObjects.Add【チャートオブジェクツアド】メソッドの書式と設定値の説明
オブジェクト.Add( Left, Top, Width, Height )
- オブジェクト(必須)
ChartObjects【チャートオブジェクツ】コレクションを指定します。 - Left【レフト】(必須)
埋め込みグラフの左端位置をポイント単位で指定します。 - Top【トップ】(必須)
埋め込みグラフの上端位置をポイント単位で指定します。 - Width【ワイズ】(必須)
埋め込みグラフの幅をポイント単位で指定します。 - Height【ハイト】(必須)
埋め込みグラフの高さをポイント単位で指定します。
※埋め込みグラフの位置と幅、高さはセル座標を取得するRange【レンジ】オブジェクトのTop・ Left・ Width・Heightプロパティを使用して取得します。
SetSourceData【セットソースデータ】メソッド
グラフのデータ範囲を指定するには、Chart【チャート】オブジェクトのSetSourceData【セットソースデータ】メソッドを使用します。
SetSourceData【セットソースデータ】メソッドの書式と設定値の説明
[]内は省略可能です。
オブジェクト.SetSourceData( Source[, PlotBy ])
- オブジェクト(必須)
Chart【チャート】オブジェクトを指定します。 - Source【ソース】(必須)
グラフのデータの元となるセル範囲を指定します。 - PlotBy【プロットバイ】(省略可)
グラフに表示するデータの系列をxlRowCol列挙型の定数で指定します。省略した場合は、データ範囲の項目の行数が項目の列数より多い場合は列方向となり、同数または、少ない場合は、行方向となります。xlRowCol列挙型の定数 定数 内容 xlColumns 列方向 xlRows 行方向
TableRange1【テーブルレンジワン】プロパティ
ピボットテーブルのセル範囲を取得するには、PivotTable【ピボットテーブル】オブジェクトのTableRange1【テーブルレンジワン】プロパティを使用します。TableRange1【テーブルレンジワン】プロパティはページフィールドを除くピボットテーブルの範囲をRange【レンジ】オブジェクトで返します。
ページフィールドを含むピボットテーブルの範囲を取得する場合は、TableRange2【テーブルレンジツゥ】プロパティを使用します。値の取得のみ可能です。
TableRange1【テーブルレンジワン】プロパティの書式と設定値
オブジェクト.TableRange1
- オブジェクト(必須)
範囲を取得するピボットテーブルを表すPivotTable【ピボットテーブル】オブジェクトを指定します。
7月度の店舗別事業売上表を元にピボットテーブルを作成してグラフを作成する例
実行前
コード例
ピボットテーブルの作成方法は、ピボットテーブルを作成するをご覧ください。
Sub テーブルグラフ作成() Dim キャッシュ As PivotCache Dim テーブル As PivotTable Set キャッシュ = ActiveWorkbook.PivotCaches.Create _ (SourceType:=xlDatabase, SourceData:=Range("A1").CurrentRegion) Set テーブル = キャッシュ.CreatePivotTable _ (tabledestination:=Range("F1"), TableName:="7月度事業別売上") With テーブル .PivotFields("事業").Orientation = xlRowField .PivotFields("店名").Orientation = xlColumnField With .PivotFields("売上") .Orientation = xlDataField .Function = xlSum .NumberFormat = "#,##0" End With End With Dim グラフ範囲 As Range Set グラフ範囲 = Range("F8:K18") With ActiveSheet.ChartObjects.Add(グラフ範囲.Left, グラフ範囲.Top, グラフ範囲.Width, グラフ範囲.Height) .Chart.SetSourceData Source:=ActiveSheet.PivotTables("7月度事業別売上").TableRange1 End With End Sub
実行結果
Excel2007以降は、Shapes【シィプス】コレクションのAddChart【アドチャート】メソッドでもグラフの作成ができます。詳細はグラフの作成をご覧ください。
AddChart【アドチャート】メソッドでピボットグラフを作成するコード例
Sub テーブルグラフ作成2() Dim キャッシュ As PivotCache Dim テーブル As PivotTable Set キャッシュ = ActiveWorkbook.PivotCaches.Create _ (SourceType:=xlDatabase, SourceData:=Range("A1").CurrentRegion) Set テーブル = キャッシュ.CreatePivotTable _ (tabledestination:=Range("F1"), TableName:="7月度事業別売上") With テーブル .PivotFields("事業").Orientation = xlRowField .PivotFields("店名").Orientation = xlColumnField With .PivotFields("売上") .Orientation = xlDataField .Function = xlSum .NumberFormat = "#,##0" End With End With Dim グラフ範囲 As Range Set グラフ範囲 = Range("F8:K18") With ActiveSheet.Shapes.AddChart(xl3DColumn, グラフ範囲.Left, グラフ範囲.Top, グラフ範囲.Width, グラフ範囲.Height) .Chart.SetSourceData Source:=ActiveSheet.PivotTables("7月度事業別売上").TableRange1 End With End Sub
実行結果
以上で、ピボットグラフを作成する方法についての解説を終了します。ありがとうございました。