
エクセルにてグラフの線の色を変えるマクロを記録し
そのまま実行するとエラーになります。
(Lineメソッドは失敗しました)
どこを変更すれば上手くいきますでしょうか。
'------------------------記録したマクロ
ActiveSheet.ChartObjects("グラフ 1").Activate
ActiveChart.Legend.Select
ActiveChart.Legend.LegendEntries(1).Select
With Selection.Format.Line
.Visible = msoTrue
.ForeColor.RGB = RGB(192, 0, 0)
.Transparency = 0
End With
環境
Windows 7
Office 2010

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 に格納されたオブジェクトのプロパティの内容を見る事もできます。
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
このQ&Aを見た人はこんなQ&Aも見ています
関連するカテゴリからQ&Aを探す
おすすめ情報
このQ&Aを見た人がよく見るQ&A
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
複数のデータ系列の線の太さを...
-
エクセルでツールバーに「縮小...
-
VBA[Private Sub]のコードをシ...
-
Powerpointでランダムな数字の...
-
どのドキュメントは暗号化され...
-
最初の1回のみにボタンクリッ...
-
VBAでこのような図形の移動はで...
-
エクセル vba クリック~離し...
-
Excel2007でのマクロ実行時のシ...
-
cellsで特定の離れた範囲を選択...
-
ワードで選択範囲だけの改行を...
-
【エクセルマクロ】合計値が指...
-
VBA ChartWizardで円グラフが書...
-
書式のコピー・貼り付けのショ...
-
エクセルで「ODBC Microsoft Ac...
-
ユーザーフォームを「Esc」キー...
-
ACCESS VBAからWordのテンプレ...
-
VBAでシートの保護をかける際に...
-
Pictures.Insertメソッド⇒Shape...
-
エクセルのマクロでSelection.S...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
複数のデータ系列の線の太さを...
-
エクセルでツールバーに「縮小...
-
cellsで特定の離れた範囲を選択...
-
ファイル名を今日の日付、時刻...
-
最初の1回のみにボタンクリッ...
-
VBA[Private Sub]のコードをシ...
-
どのドキュメントは暗号化され...
-
Powerpointでランダムな数字の...
-
ピボットグラフの書式の固定に...
-
エクセルVBAで、画像の倍率を知...
-
【ExcelVBA】クエリの更新とピ...
-
別ブックからユーザーフォーム...
-
VBAを使ってエクセルシート...
-
エクセルのマクロでSelection.S...
-
Pictures.Insertメソッド⇒Shape...
-
wordのマクロで縮小して貼り付...
-
EXCELにクリップボードにある画...
-
【VC++6.0(MFC)】コメントを一...
-
Excelのマクロで最下行を選択し...
-
VBA ChartWizardで円グラフが書...
おすすめ情報