「excel vba グラフ タイトル フォントサイズ」
「マクロ グラフタイトルのフォントを小さくする」
といった検索で、このサイト・インストラクターのネタ帳へのアクセスがありました。
Excel VBAで、グラフタイトルのフォントサイズを変更するには、どのようなコードを書けばいいのかを探していた検索キーワードです。
いつものように、参考になりそうな簡単なマクロを作ってみました。
グラフシートのグラフタイトルフォントサイズを変更するサンプル
以下のSubプロシージャを実行すると、アクティブなブックの全グラフシートの、グラフタイトルのフォントサイズが「14」に変更されます。
Dim cht As Chart
For Each cht In Charts
If cht.HasTitle Then
cht.ChartTitle.Format _
.TextFrame2.TextRange.Font.Size = 14
End If
Next
End Sub
全グラフシートに対して、For Each~Nextループを回して、
For Each cht In Charts
グラフタイトルが存在しているときに、
If cht.HasTitle Then
フォントサイズを変更しています。
cht.ChartTitle.Format _
.TextFrame2.TextRange.Font.Size = 14
埋め込みグラフのグラフタイトルフォントサイズを変更するサンプル
以下のSubプロシージャを実行すると、アクティブなシート上に存在するグラフオブジェクトのグラフタイトルのフォントサイズが「14」に変更されます。
Dim cho As ChartObject
For Each cho In ActiveSheet.ChartObjects
If cho.Chart.HasTitle Then
cho.Chart.ChartTitle.Format _
.TextFrame2.TextRange.Font.Size = 14
End If
Next
End Sub
先ほどのグラフシートのグラフタイトルを変更するマクロと考え方は同じですが、
For Each~Nextループで処理する対象が、アクティブシート上のグラフオブジェクトである点、
For Each cho In ActiveSheet.ChartObjects
For Each~Nextループ内で処理するオブジェクトの階層が、ちょっと深いところが違います。
If cho.Chart.HasTitle Then
cho.Chart.ChartTitle.Format _
オブジェクトの階層構造を頭に入れましょう
グラフシートに対する処理でも、グラフオブジェクトに対する処理でも、「Chart.ChartTitle.Format.TextFrame2.TextRange.Font」というオブジェクト式がポイントでしょう。
階層が深いことと、プロパティの名前と返されるオブジェクトの名前が微妙に違っているところ(下図の強調表示箇所)が難点です。
Chartオブジェクト
└ChartTitleオブジェクト ←Chart.ChartTitleプロパティ
└ChartFormatオブジェクト ←ChartTitle.Formatプロパティ
└TextFrame2オブジェクト ←ChartFormat.TextFrame2プロパティ
└TextRange2オブジェクト ←TextFrame2.TextRangeプロパティ
└Font2オブジェクト ←TextRange2.Fontプロパティ
この手のマクロを自分で作れるようになりたいという方は、上記のような階層関係を、オブジェクトブラウザーで確認しながら、自分で図解してみることをおすすめします。
Font2オブジェクトを取得する「.TextFrame2.TextRange.Font」の部分は、ChartTitleオブジェクトに限らずShape系オブジェクトでよく登場するオブジェクト式でもありますから、Shape関連の文字書式を設定するマクロをよく作るという方は、「.TextFrame2.TextRange.Font」の部分が頭に入ると応用が効くようになります。
- VBAでグラフタイトルを非表示に
- このオブジェクトにはタイトルがありません。とは
- グラフタイトルのフォントサイズを変更する-ChartTitle.Font.Size
- 『理解するExcel VBA/グラフ操作の基本』を出しました。
最終更新日時:2022-06-27 12:28
Home » エクセルマクロ・Excel VBAの使い方 » グラフ・Chart » VBAでグラフタイトルのフォントサイズを