- ベストアンサー
Excelグラフで線の色はそのままで系列順序を変更
- Excelのグラフで、各系列の色・線種などは自動で割り振っていますが、現在の各系列と色等の対応関係はそのままにし、系列の順序のみを変更することはできますか。
- 目的は、1) 系列名称と色等の対応関係は、複数のグラフで同一にしたい。 2) 凡例での系列の並びを、グラフによって変更したい(右端区間でもっとも値の大きいのを最上に)。
- 例をあげれば、PC、テレビ、クーラーの3系列の、価格を縦軸に、年代(1990,1995,2000年)を横軸に表したグラフがアメリカ、中国、日本の3個あるとして、車は赤、テレビは青、PCは黄色と色を統一し、かつ、グラフによって凡例での表示順を(そのグラフでの2000年の価格の高い順に)変えたいのです。実際には系列数・グラフ数が多く手作業では大変です。VBAなどを使って最初から簡単に実現する方法があれば、その方がありがたいのですが。
- みんなの回答 (2)
- 専門家の回答
質問者が選んだベストアンサー
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)
お礼
ありがとうございました。VBAはちゃんと勉強しておらず自分では書けないのですが、コードを拝見しておよその流れは理解できたように思うので、これを元に研究してみます。