ExcelVBAを使用して、グラフシートの最後のデータに系列名のみ追加する方法です。
2つの例
- 既にあるデータ系列の最後のデータに系列名表示
 - 新しいデータ系列を追加後に最後のデータに系列名表示
 
シートは2つ
- ワークシート[グラフ]
 - グラフシート[データ]
 
参考
- Sheets:すべてのシート、グラフシート等も含む
 - Worksheets:ワークシート
 - Charts:グラフシート
 
目次
グラフ・一般機能の画面
データラベルの書式設定の「ラベルオプション」で「系列名」にチェックを入れた画面です。

上の図は全てのデータに系列名が表示されています。
既にあるデータ系列の最後のデータに系列名表示
シンプルなグラフでの説明です。
データとグラフの例
グラフのデータは1月~12月の平均気温データです。

12の平均気温データをもとにしたグラフシートです。

マクロ実行後の画面です。12月に系列名の「東京」が表示されます。

拡大した画面です。

サンプルコード
グラフシートをアクティブにしてマクロを実行する例です。
Sub sample1()
ActiveChart.SeriesCollection(1).Points(12).ApplyDataLabels _
                ShowSeriesName:=True, _
                ShowValue:=False
End Sub
説明
- SeriesCollection(1):グラフの系列は1つのみなので(1)です。
 - Points(12):1月~12月までのデータなので、最後のデータは12です。
 - ShowSeriesName:系列名を有効にします。既定値はFalseです。
 - ShowValue:値を無効にします。既定値はTrue(有効)です。有効にすると2020年12月の平均気温「7.7」を表示します。
 
上記以外に設定できる項目の一部です。すべて省略可能です。
- LegendKey:凡例マーカー表示
 - AutoText:文字列の自動表示
 - ShowCategoryName:カテゴリー名
 - ShowPercentage:%表示
 - Separator:データラベルの区切指定
 
新しいデータ系列を追加後に最後のデータに系列名表示
追加するデータはC列です。
新しいデータ(大阪の平均気温)を追加し、そのデータの最後に系列名を表示する例です。

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

サンプルコード
ワークシート[データ]をアクティブにしてマクロを実行する例です。
Sub sample2()
    Dim sc As Series    
    Set sc = Charts(1).SeriesCollection.NewSeries
        With sc
            .Name = Range("C3")
            .Values = Range("C4:C15")
            .XValues = Range("A4:A15")
            .DataLabels.ShowValue = False
         End With
         sc.Points(12).ApplyDataLabels _
                ShowSeriesName:=True, _
                ShowValue:=False
End Sub
説明
- 3行目:新しい系列を追加します。
 - 4~9行目:追加した系列に対しての処理です。
 - 5行目:Name/系列名
 - 6行目:Values/軸ラベル
 - 7行目:XValues/系列値
 - 8行目:追加した系列のデータラベルを非表示にします。
 - 10~12行目:最後の値に系列名追加します。
 


サンプルコード・アクティブにするシートを限定しない
どのシートをアクティブにしていても実行可能な例です。
Sub sample3()
    Dim ch As Chart
    Set ch = Charts("グラフ")
    Dim ws As Worksheet
    Set ws = Worksheets("データ")
    Dim sc As Series
    
    Set sc = ch.SeriesCollection.NewSeries
        With sc
            .Name = ws.Range("C3")
            .Values = ws.Range("C4:C15")
            .XValues = ws.Range("A4:A15")
            .DataLabels.ShowValue = False
         End With
         sc.Points(12).ApplyDataLabels _
                ShowSeriesName:=True, _
                ShowValue:=False
End Sub
		