• ベストアンサー
※ ChatGPTを利用し、要約された質問です(原文:Excelグラフで線の色はそのままで系列順序を変更)

Excelグラフで線の色はそのままで系列順序を変更

このQ&Aのポイント
  • Excelのグラフで、各系列の色・線種などは自動で割り振っていますが、現在の各系列と色等の対応関係はそのままにし、系列の順序のみを変更することはできますか。
  • 目的は、1) 系列名称と色等の対応関係は、複数のグラフで同一にしたい。 2) 凡例での系列の並びを、グラフによって変更したい(右端区間でもっとも値の大きいのを最上に)。
  • 例をあげれば、PC、テレビ、クーラーの3系列の、価格を縦軸に、年代(1990,1995,2000年)を横軸に表したグラフがアメリカ、中国、日本の3個あるとして、車は赤、テレビは青、PCは黄色と色を統一し、かつ、グラフによって凡例での表示順を(そのグラフでの2000年の価格の高い順に)変えたいのです。実際には系列数・グラフ数が多く手作業では大変です。VBAなどを使って最初から簡単に実現する方法があれば、その方がありがたいのですが。

質問者が選んだベストアンサー

  • ベストアンサー
  • mitarashi
  • ベストアンサー率59% (574/965)
回答No.1

Excelグラフで線の色はそのままで系列順序を変更  →系列名称に応じて色・マーカー種をシート内の全グラフ間で統一 というVBAコードを作成してみました。ご参考まで。 もっと色々設定したければ、ご自分で研究して下さい。 Sub test() Dim myGraphObj As ChartObject Dim sh As Worksheet Dim mySeries As Series Dim myColor As Long Set sh = Sheets(1) For Each myGraphObj In sh.ChartObjects For Each mySeries In myGraphObj.Chart.SeriesCollection With mySeries Select Case .Name Case "A" myColor = RGB(255, 0, 0) .MarkerStyle = xlMarkerStyleSquare Case "B" myColor = RGB(0, 0, 255) .MarkerStyle = xlMarkerStyleCircle Case "C" myColor = RGB(0, 255, 0) .MarkerStyle = xlMarkerStyleDiamond End Select .MarkerSize = 10 .MarkerForegroundColor = myColor .MarkerBackgroundColor = myColor .Format.Line.ForeColor.RGB = myColor End With Next mySeries Next myGraphObj End Sub

その他の回答 (1)

  • mitarashi
  • ベストアンサー率59% (574/965)
回答No.2

#1です。グラフの画像ファイルを差し替えるのを失念しておりました。こちらをご覧下さい。

xdori
質問者

お礼

ありがとうございました。VBAはちゃんと勉強しておらず自分では書けないのですが、コードを拝見しておよその流れは理解できたように思うので、これを元に研究してみます。

関連するQ&A