Home » エクセルマクロ・Excel VBAの使い方 » グラフ・Chart » VBAで凡例のフォントサイズを変更する


VBAで凡例のフォントサイズを変更する

対象:Excel2010, Excel2013, Windows版Excel2016

「vba 凡例 フォントサイズ」
という検索キーワードでアクセスがありましたので、いつものように参考となりそうな、シンプルなサンプルをご紹介しておきます。

[スポンサードリンク]

凡例のフォントサイズを変更するサンプルマクロ

凡例の表示されている埋め込みグラフの存在するワークシートがアクティブな状態で、以下のSubプロシージャを実行すると、1つ目の埋め込みグラフの、凡例のフォントサイズが8に変更されます。


Sub 凡例のフォントサイズを変更する()
 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オブジェクトを取得して、

LegendオブジェクトのFormatプロパティ

取得したChartFormatオブジェクトのTextFrame2プロパティで、
  ActiveSheet.ChartObjects(1).Chart.Legend _
    .Format.TextFrame2.TextRange.Font.Size = 8
TextFrame2オブジェクトを取得して、

ChartFormatオブジェクトのTextFrame2プロパティ

取得したTextFrame2オブジェクトのTextRangeプロパティで、
  ActiveSheet.ChartObjects(1).Chart.Legend _
    .Format.TextFrame2.TextRange.Font.Size = 8
TextRange2オブジェクトを取得して、

TextFrame2オブジェクトのTextRangeプロパティ

取得したTextRange2オブジェクトのFontプロパティで、
  ActiveSheet.ChartObjects(1).Chart.Legend _
    .Format.TextFrame2.TextRange.Font.Size = 8
Font2オブジェクトを取得して、

TextRange2オブジェクトのFontプロパティ

取得したFont2オブジェクトのSizeプロパティで、
  ActiveSheet.ChartObjects(1).Chart.Legend _
    .Format.TextFrame2.TextRange.Font.Size = 8
フォントサイズを設定しています。

Font2オブジェクトのSizeプロパティ

オブジェクトの階層が深い上に、プロパティ名と取得できるオブジェクト名が微妙に異なる部分を含むため、少なくともTextFrameオブジェクトとTextFrame2オブジェクトの違いを意識できていない方には、なかなか難易度が高そうです。

上記のコードをちゃんと理解したいという方は、各オブジェクト式がどのようなオブジェクトを返すのかを図解したりしながら、何度もオブジェクトブラウザーを確認して、頭に叩き込みましょう。これだけ階層が深いと、コードを何度か書いていたら、勝手に頭に入るということは、まず起きないと覚悟することが必要です。

グラフの階層構造の基本と、TextFrame2オブジェクトを理解できている方なら、
 Chart
  └Legend
    └ChartFormat
      └TextFrame2
の部分がわかればOKなはずです。

LegendオブジェクトにはFontプロパティがある

グラフを操作するプロシージャをVBAでバリバリ作りたいという方は、上述のオブジェクト式をいずれ理解する必要もありそうですが、とりあえず、VBAで凡例のフォントサイズを変更したいという方には以下のSubプロシージャをおすすめします。


Sub 凡例のフォントサイズを変更する_Font()
 ActiveSheet.ChartObjects(1).Chart.Legend _
   .Font.Size = 8
End Sub

先述のSubプロシージャと比べると、オブジェクトの階層がかなり浅く理解しやすいはずです。

Legendオブジェクトには、非表示になっているFontプロパティが存在します。

LegendオブジェクトのFontプロパティ

LegendオブジェクトのFontプロパティでFontオブジェクトを取得して、Sizeプロパティでフォントサイズを変更しています。

[スポンサードリンク]

Home » エクセルマクロ・Excel VBAの使い方 » グラフ・Chart » VBAで凡例のフォントサイズを変更する

TrackBack:0

TrackBack URL

Home » エクセルマクロ・Excel VBAの使い方 » グラフ・Chart » VBAで凡例のフォントサイズを変更する

「グラフ・Chart」の記事一覧

検索


Copyright © インストラクターのネタ帳 All Rights Reserved.

.