- ベストアンサー
VBAで棒グラフの色を変えたい
- みんなの回答 (3)
- 専門家の回答
質問者が選んだベストアンサー
atom11290301さん こんにちは。 グラフはマクロ記録だけではなかなか難しいようですね。 一応簡単ですが、以下の処理でできると思います。 Sub Eの色変更() Dim I As Integer Dim 店舗名 As Variant With Sheets("りんご").ChartObjects("グラフ 1").Chart.SeriesCollection(1) 店舗名 = .XValues For I = 1 To UBound(店舗名) If 店舗名(I) = "E" Then .Points(I).Interior.ColorIndex = 3 Next I End With End Sub 注)sheet1、"グラフ 1"、色(ColorIndex)等は変更してください。
その他の回答 (2)
- imogasi
- ベストアンサー率27% (4737/17070)
系列の色を変えるではなく、要素(質問の場合のE)の色を変える、では無いの? 例データ a 10 b 30 c 20 で棒グラフを作り bのデータ要素の書式設定をマクロの記録をとって見ましたか?(bは質問ではE) マクロの記録を採ると ActiveChart.SeriesCollection(1).Points(2).Select bだからPoints(2)と2なので、ソートして順序が変わるなら 何番目にあるか調べたら良いでしょう。 2つのシートでテスト。 標準モジュール Sub test01() Dim sh For Each sh In Worksheets(Array("Sheet1", "Sheet2")) MsgBox sh.Name sh.Activate x = ActiveSheet.Range("A2:A4").Find("b").Row 'bは何番目の行にあるか MsgBox x - 1 '見出し行数までを引く ActiveSheet.ChartObjects("グラフ 1").Activate ActiveChart.SeriesCollection(1).Points(x - 1).Select Selection.Interior.ColorIndex = 3 Next End Sub ーーー >("Sheet1", "Sheet2"))は自分の場合に変える、増やす。 または全シートなら、In Worksheets シート内にグラフを挿入する方式を仮定。 グラフが1シート1個(問題にしているグラフのみ)と仮定。 一応ソート後のデータでグラフを描くとか、描いたあと(自動で)順序が反映されていると仮定。
- MARU4812
- ベストアンサー率43% (196/452)
1つの系列の色でも、系列の中の1つの要素の色でも マクロで記録したコードを参考にすれば簡単に変えられる ので、うまくいかないとだけ言われてもやり方が悪いんでしょ としかいえない。 どんなコードを書いて、どこのコードでどんなエラーが出るとか、 想定した結果は○○なのに、結果が××だとか、 具体的に書いてないと、宿題や課題の丸投げと区別できません。 丸投げして社会問題起こすような人が出てきちゃったので、 安心して回答できるような質問内容に変更して欲しいです。
お礼
色が変更できるようになりました。 すごく助かりました! 丁寧なご回答ありがとうございました!