「vba 凡例 フォントサイズ」
という検索キーワードでアクセスがありましたので、いつものように参考となりそうな、シンプルなサンプルをご紹介しておきます。
凡例のフォントサイズを変更するサンプルマクロ
凡例の表示されている埋め込みグラフの存在するワークシートがアクティブな状態で、以下のSubプロシージャを実行すると、1つ目の埋め込みグラフの、凡例のフォントサイズが8に変更されます。
ActiveSheet.ChartObjects(1).Chart.Legend _
.Format.TextFrame2.TextRange.Font.Size = 8
End Sub
サンプルマクロのオブジェクト式について
1行のコードの意味は以下のとおりです。
LegendオブジェクトのFormatプロパティで、
ActiveSheet.ChartObjects(1).Chart.Legend _
.Format.TextFrame2.TextRange.Font.Size = 8
ChartFormatオブジェクトを取得して、
取得したChartFormatオブジェクトのTextFrame2プロパティで、
ActiveSheet.ChartObjects(1).Chart.Legend _
.Format.TextFrame2.TextRange.Font.Size = 8
TextFrame2オブジェクトを取得して、
取得したTextFrame2オブジェクトのTextRangeプロパティで、
ActiveSheet.ChartObjects(1).Chart.Legend _
.Format.TextFrame2.TextRange.Font.Size = 8
TextRange2オブジェクトを取得して、
取得したTextRange2オブジェクトのFontプロパティで、
ActiveSheet.ChartObjects(1).Chart.Legend _
.Format.TextFrame2.TextRange.Font.Size = 8
Font2オブジェクトを取得して、
取得したFont2オブジェクトのSizeプロパティで、
ActiveSheet.ChartObjects(1).Chart.Legend _
.Format.TextFrame2.TextRange.Font.Size = 8
フォントサイズを設定しています。
オブジェクトの階層が深い上に、プロパティ名と取得できるオブジェクト名が微妙に異なる部分を含むため、少なくともTextFrameオブジェクトとTextFrame2オブジェクトの違いを意識できていない方には、なかなか難易度が高そうです。
上記のコードをちゃんと理解したいという方は、各オブジェクト式がどのようなオブジェクトを返すのかを図解したりしながら、何度もオブジェクトブラウザーを確認して、頭に叩き込みましょう。これだけ階層が深いと、コードを何度か書いていたら、勝手に頭に入るということは、まず起きないと覚悟することが必要です。
グラフの階層構造の基本と、TextFrame2オブジェクトを理解できている方なら、
Chart
└Legend
└ChartFormat
└TextFrame2
の部分がわかればOKなはずです。
LegendオブジェクトにはFontプロパティがある
グラフを操作するプロシージャをVBAでバリバリ作りたいという方は、上述のオブジェクト式をいずれ理解する必要もありそうですが、とりあえず、VBAで凡例のフォントサイズを変更したいという方には以下のSubプロシージャをおすすめします。
ActiveSheet.ChartObjects(1).Chart.Legend _
.Font.Size = 8
End Sub
先述のSubプロシージャと比べると、オブジェクトの階層がかなり浅く理解しやすいはずです。
Legendオブジェクトには、非表示になっているFontプロパティが存在します。
LegendオブジェクトのFontプロパティでFontオブジェクトを取得して、Sizeプロパティでフォントサイズを変更しています。
最終更新日時:2022-06-27 12:24
Home » エクセルマクロ・Excel VBAの使い方 » グラフ・Chart » VBAで凡例のフォントサイズを変更する