どうも!そこらへんの社会人です!
エクセル業務をしているとグラフを作成する機会が増えてくるのではないでしょうか?
私は、社会人6年目になりますが、毎日仕事でエクセルを使っています。
そんな私が仕事中に面倒だなっと思ったことを最近勉強中にExcel マクロで実行していきたいと思います!
今回は、エクセルグラフを特定の条件でグラフの色を変更するマクロを作成してみました!
今回の記事を読むと下記の動画のようなことがマクロでできるようになります!
この記事は下記記事の続きになります!

前回の記事の復習(If,else文を使ってグラフの色を変更する)
前回の記事ではグラフの色が「東京」なら「青」、「神奈川」なら「赤」になるようにしてみました。
実際にマクロを実行してみたものが下記の動画になります。
マクロのコードが下記になります。
Sub マクロを短く()
ActiveChart.SeriesCollection(1).Points(1).Select
活動中の系列(1)のポイント(1)を選択する
With Selection.Format.Fill
選択された書式を
.Visible = msoTrue
塗りつぶす
.Transparency = 0
透過度は「0」
If “東京” = Range(“C3”).Value Then
もし「C3」=「東京」なら
.ForeColor.RGB = RGB(0, 0, 255)
青色
Else
そうでなければ
.ForeColor.RGB = RGB(255, 0, 0)
赤色
End If
End With
End Sub
複数のグラフの色を条件ごとに変更してみた

例
左記のように東京と神奈川の移動費を棒グラフにしてみました。
今回は、
東京⇒青
神奈川⇒赤
に自動で変化するマクロを作成してみました。
実際のマクロがこちらになります。
Sub マクロ()
Dim i
定数iを定義
Dim cnt
定数 cntを定義
cnt = 3
cnt = 3を代入
For i = 1 To Cells(5, Columns.Count).End(xlToLeft).Columns
iを1~セル5行目のセル10000列から「Ctrl + ←」した列まで繰り返す
※セル10000列は簡易的なたとえです・・・
ActiveChart.SeriesCollection(1).Points(i).Select
活動中の系列(1)のポイント(i)を選択する
With Selection.Format.Fill
選択された書式を
.Visible = msoTrue
透過度は「0」
.Transparency = 0
透過度は「0」
If “東京” = Cells(3, cnt).Value Then
もしセル(3行目、cnt列)=「東京」なら
.ForeColor.RGB = RGB(0, 0, 255)
青色
Else
そうでなければ
.ForeColor.RGB = RGB(255, 0, 0)
赤色
End If
End With
cnt = cnt + 1
cnt = cnt + 1 を代入する
Next
繰り返す
End Sub
For i = 1 To Cells(5, Columns.Count).End(xlToLeft).Columns
上記の意味が良くわからないといかたは下記の記事をご参考ください!!
記事を入れる
実際に実行したマクロがこちらになります!
最後にエラーが出てくるのは勉強します・・・
補足!!For i = 1 To Cells(5, Columns.Count).End(xlToLeft).Columns
セルの列で文字列を選択してしまうとエラーがでます。
理由は、勉強します・・・なので数字を選択するようにしましょう!!
いかが、だったでしょうか?
今回の例では、グラフの数が少なく手作業でやってもあまり作業時間が変わらないかもしれませんが
多くのグラフを作成しているときは、かなりの力を発揮します!
ぜひ、仕事の生産性UPの参考にしてみてください!!!
コメント
[…] 【Excel マクロ初心者】 グラフの色を自動で変更するマクロを作成してみた… […]