「エクセルvba 凡例の枠色」
といった検索で、時折アクセスがあることに気付きました。
VBAでグラフ凡例の枠線色を変更するには、どのようなオブジェクト式(オブジェクトを取得するコード)を書けばいいのか探していらしたのでしょう。
グラフ関連のオブジェクトは階層が深いので、この検索をなさった方の気持ちはよくわかります。
グラフ凡例の枠線色を変更するサンプルマクロ
以下のSubプロシージャが参考になるはずです。
Dim cht As Chart
Set cht = ActiveSheet.ChartObjects(1).Chart
cht.Legend.Format.Line.ForeColor.RGB = RGB(255, 0, 0)
End Sub
埋め込みグラフの存在するワークシートがアクティブな状態で、上記のSubプロシージャを実行すると、凡例の枠線色が、赤色になります。
サンプルマクロのオブジェクト式について
オブジェクト変数を使わなくても、
ActiveSheet.ChartObjects(1).Chart.Legend _ .Format.Line.ForeColor.RGB = RGB(0, 255, 0)
という1行のコードで同じことはできます。
しかしこのコードでは何のヒントも表示されないので、最低でも学習段階ではオブジェクト変数を使うのがおすすめです。
オブジェクト変数を使って、
Dim cht As Chart Set cht = ActiveSheet.ChartObjects(1).Chart
と書いておけば、つづく「cht.Legend.Format.Line.ForeColor.RGB」のコーディング時には、自動メンバー表示が行われます。
どうやってオブジェクト式「Legend.Format.Line」を見つけたのか
凡例の枠線色を変更するExcel VBAのコードを、実は今回初めて書きました。
私がどうやって上述のオブジェクト式を見つけたのかを明記しておきます。
グラフの凡例はLegendオブジェクトであることは知っていたので、まずオブジェクトブラウザーでLegendオブジェクトを表示しました。
Legendオブジェクトに用意されているプロパティで、枠線に関係しそうなものがないかと眺め、Formatプロパティの可能性が高いと考え、
Legend.Formatプロパティの返すChartFormatオブジェクトを確認しました。
ChartFormatオブジェクトに用意されているプロパティを眺めると、Shapeオブジェクトに似ていると感じ、枠線はLineプロパティで取得できるLineFormatオブジェクトだろうと考え、
上記のオブジェクト式を書きました。
最終更新日時:2022-09-30 15:44
Home » エクセルマクロ・Excel VBAの使い方 » グラフ・Chart » VBAでグラフ凡例の枠線色を変更する