機能と数式 | VBA | セミナー | オンラインソフト | お問い合わせ | その他
Top > Excel > VBA > Excel 2007以降のグラフ

系列の色を設定する



テーマの色を設定する


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で問題なく動作します。



このエントリーをはてなブックマークに追加