今回は、「Excel VBAでグラフを作成する」の記事を踏まえたうえで、さらにグラフの作り方を紹介していきます。VBAでのグラフの作り方から知りたい方は、以下の記事をご覧ください。
グラフの種類を変える
グラフの種類は以下で定義できると前回述べました。
1 |
.ChartType = xlColumnClustered ’棒グラフ |
このイコールの右側を色々と変えることで、さまざまなグラフを作ることができます。種類がたくさんあるので、主なものを以下に載せておきます。
定数 | 意味 |
xlLine | 折れ線グラフ |
xlPie | 円グラフ |
xlXYScatter | 散布図 |
xlBarClustered | 横線グラフ |
xlArea | 面グラフ |
xlRadar | レーダーチャート |
xl3DPie | 3D円グラフ |
xlColumnClustered |
棒グラフ |
xl3DPieのように「3D」と挟むことで3Dのグラフを作ることができます。それでは、今回も以下のデータを用いて例を示します。
A君、B君、Cさんのデータを平均と比べるレーダーチャートを作ります。
1 2 3 4 5 6 |
Sub Graph_sample() With ActiveSheet.Shapes.AddChart.Chart .ChartType = xlRadar .SetSourceData Source:=Sheets("Sheet1").Range("A2:D7,H2:H7") End With End Sub |
範囲が2か所以上にわかれている場合、「,」で追加することができます。
[実行結果]
グラフの位置と大きさを設定する
グラフの位置の設定は、以下の式で行えます。
1 2 |
ActiveSheet.ChartObjects.Top = 値.Top ActiveSheet.ChartObjects.Left = 値.Left |
上端かつ左端のセルを指定することで位置を設定することができます。続いてグラフの大きさは、Height、Widthを使って以下のように指定できます。
1 2 |
ActiveSheet.ChartObjects.Height = 値 ActiveSheet.ChartObjects.Width = 値 |
それでは、先程のデータのレーダーチャートの位置と大きさを指定します。
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 |
Sub Graph_sample() With ActiveSheet.Shapes.AddChart.Chart .ChartType = xlRadar .SetSourceData Source:=Sheets("Sheet1").Range("A2:H7") Select Case .PlotBy Case xlRows .PlotBy = xlColumns Case xlColumns .PlotBy = xlRows '行と列をそれぞれ逆に設定 End Select End With With ActiveSheet.ChartObjects .Top = Range("B11").Top .Left = Range("B11").Left '位置を設定 .Height = 300 .Width = 400 '大きさを設定 End With End Sub |
[実行結果]
無事B11からグラフを作ることができました。