Excel VBAでグラフを設定する:種類、位置、大きさ

今回は、「Excel VBAでグラフを作成する」の記事を踏まえたうえで、さらにグラフの作り方を紹介していきます。VBAでのグラフの作り方から知りたい方は、以下の記事をご覧ください。

グラフの種類を変える

グラフの種類は以下で定義できると前回述べました。

.ChartType = xlColumnClustered ’棒グラフ

このイコールの右側を色々と変えることで、さまざまなグラフを作ることができます。種類がたくさんあるので、主なものを以下に載せておきます。

定数 意味
xlLine  折れ線グラフ 
xlPie  円グラフ
xlXYScatter  散布図
xlBarClustered  横線グラフ
xlArea  面グラフ
xlRadar   レーダーチャート
 xl3DPie  3D円グラフ
xlColumnClustered

棒グラフ

xl3DPieのように「3D」と挟むことで3Dのグラフを作ることができます。それでは、今回も以下のデータを用いて例を示します。

A君、B君、Cさんのデータを平均と比べるレーダーチャートを作ります。

Sub Graph_sample()
    With ActiveSheet.Shapes.AddChart.Chart
        .ChartType = xlRadar
        .SetSourceData Source:=Sheets("Sheet1").Range("A2:D7,H2:H7")
    End With
End Sub

範囲が2か所以上にわかれている場合、「,」で追加することができます。

[実行結果]

グラフの位置と大きさを設定する

グラフの位置の設定は、以下の式で行えます。

ActiveSheet.ChartObjects.Top = 値.Top
ActiveSheet.ChartObjects.Left = 値.Left

上端かつ左端のセルを指定することで位置を設定することができます。続いてグラフの大きさは、Height、Widthを使って以下のように指定できます。

ActiveSheet.ChartObjects.Height = 値
ActiveSheet.ChartObjects.Width = 値

それでは、先程のデータのレーダーチャートの位置と大きさを指定します。

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からグラフを作ることができました。