系列名や項目名を変更する


こんなこともできるんだよ

上図のグラフでは

  • 系列名:セル範囲A2:A4 → 田中,鈴木,山田
  • 項目名:セル範囲B1:D1 → 4月,5月,6月

となっています。これらを、任意の文字列に変更してみましょう。

Sub Sample()
    With ActiveSheet.ChartObjects(1).Chart
        .SeriesCollection(1).XValues = "={""A"",""B"",""C""}"
        .SeriesCollection(1).Name = "=""部長"""
        .SeriesCollection(2).Name = "=""課長"""
        .SeriesCollection(3).Name = "=""係長"""
    End With
End Sub

「""」とか「""""」とか、ダブルコーテーションの意味が分からない方は、次のページをご覧ください。

ダブルコーテーションの表示

Excel 2003のコードは動くか

同じ操作をExcel 2003でマクロ記録すると、次のようなコードが生成されます。

Sub Macro()
    ActiveSheet.ChartObjects(1).Activate
    ActiveChart.ChartArea.Select
    ActiveChart.SeriesCollection(1).XValues = "={""A"",""B"",""C""}"
    ActiveChart.SeriesCollection(1).Name = "=""部長"""
    ActiveChart.SeriesCollection(2).XValues = "={""A"",""B"",""C""}"
    ActiveChart.SeriesCollection(2).Name = "=""課長"""
    ActiveChart.SeriesCollection(3).XValues = "={""A"",""B"",""C""}"
    ActiveChart.SeriesCollection(3).Name = "=""係長"""
End Sub

ちょっと冗長なコードですが、互換性に問題はなさそうです。

【Excel 2007での実行結果】

Excel 2003のコードは、そのままExcel 2007でも動作します。