Sub TEST1()
'新しい系列追加
With ActiveSheet.ChartObjects(1).Chart.SeriesCollection.NewSeries
.Name = Range("E1") '系列名
.Values = Range("E2:E4") 'データ範囲
End With
End Sub
Sub TEST2()
'グラフを挿入
ActiveSheet.Shapes.AddChart2
ActiveSheet.ChartObjects(1).Chart.ChartType = xlColumnClustered '集合縦棒'「X軸のデータ」と「1つ目の系列」を追加
With ActiveSheet.ChartObjects(1).Chart.SeriesCollection.NewSeries
.XValues = Range("A2:A4") 'X軸のデータ
.Name = Range("B1") '系列名
.Values = Range("B2:B4") 'データ範囲
End With
'「2つ目の系列」を追加
With ActiveSheet.ChartObjects(1).Chart.SeriesCollection.NewSeries
.Name = Range("C1") '系列名
.Values = Range("C2:C4") 'データ範囲
End With
'「3つ目の系列」を追加
With ActiveSheet.ChartObjects(1).Chart.SeriesCollection.NewSeries
.Name = Range("D1") '系列名
.Values = Range("D2:D4") 'データ範囲
End With
'「4つ目の系列」を追加
With ActiveSheet.ChartObjects(1).Chart.SeriesCollection.NewSeries
.Name = Range("E1") '系列名
.Values = Range("E2:E4") 'データ範囲
End With
'凡例を追加
ActiveSheet.ChartObjects(1).Chart.HasLegend = True
ActiveSheet.ChartObjects(1).Chart.Legend.Position = xlBottom '下に表示
End Sub
元データを用意しておきます。
元データ
では、VBAコードを実行してみます。
初期状態から系列を追加して作成
初期状態から系列を追加して作成できました。
一つずつVBAコードを実行して、流れをみてみます。
グラフを挿入してグラフ種類を設定
最初は、グラフを挿入してグラフ種類を設定します。
Sub TEST3()
'グラフを挿入
ActiveSheet.Shapes.AddChart2
ActiveSheet.ChartObjects(1).Chart.ChartType = xlColumnClustered '集合縦棒
End Sub
VBAコードを実行します。
グラフを挿入してグラフ種類を設定
グラフを挿入してグラフ種類を設定できました。
「X軸」と「1つ目の系列」を追加
次は、「X軸」と「1つ目の系列」を追加します。
Sub TEST4()
'「X軸のデータ」と「1つ目の系列」を追加
With ActiveSheet.ChartObjects(1).Chart.SeriesCollection.NewSeries
.XValues = Range("A2:A4") 'X軸のデータ
.Values = Range("B2:B4") 'データ範囲
.Name = Range("B1") '系列名
End With
End Sub
VBAコードを実行します。
「X軸」と「1つ目の系列」を追加
「X軸」と「1つ目の系列」を追加できました。
「2つ目の系列」を追加
「2つ目の系列」を追加します。
Sub TEST5()
'「2つ目の系列」を追加
With ActiveSheet.ChartObjects(1).Chart.SeriesCollection.NewSeries
.Values = Range("C2:C4") 'データ範囲
.Name = Range("C1") '系列名
End With
End Sub
VBAコードを実行します。
「2つ目の系列」を追加
「2つ目の系列」を追加できました。
「3つ目の系列」を追加
「3つ目の系列」を追加します。
Sub TEST6()
'「3つ目の系列」を追加
With ActiveSheet.ChartObjects(1).Chart.SeriesCollection.NewSeries
.Values = Range("D2:D4") 'データ範囲
.Name = Range("D1") '系列名
End With
End Sub
VBAコードを実行します。
「3つ目の系列」を追加
「3つ目の系列」を追加できました。
「4つ目の系列」を追加
「4つ目の系列」を追加します。
Sub TEST7()
'「4つ目の系列」を追加
With ActiveSheet.ChartObjects(1).Chart.SeriesCollection.NewSeries
.Values = Range("E2:E4") 'データ範囲
.Name = Range("E1") '系列名
End With
End Sub
VBAコードを実行します。
「4つ目の系列」を追加
「4つ目の系列」を追加できました。
「凡例」を表示
「凡例」を表示します。
Sub TEST8()
'凡例を追加
ActiveSheet.ChartObjects(1).Chart.HasLegend = True
ActiveSheet.ChartObjects(1).Chart.Legend.Position = xlBottom '下に表示
End Sub
Sub TEST9()
'参照範囲を設定する
ActiveSheet.ChartObjects(1).Chart.SetSourceData Range("A1").CurrentRegion
'「横方向のデータ」を「系列」にする
ActiveSheet.ChartObjects(1).Chart.PlotBy = xlColumns
End Sub