系列の色を設定する


テーマの色を設定する

Excel 2007で、系列の色を設定するには、次のようにします。最初は、テーマの色を設定してみましょう。

Sub Sample()
    ActiveSheet.ChartObjects(1).Chart. _
        SeriesCollection(1).Format.Fill. _
            ForeColor.ObjectThemeColor = msoThemeColorAccent6
End Sub

ここで指定したテーマの色は、下図の一番右にあるオレンジです。

色に関する詳しい解説は、目次ページの[色について]をご覧ください。

上記の

Sub Sample()
    ActiveSheet.ChartObjects(1).Chart. _
        SeriesCollection(1).Format.Fill. _
            ForeColor.ObjectThemeColor = msoThemeColorAccent6
End Sub

は、実際には1行です。一応書いておきますが・・・

グラフ(Chartオブジェクト)の、SeriesCollectionメソッドは、Seriesオブジェクトを返します。

Seriesオブジェクトの、Formatプロパティは、ChartFormatオブジェクトを返します。

ChartFormatオブジェクトの、Fillプロパティは、FillFormatオブジェクトを返します。

FillFormatオブジェクトの、ForeColorプロパティは、ColorFormatオブジェクトを返します。

ColorFormatオブジェクトの、ObjectThemeColorプロパティは、テーマの色を設定するプロパティです。

ObjectThemeColorプロパティには、次の定数を指定できます。

定数 意味
msoNotThemeColor 0 テーマの色を指定しません
msoThemeColorAccent1 5 アクセント1
msoThemeColorAccent2 6 アクセント2
msoThemeColorAccent3 7 アクセント3
msoThemeColorAccent4 8 アクセント4
msoThemeColorAccent5 9 アクセント5
msoThemeColorAccent6 10 アクセント6
msoThemeColorBackground1 14 背景1
msoThemeColorBackground2 16 背景2
msoThemeColorDark1 1 濃色1
msoThemeColorDark2 3 濃色2
msoThemeColorFollowedHyperlink 12 クリックされたハイパーリンク
msoThemeColorHyperlink 11 ハイパーリンク
msoThemeColorLight1 2 淡色1
msoThemeColorLight2 4 淡色2
msoThemeColorText1 13 テキスト1
msoThemeColorText2 15 テキスト2

色番号を設定する

Excel 2003までで使い慣れたSchemeColorを使うこともできます。

Sub Sample()
    ActiveSheet.ChartObjects(1).Chart. _
        SeriesCollection(1).Format.Fill. _
            ForeColor.SchemeColor = 8
End Sub

RGBで色を設定する

RGB関数を使って、色をRGB値で指定することも可能です。

Sub Sample15()
    ActiveSheet.ChartObjects(1).Chart. _
        SeriesCollection(1).Format.Fill. _
            ForeColor.RGB = RGB(128, 54, 205)
End Sub

Excel 2003のコードは動くか

Excel 2003で系列の色を変更すると、次のようなコードが記録されます。

Sub Macro()
    ActiveSheet.ChartObjects(1).Activate
    ActiveChart.SeriesCollection(1).Select
    With Selection.Interior
        .ColorIndex = 3
        .Pattern = xlSolid
    End With
End Sub

グラフ名のところは、インデックス値に変更しました。このコードは、Excel 2007でも問題なく動作します。

もっとも、マクロ記録したコードをそのまま使うような人はいないでしょうから、普通は次のようにして系列の色を変更していたと思います。

Sub Macro()
    With ActiveSheet.ChartObjects(1).Chart
        .SeriesCollection(1).Interior.ColorIndex = 3
    End With
End Sub

もちろん、このコードもExcel 2007で問題なく動作します。