即効テクニック |
グラフの操作は理解しにくいマクロのひとつです。 グラフは複数のパーツが重なり合って構成されていますので、マクロ記録だけではどんなプロパティでどのパーツを操作するかがわかりにくいからです。 またグラフの操作をマクロ記録すると、次のように一度グラフを選択してから、選択したグラフに対してのコードが記録されます。 次のコードは、棒グラフの系列色を赤に変更する操作のマクロ記録結果です。 (コメント部分は省略しています)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グラフを構成するオブジェクトは複雑ですので、ヘルプなどで根気よく調べてください。