ピボットグラフは、ピボットという名前のとおりピボットテーブルを元にして作成できる埋め込みグラフのことです。せっかくピボットテーブルを勉強してきたのでグラフも簡単に作成できることも勉強しましょう。
今回は、ピボットテーブルからピボットグラフを作成する方法について勉強しましょう(^^)/
グラフって、私センスが無いから苦手なんですよね(^^;
苦手を克服できればいいなぁ。よろしくお願いします!
【この記事でわかることは】
・ピボットグラフの作成方法がわかります
・AddChart2メソッドを使ってグラフを作成する方法がわかります
前回記事のおさらいは、下のカードをクリックすれば開きます(^^ゞ
前回記事は、ピボットテーブルの日付のグループ化についての解説と自動グループ化を解除する方法の解説記事でした。よければ覗いてみてね(^^)/
ピボットグラフを作成する方法
初めに「マクロの記録」で記録したグラフと記録されたコードを見てみましょう。
※ Excel2016で実行した記録です。
Sub Macro1()
ActiveSheet.Shapes.AddChart2(201, xlColumnClustered).Select
ActiveChart.SetSourceData Source:=Range("Sheet1!$A$3:$G$9")
End Sub
・ピボットテーブルのセルがアクティブな状態で「分析」タブの「ピボットグラフ」を押下
・通常のタテ棒グラフを選択して作成しました。
・記録されたコードは、たったの2行です。
・Shapes.AddChart2メソッドでグラフの元を作成・選択しているようです。
・201 は高さのポイント数のようです。
・xlColumnClustered は、「集合縦棒」の定数ですね。
・SetSourceData でデータ領域(ピボットテーブル領域)を適用しているようです。
Shepes.AddChart2 メソッド
Microsoft OfficaVBAリファレンスで Shapes.AddChart2 メソッドを調べてみました。
「ドキュメントにグラフを追加します。グラフを表すShape オブジェクトを返し、指定されたコレクションに追加します」とのことです。
Shapes.AddChart2メソッドの構文/パラメーター/戻り値
構文
Shapes.addchart2(Style、xlcharttypeクラス、Left、Top、Width、Height、newlayout)
パラメーター
名前 | 必須/ オプション | データ型 | 説明 |
---|---|---|---|
Style | 省略可能 | Variant | グラフのスタイルです。 Xlcharttype で指定されている グラフの種類を取得するには、”-1″ を使用します。 |
XlChartType | 省略可能 | Variant | グラフの種類を、数値または定数で指定します。 |
left | 省略可能 | Variant | グラフの左端の位置をポイント単位で指定します。 |
top | 省略可能 | Variant | グラフの上端の位置をポイント単位で指定します。 |
Width | 省略可能 | Variant | グラフのポイント単位の幅です。 |
Height | オプション | Variant | グラフのポイント単位の高さです。 |
NewLayout | 省略可能 | Variant | NewLayout に True を指定した場合、タイトルはオン、 複数の系列がある場合は凡例がオンになります。 |
・Height パラメーターがオプションと表記されていますが省略可能のようです。
・試しに次のコードように「マクロの記録」のパラメーターを全て外して実行してみました。
Sub Macro1()
ActiveSheet.Shapes.AddChart2.Select 'パラメーターを削除(201,xlColumnClustered)
ActiveChart.SetSourceData Source:=Range("Sheet1!$A$3:$G$9")
End Sub
・実行結果は画像のとおりのグラフが作成されました。「グラフタイトル」が追加されています。
戻り値
戻り値は「Shape」オブジェクトです。
Xlcharttype で指定できるグラフの種類
・Xlcharttype クラス列挙体 (Excel)で定数が指定されています。
・74種類あるようです。
・「定数名」か「値」で指定できます。
・下表は主なグラフ種類だけ表示しています。詳細はこのリンク先、Microsoftのリファレンスを参考して確認して下さい。
定数名 | 値 | グラフ種類 |
---|---|---|
xlcolumnclustered | 51 | 集合縦棒 |
xlColumnStacked | 52 | 積み上げ縦棒 |
xlbarclustered | 57 | 集合横棒 |
xlBarStacked100 | 59 | 100%積み上げ横棒 |
xlpie | 5 | 円グラフ |
xlLine | 2/4 | 折れ線 |
Chart.SetSourceData メソッド
・グラフに使用するソース データの範囲を設定します。
・これを指定しないで、AddChart2メソッドだけを実行するとグラフの実体が無い、枠(フィールド)だけが作成されます。
・AddChart2メソッドとセットで使う必要があるということですね。
Chart.SetSourceData メソッドの構文/パラメーター
構文
Chart.SetSourceData(Source、PlotBy)
・「マクロの記録」の参考例:SetSourceData Source:=Range(“Sheet1!$A$3:$G$9”)はセル範囲の指定になっています。
・ここは、セル範囲でなく次のようにピボットテーブルのデータ領域指定に変更します。
・SetSourceData Source:=ActiveSheet.PivotTables(1).DataBodyRange
・こうしておけば、データ変更への対応に苦労しなくて済みます。
パラメーター
名前 | 必須/ オプション | データ型 | 説明 |
---|---|---|---|
Source | 必須 | Range | 元データを含むセル範囲を指定します。 |
PlotBy | 省略可能 | Variant | データをプロットする方法を指定します。 xlColumns または xlRows のいずれかです。 |
サンプルコードで折れ線グラフを作成してみます
・折れ線グラフは「xlLine」を指定すれば作成できることがわかりましたので動作確認してみます。
・「マクロの記録」を次のように汎用で使えるように改造して利用します。
・Shepe オブジェクトを変数に代入するようにします。
・Source にはピボットテーブルの DataBodyRange でデータ領域を指定します。
Sub AddChartSample()
Dim pvtChart As Shape
With ActiveSheet
Set pvtChart = .Shapes.AddChart2(XlChartType:=xlLine) '折れ線グラフ
pvtChart.Chart.SetSourceData Source:=.PivotTables(1).DataBodyRange
End With
End Sub
・特にサイズなどは指定しないで作成していますので、必要に応じて追加指定します。
・AddChart2(XlChartType:=xlLine) の部分に他のパラメーターを追加して指定します。
・一度手動で調整してサイズを確認しておいて指定してもよいでしょう。最初からマクロで何度もテストするよりも、むしろその方が良いと思います。
少し内容が軽いですが、ひとまずグラフは作成できるようになったので今回は以上で終了します。
まとめ(おわりに)
・いかがでしたでしょうか?
・「いつも汎用でだれでも使えて活用できるように考えてVBAを使う」というポリシーを念頭に記事を書いています。
・今回も、記事内で使用したコードのサンプルファイルを登録していますのでご利用ください。
・今までの記事のサンプルも登録していますのでよろしければお使いください(^^)
まとめと感想など
どうですか。とりあえずはグラフを作成できるところまで行きましたね。意外と簡単でしたね(^^)
そうですね。作るところまでは本当に簡単なんですね(^^)
でも、ここから見栄えを良くするのが大変なんですよね。これを参考にもっといろいろ試して勉強してみます(^-^;
ここまでピボットテーブルについて勉強してきましたが、実は今回のこの記事がこのブログを始めてから丁度100記事目でした!
次回、何にするかまだ決めていませんが、お役に立てる記事を目指して今後も継続していきます。これからもよろしくお願いしますm(_ _)m
★★★ ブログランキング参加中! クリックしてね(^^)/ ★★★
今後の記事について
今回の記事はいかがだったでしょうか。皆さまのお役に立てたなら幸いです(^^;
「汎用でだれでも使えて活用できるように考えてVBAを使う」というポリシーで、記事を継続して書いていきたいと思っています。どうぞよろしくお願いしますm(_ _)m
【検討中の今後の記事内容は・・・・・】
・実務に役立つものを提供できるよう常に検討しています(^^ゞ
・その他雑記的に「プチネタなど」もいろいろ考えていきたいと思います・・・・・
・今後の記事にもご期待ください(^^)/
記事のサンプルファイルをダウンロードできます
今回の記事のサンプルをダウンロードできるようリンク先に登録しています!
過去の記事で使用したサンプルファイルがダウンロードできるページを設置しています
こちら(このリンク先)からご利用ください
【今回わかったことは】
・ピボットグラフの作成方法がわかりました
・AddChart2メソッドを使ってグラフを作成する方法がわかりました
・細かい設定は手動で行ってからその設定値を利用する方法がおすすめです