プロットの色分けを変更する【Excel】

エクセルのグラフはデフォルトでエクセルのテーマの色合いになっており、淡い色合いのプロットになっていると思います。このような色合いは論文などのきちんとしたグラフで使われることはありませんし、何よりエクセルで作ったというのが丸分かりでダサいです。

本記事ではエクセルで作成したグラフのプロットの色を変更する方法について解説します。

スポンサーリンク

ページレイアウトから変更する

マクロを使えばいいじゃんと思うかもしれませんが、後述するように、マクロで色合いを変更するのは色々面倒なところがあります。私は一番簡単なのはページレイアウトの配色を設定することだと思います。

リボンからページレイアウトを選び、配色を選択してください。色のカスタマイズを選択すると下図のようなダイアログが出ます。

この配色のアクセント1ー6がグラフのプロットで使われる色になります。ここに自分で使いたい色のセットを設定しておけば、その配色を選ぶだけで変更できます。ただし、すべてのグラフやその他配色を用いる図形などの色も変わってしまうことには注意です。

Officeのテーマの色合い
ユーザー定義の色合い
スポンサーリンク

マクロを使う方法

マクロを使えば色の設定など簡単にできそうですが、プロットの数が不明な場合、あまりすっきりとしたコードになりません。面倒くさい場合には上記のページレイアウトの配色の変更でいいんじゃないかと思いました。

いつも使うプロット数が同じ場合

いつも同じ測定データを表示させるだけで、表示させるデーター数も決まっているという場合には簡単です。変更したいグラフを選択した状態で、以下のようなマクロを実行すればいいでしょう。

Sub Color1() 
With ActiveChart
  .SeriesCollection(1).Format.Line.ForeColor.RGB =  RGB(0, 0, 0)
  .SeriesCollection(2).Format.Line.ForeColor.RGB =  RGB(255, 0, 0)
  .SeriesCollection(3).Format.Line.ForeColor.RGB =  RGB(0, 0, 255)
End Sub

SeriesCollection(i)というのが各プロットで、この例では3つのプロット線に対してそれぞれ黒、赤、青色の色を設定しています。プロットの数が多い場合にはSeriesCollectionに4以上の数字を入れ、好きな色をRGBで設定すればいいでしょう。

ちなみにこの例では線の色の変更していますが、マーカーの場合には
マーカーの背景:SeriesCollection(i).MarkerBackgroundColor =
マーカーの枠線:SeriesCollection(i).MarkerForegroundColor =
のように変更してください。

プロットの数が不明な一般の場合

プロットの数がいくつであっても使えるようなマクロを考えると結構煩雑であることに気が付くかと思います。プロットの数自体はSeriesCollection.Countで取得できるので、これを利用してFor文などで作れそうですが、色の方をどう設定するのか悩みました。

下記のようなコードを考えました。もっとよいコードもあるかもしれませんが、悪くないかなと思います。

Sub Color2()
Dim Colors(5) As Variant
Dim i As Integer

Colors(1) = RGB(0, 0, 0) ’黒
Colors(2) = RGB(255, 0, 0) ’赤
Colors(3) = RGB(0, 0, 255) ’青
Colors(4) = RGB(0, 255, 0) ’緑
Colors(5) = RGB(255, 128, 0) ’橙



If ActiveChart Is Nothing Then

Else
 For i = 1 To ActiveChart.SeriesCollection.Count
 
’プロットが色数超えない時のみ色変更
 If ActiveChart.SeriesCollection.Count < 6 Then 
    With ActiveChart
    .SeriesCollection(i).Format.Line.ForeColor.RGB = Colors(i)

    End With
    End If
    Next
End If

コードの流れとしては

  • 色の情報はColorsという配列に入れる
  • プロット数を取得してFor文で色変更
  • ただし色数よりも多い場合には実行しない

という感じです。色を配列とすることで、For文で使えるようにしています。

このマクロではプロットは5つまででは色分けするようにしています。もっと多くのプロットまで対応したい場合にはColors()の中身を増やせば対応できますが、あまり多くの色分けをしようとすると変な色合いになりがちなので、少な目で制限を入れておいた方がよいかなと思います。

また、マクロのエラーを防ぐため、選択されているグラフが存在しない場合には動作しないようにしています。

If ActiveChart Is Nothing Then

Else

この部分で、ActiveChartがない、つまりグラフが選択されていない場合には何も操作をせず、Elseの部分(つまりActiveChartが存在している場合)に色分けの操作をしています。

まとめ

今回はエクセルでグラフを作る場合に意外と面倒くさい色の変更について解説しました。意外とマクロで変更するのが煩雑なので、ページレイアウト機能を使うのも一手だと思います。

コメント

タイトルとURLをコピーしました