• ベストアンサー
※ ChatGPTを利用し、要約された質問です(原文:エクセルマクロのグラフ操作)

エクセルマクロのグラフ操作でエラーが発生する問題の解決方法

このQ&Aのポイント
  • エクセルにてグラフの線の色を変えるマクロを記録し、そのまま実行するとエラーになってしまいます。具体的には、Lineメソッドが失敗しました。
  • このエラーを解消するために、マクロのコード内の何箇所かを変更する必要があります。
  • 具体的な変更箇所は、グラフの線の色を変えるためのコード部分です。Format.LineのForeColor.RGBの値を適切に変更することで、エラーが発生しないようになります。

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

  • ベストアンサー
  • end-u
  • ベストアンサー率79% (496/625)
回答No.1

.Legend.LegendEntries(1) とは、『凡例』の1番めの凡例文字です。 これを選択して右クリック、ミニツールバーから「図形の枠線」を使って色を変えると 提示されたマクロが確かに記録されます。 ですが、 凡例1選択後右クリックして「データ系列の書式設定」から「線の色」を変更してみてください。 マクロ記録は ActiveSheet.ChartObjects("グラフ 1").Activate ActiveChart.Legend.Select ActiveChart.Legend.LegendEntries(1).Select ActiveChart.SeriesCollection(1).Select With Selection.Format.Line   .Visible = msoTrue   .ForeColor.RGB = RGB(192, 0, 0)   .Transparency = 0 End With このように記録されるはずです。 >ActiveChart.Legend.LegendEntries(1).Select の後に記録されている SeriesCollection(1) というのが『系列1』の事です。 グラフの線の色を変えるには、この系列1の.Format.Line.ForeColor.RGB を変更する操作が必要です。 マクロ記録は便利な機能ですが、パーフェクトに機能しているわけではないです。 特に図形を扱う時は、『Selection』は暗黙のうちに処理され、記録されない事も少なくありません。 記録マクロを参考に、ヘルプも駆使してコードを整理する事が必要です。 時に、目的の操作にはSelectionは必ずしも必要というわけではありません。 ActiveSheet.ChartObjects("グラフ 1").Chart.SeriesCollection(1).Format.Line.ForeColor.RGB = RGB(192, 0, 0) このように、親オブジェクトから順に階層を辿ってきちんと指定してあげればSelect不要です。 また、マクロを組む時に操作対象が何なのか調べてみると理解が深まると思います。 対象をSelectしてみて、 Sub test()   Dim o As Object   Set o = Selection   Stop End Sub このマクロを実行すると『Stop』行でマクロが一時停止します。 VisualBasicEditor画面で[Alt][v][s]の順押しで[ローカルウィンドウ]が表示されます。 変数 o が何の型なのか、『型』フィールドに表示されます。 例)Object/Series これを元にヘルプを使って、そのオブジェクトが持っているプロパティやメソッドを調べたりする事ができます。 また、変数 o の左 田マークをクリックする事で o に格納されたオブジェクトのプロパティの内容を見る事もできます。

obone
質問者

お礼

とても詳しく教えていただき感謝いたします。 大変、勉強になりました、ありがとうございました。

関連するQ&A

専門家に質問してみよう