エクセルVBAでグラフに新しいデータ系列を追加する

グラフに新しい系列を追加する方法です。

参考:エクセルのグラフで系列の参照範囲を変更する

目次

系列の追加例

グラフのもとになるデータに「名古屋」のデータを追加します。

赤枠のF列~G列です。

ワークシート[2021]

データのあるシート名は「2021」です。

ワークシート[2021]

マクロを実行すると系列が追加されます。

追加後のグラフ

グラフで使用したデータ

グラフの選択の違いとサンプルコード

2つの方法です。

  1. ワークシート上のグラフ:グラフとグラフデータのあるワークシートを選択してマクロを実行する
  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

マクロ実行後の画面です。

グラフシート
目次