HOME > 即効テクニック > Excel VBA > グラフ関連のテクニック > グラフを選択しないで操作する

即効テクニック

グラフ関連のテクニック

グラフを選択しないで操作する

(Excel 97/2000/2002/2003/2007)
グラフの操作は理解しにくいマクロのひとつです。
グラフは複数のパーツが重なり合って構成されていますので、マクロ記録だけではどんなプロパティでどのパーツを操作するかがわかりにくいからです。
またグラフの操作をマクロ記録すると、次のように一度グラフを選択してから、選択したグラフに対してのコードが記録されます。
次のコードは、棒グラフの系列色を赤に変更する操作のマクロ記録結果です。
(コメント部分は省略しています)

Sub Macro1()
    ActiveSheet.ChartObjects("グラフ 1").Activate
    ActiveChart.SeriesCollection(1).Select
    ActiveChart.SeriesCollection(1).Points(1).Select
    With Selection.Interior
        .ColorIndex = 3
        .Pattern = xlSolid
    End With
End Sub
ところが、グラフを直接操作しようとして、次のように変更するとエラーになります。
Sub Sample1()
''失敗するマクロ
    With ActiveSheet.ChartObjects(1).SeriesCollection(1).Points(1).Interior
        .ColorIndex = 3
        .Pattern = xlSolid
    End With
End Sub
マクロ記録の結果からではわかりにくいのですが、グラフを選択しないで操作するには
ChartObjects(1).SeriesCollection(1)
ではなく、
ChartObjects(1).Chart.SeriesCollection(1)
と、Chartオブジェクトを明示的に指定する必要があります。
Sub Sample2()
''成功するマクロ
    With ActiveSheet.ChartObjects(1).Chart.SeriesCollection(1).Points(1).Interior
        .ColorIndex = 3
        .Pattern = xlSolid
    End With
End Sub
グラフを構成するオブジェクトは複雑ですので、ヘルプなどで根気よく調べてください。