VBAでグラフを表示する
EXCELでグラフを表示して見ましょう。
F3:J6にグラフのデータソースがあるとして、A1:D10にグラフを表示します。
以下は、そのサンプルです。
サンプル
Range("F3").Value = "行列タイトル"
Range("F4").Value = "行タイトル1"
Range("F5").Value = "行タイトル2"
Range("F6").Value = "行タイトル3"
Range("G3").Value = "列タイトル1"
Range("G4").Value = 2
Range("G5").Value = 3
Range("G6").Value = 4
Range("H3").Value = "列タイトル2"
Range("H4").Value = 2
Range("H5").Value = 3
Range("H6").Value = 4
Range("I3").Value = "列タイトル3"
Range("I4").Value = 2
Range("I5").Value = 3
Range("I6").Value = 4
Range("J3").Value = "列タイトル4"
Range("J4").Value = 2
Range("J5").Value = 3
Range("J6").Value = 4
'グラフの表示位置を確定する。
Dim ranPosi As Range
Set ranPosi = Range("A1:D10") '*1
'グラフの表示する。
With ActiveSheet.ChartObjects.Add(Left:=ranPosi.Left, Top:=ranPosi.Top, _
Width:=ranPosi.Width, Height:=ranPosi.Height) '*2
.Chart.ChartType = xlColumnStacked '*3
.Chart.SetSourceData Source:=ActiveSheet.Range("F3:J6"), PlotBy:=xlRows ' *4
.Chart.Location where:=xlLocationAsObject, Name:="Sheet1" '*5
.Name = "グラフ01" '*6
End With
'表示したグラフの縦方向の軸名を設定する。
ActiveSheet.ChartObjects("グラフ01").Activate '*7
ActiveChart.ChartArea.Select '*8
With ActiveChart
.Axes(xlValue, xlPrimary).HasTitle = True '*9
.Axes(xlValue, xlPrimary).AxisTitle.Characters.Text = "台数" '*10
End With
説明
- *1、Rangeでグラフの表示位置を確定する。
- *2、Addメソッドでグラフの追加する。引数は以下の通り。
- Left:埋め込みグラフの左端位置の指定 [省略不可]
- Top:埋め込みグラフの上端位置の指定 [省略不可]
- Width:埋め込みグラフの幅の指定 [省略不可]
- Height:埋め込みグラフの高さの指定 [省略不可]
- *3、ChartTypeプロパティでグラフの種類(xlColumnStackedは、積み上げ縦棒)を設定する。
- *4、SetSourceDataメソッドでデータソース範囲を設定する。
- Source:グラフのデータソースがあるRange
- PlotBy:データ系列の方向を指定(xlRowsは、行方向)
- *5、Locationメソッドでグラフの場所を設定する。引数は以下の通り。
- where:オブジェクトor新しいシート(xlLocationAsObjectは、オブジェクト)
- Name:引数WhereがxlLocationAsObjectの場合、グラフを貼り付けるシート名。
- *6、Nameプロパティは、グラフのオブジェクト名を設定する。
- *7、グラフのオブジェクトをアクティブ
- *8、グラフのオブジェクトをセレクト
- *9、主軸数値軸(xlValue, xlPrimary)軸ラベル表示
- *10、主軸数値軸(xlValue, xlPrimary)軸ラベル文字列設定