「エクセルグラフの線&マーカーの色を自動変更したい。」
この記事では、こんな悩みを解決します。
人が作ったグラフを自分の資料に差し込む際に
「なんでこんな配色してるんだ?」
なんてことはよくあるのではないでしょうか?
そんなとき、わざわざ一つ一つの線やマーカーの色を見やすいように調整するのは非常に面倒ですよね。
というわけで、この記事ではそんな作業を一瞬で終わらせることができるマクロをご紹介します。
事前にあるエクセルファイルにこのマクロを作成しておき、
①そのファイルに既存のグラフを張り付ける
②記事中のマクロを実行するだけ
という非常に簡単なものになっておりますので、ぜひ最後までご覧ください。
それでは早速やっていきます!
紹介するスキルの概要説明
冒頭に簡単に言葉でこの記事の内容をご説明しましたが、あなたのやりたいことと一致していなければ申し訳ないので、この記事で紹介する内容をもう少し詳しくご紹介しておきます。
この記事では、以下の画像のように、既存のグラフの線の色をあらかじめ指定した色に一括自動変更するマクロをご紹介していきます。
※画像上は二つグラフがありますが、一つのグラフ内で完結するマクロになっています。
あなたのやりたいことと一致していればぜひ続きをご覧ください。
事前準備:グラフを作成しておく
グラフの線の色を変更するマクロをご紹介していきますので、まずはグラフがないと始まりません。
まずはなんでも良いので適当な折れ線グラフor 散布図を準備しておきましょう。
今回は以下のような5本の線が記載されたマーカーつき折れ線グラフを例にご説明していきます。
グラフの準備ができたら、実際の作業に移っていきましょう。
※ここで準備するグラフは、このマクロが記述されたエクセルシート上で作成されている必要はありませんので、別のシートで作成させたグラフをコピーしてきても全く問題ありません。
VBAコードを記述する
いきなりですが、まずはVBAコードを記入します。
※VBAの使いかたがわからない人は以下の記事を参考にVBAを使える環境を整えておきましょう。
VBAコードを書ける環境が整った方は以下のコードをコピペで張り付けましょう。
◆グラフの線&マーカーの色を変更するVBAコード
Sub graph_line_color()
Dim num_line As Integer
Dim i As Integer
'色をリスト化
Dim color_list(5) As Variant
color_list(1) = RGB(255, 0, 0)
color_list(2) = RGB(0, 255, 0)
color_list(3) = RGB(0, 0, 255)
color_list(4) = RGB(255, 0, 255)
color_list(5) = RGB(0, 255, 255)
'データ数を数える
num_line = ActiveChart.SeriesCollection.Count
i = 1
'データ数に達するまでor色のリストの数だけ処理する
Do Until i > num_line Or i > UBound(color_list)
ActiveChart.FullSeriesCollection(i).Select
'色変更開始
Selection.Format.Line.ForeColor.RGB = color_list(i)
Selection.Format.Fill.ForeColor.RGB = color_list(i)
i = i + 1
Loop
End Sub
※今回設定した色は適当にRGB値を255に設定しただけですので、ここはあなたが変更したい色になるように適宜調整してください。
RGBって何?ってゆう方は以下から概要をご確認ください。
実行ボタンを作成する
マクロの記述が終わったら次は先ほど記述したマクロを実行するボタンを作成しておきましょう。
※ここは必須ではありませんが、つくっておいた方が便利です。
マクロ実行ボタンの作り方がわからない方は以下の記事をご確認ください。
【エクセル】マクロ実行ボタンの作成手順!画像つきで詳細解説!
私の場合は以下のようなボタンを作成しておきました。
マクロの実行方法
ボタン作成が完了したら、いよいよマクロを実行してみましょう。
マクロの実行方法としては、
①まずは色を変更したいグラフを選択します。
このとき、グラフの周囲に白い〇が8つ表示されていることをご確認ください。
あとはこの状態で先ほど作成したマクロの実行ボタンを押すだけです。
それでは、
いざ実行!!!
以下がこのマクロを実行したときの結果です。
しっかりと、線とマーカーの色が変化していることがわかります。
なお、 今回は5本の線しかないグラフをベースにマクロを記述したため、5本以上の線があるグラフに適用しても、5本目までしか色は変更されません。
もし6本以上の線があるグラフにこのマクロを適用したい場合は、以下の部分を線の数に応じて増やしていく必要があります。
Dim color_list(*) As Variant
color_list(*) = RGB(*, *, *)
今回ご紹介したマクロはこの色リストがいくらであっても、動くように作っておりますので、事前に10個くらい色のリストを作っておいても良いかもしれませんね。
※色のリストが線の本数より少ない場合は、リストの個数分の線だけにしか、処理が実行されません。
おわりに
というわけで今回は既存の折れ線グラフの線&マーカーの色を一括変更するマクロをご紹介しました。
一度このマクロを作っておくだけで、今後直面する面倒な作業を効率化できると思いますので、ぜひ時間をとって作成しておきましょう。
このように私のブログではエクセルスキルはもちろん、様々なプログラミングスキルを紹介しています。
・日々の残業時間を減らしたい。
・業務をもっと効率的にこなしたい。
・もっと勉強する時間を作りたい。
こんな思いを持っている人は、ぜひ他の記事も見てみてくださいね。
この記事が役に立ったという方は、ぜひ応援よろしくお願いします。
↓ 応援ボタン
それではまた!
コメント