グラフに新しい系列を追加する方法です。
目次
系列の追加例
グラフのもとになるデータに「名古屋」のデータを追加します。
赤枠のF列~G列です。
データのあるシート名は「2021」です。
マクロを実行すると系列が追加されます。
グラフで使用したデータ
- 気温:気象庁
出典:気象庁ホームページ(https://www.jma.go.jp/) - 救急搬送者数:総務省消防庁
出典:消防庁ホームページ(http://www.fdma.go.jp/)
グラフの選択の違いとサンプルコード
2つの方法です。
- ワークシート上のグラフ:グラフとグラフデータのあるワークシートを選択してマクロを実行する
- グラフシート:グラフデータのあるワークシートを選択してマクロを実行する
グラフについて
ワークシート上にあるグラフとグラフシートの違いです。
ワークシート上のグラフ
グラフのあるワークシート「2021」の(セルA1)を選択している状態です。グラフは「ChartObjects(1)」です。
この状態でグラフを選択する場合のコードです。
ActiveSheet.ChartObjects(1).Select
グラフシシート
グラフシートを選択している状態です。グラフシートは「Charts(1)」です。
Charts(1).Select
系列の追加
SeriesCollection.NewSeriesメソッドで新しいデータ系列を追加します。
SeriesCollection.NewSeries
サンプルコード
選択状態の違いによる3つの方法です。
ワークシート上にグラフがある(グラフオブジェクト)
系列を追加したいグラフがあるシート「2021」を選択した状態でマクロを実行する例です。
系列追加のデータはF列~G列の固定で、データの行数は変動する例です。
Sub sample1() Dim sc As Series Dim lastR As Long: lastR = Cells(Rows.Count, 6).End(xlUp).Row Set sc = ActiveSheet.ChartObjects(1).Chart.SeriesCollection.NewSeries With sc .Name = Range("F1") .XValues = Range(Cells(4, 6), Cells(lastR, 6)) .Values = Range(Cells(4, 7), Cells(lastR, 7)) End With End Sub
マクロ実行後の画面です。
グラフシート
系列を追加したいグラフシートのデータがあるワークシート「2021」を選択した状態でマクロを実行する例です。
系列追加のデータはF列~G列の固定で、データの行数は変動する例です。
Sub sample2() Dim sc As Series Dim lastR As Long: lastR = Cells(Rows.Count, 6).End(xlUp).Row Set sc = Charts(1).SeriesCollection.NewSeries With sc .Name = Range("F1") .XValues = Range(Cells(4, 6), Cells(lastR, 6)) .Values = Range(Cells(4, 7), Cells(lastR, 7)) End With End Sub
マクロ実行後の画面です。