Excel

【ExcelVBA】AddChart2でシートにグラフを挿入する

更新日:2023/12/01

Excel VBAのAddChart2はシートに散布図や折れ線などのグラフを挿入するメソッドです。
シートに入力されているデータを元に、グラフを生成できます。

 

AddChart2の構文

AddChart2は Shapesオブジェクトのメソッドです。
構文は、次のようになっています。

Shapesオブジェクト.AddChart2(Style, XlChartType, Left, Top, Width, Height, NewLayout)
  1. Style:
    グラフのスタイル(種類ではない)。
    -1で規定のスタイル。
    スタイル値の調べ方
  2. XlChartType:
    グラフの種類。
    使用できる値
  3. Left:
    グラフの左位置
  4. Top:
    グラフの上位置
  5. Width:
    グラフの幅
  6. Height:
    グラフの高さ
  7. NewLayout:
    新しいレイアウトで挿入するかどうか
    true 挿入する

引数は省略可能です。
AddChart2呼び出し後に、対応するプロパティで設定できます。
(NewLayoutは不明)

引数対応プロパティ
Style戻り値.Chart.ChartStyle
XlChartType戻り値.Chart.ChartType
Left戻り値.Left
Top戻り値.Top
Width戻り値.Width
Height戻り値.Height

■戻り値

追加されたShapeオブジェクトを返します。

 

AddChart2の使い方

AddChart2で追加したグラフは、グラフの元となる値を指定する必要があります。

グラフの元となる値は、AddChart2が返したShapeオブジェクトのChart.SetSourceDataメソッドで指定します。

Sub addChart2Sample()
    Dim graph As Shape
    
    ' 散布図を作成
    Set graph = Sheets("sheet1").Shapes.AddChart2(-1, _
                    xlXYScatter, 400, 100, 400, 400, True)
    
    ' 元となるデータを指定
    graph.Chart.SetSourceData Sheets("sheet1").Range("A3:B9")
End Sub

Chart.SetSourceDataの構文は、次のようになっています。

Chart.SetSourceData(Source, PlotBy)
  • Source: Rangeオブジェクト
  • PlotBy: 省略可能。
    xlColumns データの系列が行にある
    xlRows データの系列が列にある

 

AddChart2とAddChartの違い

AddChartメソッドはOffice2013より前のバージョンで使用されていたメソッドです。
現バージョンでも互換性を保つために使用できますが、非推奨となっています。

今後はAddChartを使用せずに、AddChart2でグラフを挿入します。

 

Styleの調べ方

グラフの種類毎に複数のスタイルが用意されていますが、Styleで使用できる値の公式資料がありません。
そこで、マクロの登録機能で確認します。

  1. グラフの元となる値をシートに入力する
  2. マクロの記録を開始する
  3. グラフを挿入する
  4. VBEで記録中のマクロ(SUBプロシージャ)を表示する
  5. Excelでグラフの種類やスタイルを変更する

    グラフの種類やスタイルを変更

  6. VBEでActiveChart.ChartStyleの値を確認する

    ActiveChart.ChartStyleの値

 

XlChartTypeの値

XlChartTypeは、次の定数または値を指定できます。

種類定数
散布図xlXYScatter-4169
レーダーxlRadar-4151
ドーナツxlDoughnut-4120
3D 円xl3DPie-4102
3D 折れ線xl3DLine-4101
3D 縦棒xl3DColumn-4100
3D 面xl3DArea-4098
分野xlArea1
折れ線xlLine4
xlPie5
バブルxlBubble15
集合縦棒xlColumnClustered51
積み上げ縦棒xlColumnStacked52
100%積み上げ縦棒xlColumnStacked10053
3D集合縦棒xl3DColumnClustered54
3D積み上げ縦棒xl3DColumnStacked55
3D 100%積み上げ縦棒xl3DColumnStacked10056
集合横棒xlBarClustered57
積み上げ横棒xlBarStacked58
100%積み上げ横棒xlBarStacked10059
3D 集合横棒xl3DBarClustered60
3D 積み上げ横棒xl3DBarStacked61
3D 100% 積み上げ横棒xl3DBarStacked10062
積み上げ折れ線xlLineStacked63
100%積み上げ折れ線xlLineStacked10064
マーカー付き折れ線xlLineMarkers65
マーカー付き積み上げ折れ線xlLineMarkersStacked66
マーカー付き100%積み上げ折れ線xlLineMarkersStacked10067
補助円グラフ付き円xlPieOfPie68
分割円xlPieExploded69
分割3D円xl3DPieExploded70
補助縦棒グラフ付き円xlBarOfPie71
平滑線付き散布図xlXYScatterSmooth72
平滑線付き散布図 (データ マーカーなし)xlXYScatterSmoothNoMarkers73
折れ線付き散布図xlXYScatterLines74
折れ線付き散布図 (データ マーカーなし)xlXYScatterLinesNoMarkers75
積み上げ面xlAreaStacked76
100%積み上げ面xlAreaStacked10077
3D 積み上げ面xl3DAreaStacked78
100%積み上げ面xl3DAreaStacked10079
分割ドーナツxlDoughnutExploded80
データマーカー付きレーダーxlRadarMarkers81
塗りつぶしレーダーxlRadarFilled82
3D 表面xlSurface83
3D 表面 (ワイヤーフレーム)xlSurfaceWireframe84
表面 (トップ ビュー)xlSurfaceTopView85
表面 (トップ ビュー - ワイヤーフレーム)xlSurfaceTopViewWireframe86
3D 効果付きバブルxlBubble3DEffect87
高値 - 安値 - 終値xlStockHLC88
始値 - 高値 - 安値 - 終値xlStockOHLC89
出来高 - 高値 - 安値 - 終値xlStockVHLC90
出来高 - 始値 - 高値 - 安値 - 終値xlStockVOHLC91
集合円錐型縦棒xlCylinderColClustered92
積み上げ円錐型縦棒xlCylinderColStacked93
100%積み上げ円柱型縦棒xlCylinderColStacked10094
集合円柱型横棒xlCylinderBarClustered95
積み上げ円柱型横棒xlCylinderBarStacked96
100%積み上げ円柱型横棒xlCylinderBarStacked10097
3D 円柱型縦棒xlCylinderCol98
集合円錐型縦棒xlConeColClustered99
積み上げ円錐型縦棒xlConeColStacked100
100%積み上げ円錐型縦棒xlConeColStacked100101
集合円錐型横棒xlConeBarClustered102
積み上げ円錐型横棒xlConeBarStacked103
100%積み上げ円錐型横棒xlConeBarStacked100104
3D 円錐型縦棒xlConeCol105
集合ピラミッド型縦棒xlPyramidColClustered106
積み上げピラミッド型縦棒xlPyramidColStacked107
100%積み上げピラミッド型横棒xlPyramidColStacked100108
集合ピラミッド型横棒xlPyramidBarClustered109
積み上げピラミッド型横棒xlPyramidBarStacked110
100%積み上げピラミッド型横棒xlPyramidBarStacked100111
3D ピラミッド型縦棒xlPyramidCol112
マップグラフxlRegionMap140

更新日:2023/12/01

書いた人(管理人):けーちゃん

スポンサーリンク

記事の内容について

null

こんにちはけーちゃんです。
説明するのって難しいですね。

「なんか言ってることおかしくない?」
たぶん、こんなご意見あると思います。

裏付けを取りながら記事を作成していますが、僕の勘違いだったり、そもそも情報源の内容が間違えていたりで、正確でないことが多いと思います。
そんなときは、ご意見もらえたら嬉しいです。

掲載コードについては事前に動作確認をしていますが、貼り付け後に体裁を整えるなどをした結果動作しないものになっていることがあります。
生暖かい視線でスルーするか、ご指摘ください。

ご意見、ご指摘はこちら。
https://note.affi-sapo-sv.com/info.php

 

このサイトは、リンクフリーです。大歓迎です。