Excel VBA グラフの作成

スポンサーリンク
スポンサーリンク

グラフを作成する方法

Excelで作成できるグラフは、グラフシートに作成するグラフと
ワークシート上に作成する埋め込みグラフの2種類あります。

グラフシートのグラフは、ブック内のグラフシートの集まりである
Charts【チャーツ】コレクションのメンバーであり
Chart【チャート】オブジェクトとして扱われます。

埋め込みグラフは、すべての埋め込みグラフの集まりである
ChartObjects【チャートオブジェクツ】コレクションのメンバーであり
ChartObject【チャートオブジェクト】オブジェクトとして扱われます。

Charts.Add【チャーツアド】メソッド

ブック内にグラフシートを追加するには
Charts【チャーツ】コレクションの
Add【アド】メソッドを使用します。
新しくグラフシートを追加し
Chart【チャート】オブジェクトを返します。

Charts.Add【チャーツアド】メソッドの書式

[]内は省略可能です。
オブジェクト.Add( [Before, After, Count] )


設定項目の説明

  • オブジェクト(必須)
    Charts【チャーツ】コレクションを指定します。
  • Before【ビフォア】(省略可)
    指定したシートの前にシートを追加します。
  • After【アフター】(省略可)
    指定したシートの後にシートを追加します。
  • Count【カウント】(省略可)
    追加するグラフシートの数を指定します。
    省略した場合は1シートになります。

※引数Beforeと引数Afterは同時に指定できません。
省略した場合は、アクティブシートの前に挿入されます。
追加するグラフシートの他にシートが1枚しかない場合は
引数Afterを指定しても手前の追加されます。


Charts【チャーツ】プロパティ

作成済みグラフシートの
Chart【チャート】オブジェクトを取得するには
Charts【チャーツ】プロパティを使用します。

Charts【チャーツ】プロパティの書式

Charts( Index )


設定値

  • Index【インデックス】(必須)
    グラフシートを左から数えたインデックス番号、または
    グラフシートのシート名を指定します。

※1つのグラフシートであるChart【チャート】オブジェクトは
ブック内のすべてのシートの集まりである
Sheetsコレクションのメンバーでもあります。
そのため「 Sheets( Index ) 」でも
Chartオブジェクトを参照することができます。


SetSourceData【セットソースデータ】メソッド

グラフのデータ範囲を指定するには
Chart【チャート】オブジェクトの
SetSourceData【セットソースデータ】メソッドを使用します。

SetSourceData【セットソースデータ】メソッドの書式

[]内は省略可能です。
オブジェクト.SetSourceData( Source[, PlotBy ])


設定値(引数)の説明

  • オブジェクト(必須)
    Chart【チャート】オブジェクトを指定します。
  • Source【ソース】(必須)
    グラフのデータの元となるセル範囲を指定します。
  • PlotBy【プロットバイ】(省略可)
    グラフに表示するデータの系列をxlRowCol列挙型の定数で指定します。
    省略した場合は、データ範囲の項目の行数が項目の列数より多い場合は
    列方向となり、同数または、少ない場合は、行方向となります。

    xlRowCol列挙型の定数
    定数内容
    xlColumns列方向
    xlRows行方向

グラフシートを追加してグラフを作成するコード例

Sub シートグラフ()
 With Charts.Add(After:=Sheets("売上"))
.Name = "売上グラフ"
.SetSourceData Sheets("売上").Range("A1:E5")
End With
End Sub

実行前

実行結果


ChartObjects.Add【チャートオブジェクツアド】メソッド

ワークシートに埋め込みグラフを作成するには
ChartObjects【チャートオブジェクツ】コレクションの
Add【アド】メソッドを使用します。
新しい埋め込みグラフを作成して
ChartObject【チャートオブジェクト】オブジェクトを返します。
ChartObject【チャートオブジェクト】オブジェクトは
グラフエリアを表し、グラフの大きさや外観を操作します。
グラフ自体を操作するには
ChartObjectオブジェクトのChart【チャート】プロパティを使用して
Chartオブジェクトを取得して操作します。

ChartObjects.Add【チャートオブジェクツアド】メソッドの書式

オブジェクト.Add( Left, Top, Width, Height )


  • オブジェクト(必須)
    ChartObjects【チャートオブジェクツ】コレクションを指定します。
  • Left【レフト】(必須)
    埋め込みグラフの左端位置をポイント単位で指定します。
  • Top【トップ】(必須)
    埋め込みグラフの上端位置をポイント単位で指定します。
  • Width【ワイズ】(必須)
    埋め込みグラフの幅をポイント単位で指定します。
  • Height【ハイト】(必須)
    埋め込みグラフの高さをポイント単位で指定します。

作成した埋め込みグラフは、図形オブジェクトでもあるため
ShapeオブジェクトやShapeRangeコレクションとして取得できます。
埋め込みグラフの位置や大きさはShape【シェイプ】オブジェクトの位置やサイズを
変更するのと同じ要領で変更します。


埋め込みグラフを作成するコード例

Sub 埋め込みグラフ()
Dim R As Range
Set R = Range("A7:E14")
With Sheets("売上").ChartObjects.Add(R.Left, R.Top, R.Width, R.Height)
.Name = "売上グラフ"
.Chart.SetSourceData Range("A1:E5")
End With
End Sub

実行結果


AddChart【アドチャート】メソッド

Excel2007以降は
Shapes【シェイプス】コレクション
AddChart【アドチャート】メソッドでも
埋め込みグラフが作成できます。

AddChart【アドチャート】メソッドの書式

[]内は省略可能です。
オブジェクト.AddChart( [type, Left, Top, Width, Height] )


設定値(引数)の説明

  • オブジェクト(必須)
    Shapes【シェイプス】コレクションを指定します。
  • type【タイプ】(省略可)
    XlChartTypeの列挙型の定数でグラフの種類を選択します。
    省略した場合は既定の縦棒グラフになります。

XlChartTypeの列挙型の定数一覧表

定数説明
xlXYScatter-4169散布図
xlRadar-4151レーダー
xlDoughnut-4120ドーナツ
xl3DPie-41023-D 円
xl3DLine-41013-D 折れ線
xl3DColumn-41003-D 縦棒
xl3DArea-40983-D 面
xlArea1分野
xlLine4折れ線
xlPie5
xlBubble15バブル
xlColumnClustered51集合縦棒
xlColumnStacked52積み上げ縦棒
xlColumnStacked10053100% 積み上げ縦棒
xl3DColumnClustered543-D 集合縦棒
xl3DColumnStacked553-D 積み上げ縦棒
xl3DColumnStacked100563-D 100% 積み上げ縦棒
xlBarClustered57集合横棒
xlBarStacked58積み上げ横棒
xlBarStacked10059100% 積み上げ横棒
xl3DBarClustered603-D 集合横棒
xl3DBarStacked613-D 積み上げ横棒
xl3DBarStacked100623-D 100% 積み上げ横棒
xlLineStacked63積み上げ折れ線
xlLineStacked10064100% 積み上げ折れ線
xlLineMarkers65マーカー付き折れ線
xlLineMarkersStacked66マーカー付き積み上げ折れ線
xlLineMarkersStacked10067マーカー付き 100% 積み上げ折れ線
xlPieOfPie68補助円グラフ付き円
xlPieExploded69分割円
xl3DPieExploded70分割 3-D 円
xlBarOfPie71補助縦棒グラフ付き円
xlXYScatterSmooth72平滑線付き散布図
xlXYScatterSmoothNoMarkers73平滑線付き散布図 (データ マーカーなし)
xlXYScatterLines74折れ線付き散布図
xlXYScatterLinesNoMarkers75折れ線付き散布図 (データ マーカーなし)
xlAreaStacked76積み上げ面
xlAreaStacked10077100% 積み上げ面
xl3DAreaStacked783-D 積み上げ面
xl3DAreaStacked10079100% 積み上げ面
xlDoughnutExploded80分割ドーナツ
xlRadarMarkers81データ マーカー付きレーダー
xlRadarFilled82塗りつぶしレーダー
xlSurface833-D 表面
xlSurfaceWireframe843-D 表面 (ワイヤーフレーム)
xlSurfaceTopView85表面 (トップ ビュー)
xlSurfaceTopViewWireframe86表面 (トップ ビュー – ワイヤーフレーム)
xlBubble3DEffect873-D 効果付きバブル
xlStockHLC88高値 – 安値 – 終値
xlStockOHLC89始値 – 高値 – 安値 – 終値
xlStockVHLC90出来高 – 高値 – 安値 – 終値
xlStockVOHLC91出来高 – 始値 – 高値 – 安値 – 終値
xlCylinderColClustered92集合円錐型縦棒
xlCylinderColStacked93積み上げ円錐型縦棒
xlCylinderColStacked10094100% 積み上げ円柱型縦棒
xlCylinderBarClustered95集合円柱型横棒
xlCylinderBarStacked96積み上げ円柱型横棒
xlCylinderBarStacked10097100% 積み上げ円柱型横棒
xlCylinderCol983-D 円柱型縦棒
xlConeColClustered99集合円錐型縦棒
xlConeColStacked100積み上げ円錐型縦棒
xlConeColStacked100101100% 積み上げ円錐型縦棒
xlConeBarClustered102集合円錐型横棒
xlConeBarStacked103積み上げ円錐型横棒
xlConeBarStacked100104100% 積み上げ円錐型横棒
xlConeCol1053-D 円錐型縦棒
xlPyramidColClustered106集合ピラミッド型縦棒
xlPyramidColStacked107積み上げピラミッド型縦棒
xlPyramidColStacked100108100% 積み上げピラミッド型横棒
xlPyramidBarClustered109集合ピラミッド型横棒
xlPyramidBarStacked110積み上げピラミッド型横棒
xlPyramidBarStacked100111100% 積み上げピラミッド型横棒
xlPyramidCol1123-D ピラミッド型縦棒
  • Left【レフト】(省略可)
    埋め込みグラフの左端位置をポイント単位で指定します。
  • Top【トップ】(省略可)
    埋め込みグラフの上端位置をポイント単位で指定します。
  • Width【ワイズ】(省略可)
    埋め込みグラフの幅をポイント単位で指定します。
  • Height【ハイト】(省略可)
    埋め込みグラフの高さをポイント単位で指定します。

作成した埋め込みグラフは、図形オブジェクトでもあるため
ShapeオブジェクトやShapeRangeコレクションとして取得できます。
埋め込みグラフの位置や大きさはShape【シェイプ】オブジェクトの位置やサイズを
変更するのと同じ要領で変更します。
すべての引数を省略した場合は、既定の位置に既定の大きさで作成されます。

3Dタイプの埋め込みグラフを作成するコード例

Sub 埋め込みグラフ2()
Dim R As Range
Set R = Range("A7:E14")
With Sheets("売上").Shapes.AddChart(xl3DColumn, R.Left, R.Top, R.Width, R.Height)
.Name = "売上グラフ"
.Chart.SetSourceData Range("A1:E5")
End With
End Sub

実行結果


埋め込みグラフのサイズや位置を変更する方法

埋め込みグラフは図形オブジェクトでもあるため
図形オブジェクトとしてサイズや位置の変更ができます。
例えば、上記の例の場合、「ActiveSheet.Shapes(“売上グラフ”)」
で、埋め込みグラフのShapeオブジェクトを取得すると
図形として、ShapeオブジェクトやShapeRangeコレクションの
Increment【インクリメント】、Scale【スケール】メソッド
使用できます。


以上で
グラフの作成方法についての解説を終了します。
ありがとうございました。

スポンサーリンク
スポンサーリンク

フォローする

スポンサーリンク
スポンサーリンク