おすすめ記事

同じカテゴリー

円グラフの要素の色を固定する



Excelでグラフを作成すると、1番目の色、2番目の色・・・と決まった色で設定されます。
たとえば、下のように関東の表では、A社→B社→C社→D社の順位で、円グラフの要素の色は赤→黄緑→水色→ピンクです。
九州の表では、D社→C社→B社→A社の順位で、円グラフの要素は同じく赤→黄緑→水色→ピンクとなります。

これを、下の画像のようにA社は常に赤、B社は黄緑、C社は水色、D社はピンクというように会社ごとに色を固定したい場合の方法です。
毎回、グラフの要素ごとに設定を変更すればいいのですが、面倒なのでマクロを作成してみました。
※積み上げ棒グラフの系列ごとの色固定は、マクロも作りやすいのですが、円グラフは簡単にはできないんですね。
ネットで検索して、あちこちのサイトにお世話になりながら思いついた方法です。本当はもっとスマートな方法があるかもしれません。

上の関東の表は、A社が赤、B社が黄緑、C社が青、D社がピンクになっているので、各要素の色はこの色で固定します。
セルA1からセルA4の色の順番が円グラフの色の順番になります。九州の会社名をコピーします。ここではセルC18からセルC21までです。

スポンサーリンク

セルA1に貼り付けます。

マクロを実行したい円グラフを選択して、マクロの[円グラフの色指定]を実行します。

九州の円グラフは、A社が赤、B社が黄緑、C社が青、D社がピンクになります。A列は削除して構いません。

このマクロは、VBA 円グラフの色設定(Chart,SeriesCollection):Excelマクロサンプル集を参考にさせていただきました。(人-)謝謝

では、マクロです。[色設定]と[円グラフの色指定]の2つですが、実行するのは[円グラフの色指定]です。
[円グラフの色指定]の中で、[色設定]マクロを呼び出しています。
RGB値は、Office TANAKA - グラフ[ColorプロパティとRGB関数について]を参考に計算しました。
VBAは、得意ではないので、上記サイトで学習しながら作成したものです。
一応、これで動作はしています。ピボットグラフでも使えます。(Excel2010で確認)
あくまで参考として見てください。
*********************************************
Sub 色設定()

Dim FoundCell As Range

Set FoundCell = Range("A1:A4").Find(What:="A社")
If FoundCell Is Nothing Then
Else
FoundCell.Select
ActiveCell.Interior.Color = 255
End If

Set FoundCell = Range("A1:A4").Find(What:="B社")
If FoundCell Is Nothing Then
Else
FoundCell.Select
ActiveCell.Interior.Color = 3537312
End If

Set FoundCell = Range("A1:A4").Find(What:="C社")
If FoundCell Is Nothing Then
Else
FoundCell.Select
ActiveCell.Interior.Color = 16763904
End If

Set FoundCell = Range("A1:A4").Find(What:="D社")
If FoundCell Is Nothing Then
Else
FoundCell.Select
ActiveCell.Interior.Color = 16764159
End If

End Sub
=======================================
Sub 円グラフの色指定()

Dim i As Long

With ActiveChart.SeriesCollection(1)

Call 色設定

For i = 1 To .Points.Count
.Points(i).Interior.Color = Cells(i, 1).Interior.Color
Next i
End With

End Sub

***************************************************
マクロボタンは、クイックアクセスツールバーやタブにに登録しておくと便利です。
マクロをタブに登録するにはを参考にしてください。

トラブルをすぐに解決したいならteratail

おすすめ記事

シェアする