
VBAにて等高線グラフの線の色を変更するための方法がうまくいかずに困ってます。
マクロで作成した「ワイヤーフレーム等高線グラフ」に対して、線の色を大きい順に1つ1つ違う色を付けようとしております。
他の質問やサイトを参考に下記のとおり組んでみました。
ActiveSheet.ChartObjects("等高線図").Activate
with ActiveChart.Legend
.Select
.Font.Size = 14
.LegendEntries(1).LegendKey.Interior.Color = RGB(165, 0, 33)
.LegendEntries(2).LegendKey.Interior.Color = RGB(204, 0, 0)
.LegendEntries(3).LegendKey.Interior.Color = RGB(255, 0, 0)
.LegendEntries(4).LegendKey.Interior.Color = RGB(255, 102, 0)
.LegendEntries(5).LegendKey.Interior.Color = RGB(255, 153, 51)
.LegendEntries(6).LegendKey.Interior.Color = RGB(255, 204, 0)
.LegendEntries(7).LegendKey.Interior.Color = RGB(204, 204, 0)
.LegendEntries(8).LegendKey.Interior.Color = RGB(153, 204, 0)
.LegendEntries(9).LegendKey.Interior.Color = RGB(51, 204, 51)
.LegendEntries(10).LegendKey.Interior.Color = RGB(0, 204, 153)
end with
凡例項目数は結果によって変わるため、10個未満も10個以上もありえます。
10個以上であれば、それ以降は10番目の色(RGB(0, 204, 153))を使いたいです。
上記を実行すると、エラーは出ませんが、等高線の色も変わりません。
同時に変更している文字サイズは正常に反映されます。
どうか宜しくお願いします。
No.6ベストアンサー
- 回答日時:
ANo3です
>しかしながら、等高線の色は変わってくれませんでした。
調べようと思ったら、ANo5様がすでに回答なさっていましたね。
ANo3は面で表示するグラフを想定していたので、塗色を変更する処理にしていました。
補足でご提示のグラフは線構成のグラフですね。その場合は、
ANo3の
L.Item(i).LegendKey.Format.Fill.ForeColor.RGB = Color(index)
↓ ↓
L.Item(i).LegendKey.Format.Line.ForeColor.RGB = Color(index)
でいけるはずと思います。
ついでながら、
>LegendEntries(i).Select』を追加したりと試したりしたのですが~
大抵の処理は、SelectやActivateなどを用いずに記述することが可能です。
上記の記述を用いると、処理が遅くなったり、画面がチラついたりする原因となるので、やむを得ない場合を除き、極力排除する考えの方がよろしいように思います。
無事に理想通りの実行をすることができました。
幾度と確認や回答をいただきありがとうございました。
自分では解決できなかったと思いますし、大変感謝しております。
このたびはありがとうございました。
コードを使わせて頂いたという点からベストアンサーとさせて頂きます。
*どうやら凡例項目を数値の小さいほうから順に処理が行われる仕様のようでしたので、下記のとおり一部を改変して使わせて頂きました。
Dim ii As Long
ii = 0
For i = L.Count To 1 Step -1
ii = ii + 1
index = lb + ii - 1
If index > ub Then index = ub
L.Item(i).LegendKey.Format.Line.ForeColor.RGB = Color(index)
Next i

No.5
- 回答日時:
グラフの線の色を変えるには、系列の.Format.Line.ForeColor.RGB を変更する操作が必要な筈だから・・・系列1は。
ActiveSheet.ChartObjects("等高線図").Activate
ActiveChart.Legend.Select
ActiveChart.Legend.LegendEntries(1).Select
ActiveChart.SeriesCollection(1).Select
With Selection.Format.Line
.ForeColor.RGB = RGB(165, 0, 33)
End With
又は、フル階層で書くと、系列1は
ctiveSheet.ChartObjects("等高線図").Chart.SeriesCollection(1).Format.Line.ForeColor.RGB = RGB(165, 0, 33)
お二方の回答を元に、無事理想の実行をすることができました。
数ヶ月解決できなかった部分だったので、とても助かりました。
これまでInterior/Line/Fill/Fontなど意味を理解せずに書かれているがまま使っていた節がありました。
そういったところを勉強できたのはとても大きかったです。
かなりお時間と手間をかけていただいたかと思い、感謝しております。
No.4
- 回答日時:
ANo3です。
作成している間に、補足の図が追加されたようです。
テストしていたグラフの種類が違っていました。(汗)
(私は、透視図風の等高線グラフで試していました)
多分、そのままでもいけるのではないかと・・・
一応、テスト環境は以下です。
Windows 7、 Offis 2010
コードを用意していただきありがとうございます。
色を格納してから振り分ける形にしていただけたので、このコードをベースに作っていこうと思います。
しかしながら、等高線の色は変わってくれませんでした。
変数には全く問題ありませんでしたので、
『L.Item(i).LegendKey.Format.Fill.ForeColor.RGB = Color(index)』
この部分にはワイヤーフレーム等高線グラフ用の何等かの指定がいるのでしょうか・・・。
もしやと思って『~.LegendEntries(i).Select』を追加したりと試したりしたのですがうまくいきませんでした。
もしもまだお付き合いいただけるようでしたら、引き続きご教授いただければ幸いです。
No.3
- 回答日時:
こんにちは
グラフはほとんど使ったことがないのでほとんどわかりませんが、マクロの記録から作成してみました。(笑)
(マクロの記録では、そのままでもエラーを吐く記録を作成してくれましたが・・・)
以下の例は、凡例の塗色を変更する処理だけのサンプルです。
色の数は少なめにしてありますが、データを追加するだけで対応可能です。
Sub TestSample()
Dim L As Object, Color, d
Dim ub As Integer, lb As Integer
Dim i As Integer, index As Integer
Const g_name = "等高線図"
Color = Array( _
"165,0,33", "204,0,0", "255,0,0", "255,102,0" _
)
ub = UBound(Color)
lb = LBound(Color)
Set L = ActiveSheet.ChartObjects(g_name).Chart.Legend.LegendEntries
For i = lb To ub
d = Split(Color(i), ",")
Color(i) = RGB(d(0), d(1), d(2))
Next i
For i = 1 To L.Count
index = lb + i - 1
If index > ub Then index = ub
L.Item(i).LegendKey.Format.Fill.ForeColor.RGB = Color(index)
Next i
End Sub

No.2
- 回答日時:
excelのバージョンは幾つですか?
2003までなら、font.ColorIndex=数値、で数値は1:黒、3:赤、などと指定する必要がありますが・・・。
少なくともInteriorはセルの背景(文字などの背景)です。
OS: Windows10
バージョン:Excel2010
になります。
Interiorは意味が違ったのですね。
Interiorから先をFont.ColorIndex=数値としても
『オブジェクトは、このプロパティまたはメソッドをサポートしていません』
のエラーとなってしまいました。
まだ何が間違ってるかわかっていない状態です。
よろしければ引き続き、お願い致します。
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- Visual Basic(VBA) ダブルクリックでセルの色を変える 1 2022/12/24 15:52
- その他(IT・Webサービス) cssの@mediaについて 1 2023/05/14 07:34
- Visual Basic(VBA) VBAの繰り返し処理について教えてください。 3 2022/08/02 13:21
- Visual Basic(VBA) エクセルVBA ダブルクリックしたら色反転を指定したセルのみにしたい 2 2022/04/06 12:52
- その他(ソフトウェア) IndesignのGPUは色?CMYKなの?RGBなの? 1 2022/05/09 19:13
- Visual Basic(VBA) エクセル VBA 条件付き書式 簡略化したい 2 2022/06/02 17:46
- Excel(エクセル) Excel VBA 空白行があるセル範囲に色を付ける 3 2022/06/13 15:58
- HTML・CSS HTMLで特定の文字だけ色を変えたいのですが、指定した色と違う色が反映してしまいます。 下記、「前」 5 2023/06/27 12:08
- プリンタ・スキャナー 液タブを使っておられる方に質問です。 RGBカラーとCMYKカラーというのを最近知ったのですが、アイ 1 2022/09/04 21:48
- Web・クリエイティブ CMYKロゴをガイドラインにないRGBで使用する際の色はどうするべき?? デザイナーです。 連携会社 1 2022/05/25 16:21
このQ&Aを見た人はこんなQ&Aも見ています
-
今年はじめたいことは?
今年はこれをはじめたい!ということを教えてください!
-
スマホに会話を聞かれているな!?と思ったことありますか?
スマートフォンで検索はしてないのに、友達と話していた製品の広告が直後に出てきたりすることってありませんか? こんな感じでスマホに会話を聞かれているかも!?と思ったエピソードってありますか?
-
コンビニでおにぎりを買うときのスタメンはどの具?
コンビニでおにぎりを買うとき、何の具材を選ぶことが多いですか?
-
AIツールの活用方法を教えて
みなさんは普段どのような場面でAIツール(ChatGPTなど)を活用していますか?
-
14歳の自分に衝撃の事実を告げてください
タイムマシンで14歳の自分のところに現れた未来のあなた。 衝撃的な事実を告げて自分に驚かせるとしたら何を告げますか?
-
等高線グラフの書式を設定するマクロ
その他(Microsoft Office)
-
エクセルのグラフの等高線の色を細かく設定するには
Excel(エクセル)
-
エクセルのグラフのデータ系列の順序をVBAで変更する
Excel(エクセル)
-
関連するカテゴリからQ&Aを探す
おすすめ情報
- ・漫画をレンタルでお得に読める!
- ・一番好きなみそ汁の具材は?
- ・泣きながら食べたご飯の思い出
- ・「これはヤバかったな」という遅刻エピソード
- ・初めて自分の家と他人の家が違う、と意識した時
- ・いちばん失敗した人決定戦
- ・思い出すきっかけは 音楽?におい?景色?
- ・あなたなりのストレス発散方法を教えてください!
- ・もし10億円当たったら何に使いますか?
- ・何回やってもうまくいかないことは?
- ・今年はじめたいことは?
- ・あなたの人生で一番ピンチに陥った瞬間は?
- ・初めて見た映画を教えてください!
- ・今の日本に期待することはなんですか?
- ・集中するためにやっていること
- ・テレビやラジオに出たことがある人、いますか?
- ・【お題】斜め上を行くスキー場にありがちなこと
- ・人生でいちばんスベッた瞬間
- ・コーピングについて教えてください
- ・あなたの「プチ贅沢」はなんですか?
- ・コンビニでおにぎりを買うときのスタメンはどの具?
- ・おすすめの美術館・博物館、教えてください!
- ・【お題】大変な警告
- ・洋服何着持ってますか?
- ・みんなの【マイ・ベスト積読2024】を教えてください。
- ・「これいらなくない?」という慣習、教えてください
- ・今から楽しみな予定はありますか?
- ・AIツールの活用方法を教えて
- ・最強の防寒、あったか術を教えてください!
- ・歳とったな〜〜と思ったことは?
- ・モテ期を経験した方いらっしゃいますか?
- ・好きな人を振り向かせるためにしたこと
- ・スマホに会話を聞かれているな!?と思ったことありますか?
- ・それもChatGPT!?と驚いた使用方法を教えてください
- ・見学に行くとしたら【天国】と【地獄】どっち?
- ・これまでで一番「情けなかったとき」はいつですか?
- ・この人頭いいなと思ったエピソード
- ・あなたの「必」の書き順を教えてください
- ・14歳の自分に衝撃の事実を告げてください
- ・人生最悪の忘れ物
- ・あなたの習慣について教えてください!!
このQ&Aを見た人がよく見るQ&A
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
【VBA】Excel等高線グラフの...
-
Excel VBAで、グラフを特定のセ...
-
グラフの元のデータを消しても...
-
excelで散布図に線を追加したい
-
Excel VBAでグラフをクリックし...
-
VBA グラフの存在の判定について
-
Excelマクロでグラフの縦軸目盛...
-
論文に載せるグラフを作成したい
-
vlan internal allocation poli...
-
エクセルでファイルの最終更新...
-
TXTファイルを上書き保存する前...
-
共有しているファイルを削除し...
-
onedriveで同期解除をしたら、...
-
VB.NETで他のEXEを実行させる
-
Excel VBAで作成したマクロをxl...
-
沢山のフォルダにあるファイル...
-
teratarmでコマンド入力すると...
-
YAHAMA RTXシリーズのコマンド...
-
CPコマンドでファイルがコピー...
-
ファイルパスのチルダの意味
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
論文に載せるグラフを作成したい
-
Excel VBAでグラフをクリックし...
-
【VBA】Excel等高線グラフの...
-
グラフの元のデータを消しても...
-
matlabのy軸を2つ利用したグラ...
-
Excel VBAで、グラフを特定のセ...
-
Excelマクロでグラフの縦軸目盛...
-
VBA グラフの存在の判定について
-
gnuplotで関数を途切れさせるに...
-
vb.net(vs2008)でのグラフ作成...
-
積み上げ棒グラフの項目名を細...
-
C#のChartで目盛線をグラフの前...
-
excelで散布図に線を追加したい
-
c言語 正負の値それぞれでの最...
-
C言語によるハノイの塔のプログ...
-
Excel VBAでのグラフ
-
Excel VBA グラフ ChartType に...
-
C言語でグラフ作成
-
Matlabによる複素数・・・
-
グラフを「似ている」順に並べ...
おすすめ情報
ActiveChart.Legend.LegendEntries(1).Select
が不足している点に気づきましたが、それでも色は変わりませんでした。
また、どういうことがしたいか、手作業で作った完成イメージを貼っておきます。
引き続き、宜しくお願いします。
作業環境についての情報が漏れておりました
OS: Windows10
バージョン:Excel2010