Home » エクセルマクロ・Excel VBAの使い方 » グラフ・Chart » VBAでグラフタイトルのフォントサイズを

VBAでグラフタイトルのフォントサイズを

対象:Excel2007, Excel2010, Excel2013, Windows版Excel2016

「excel vba グラフ タイトル フォントサイズ」
「マクロ グラフタイトルのフォントを小さくする」
といった検索で、このサイト・インストラクターのネタ帳へのアクセスがありました。

Excel VBAで、グラフタイトルのフォントサイズを変更するには、どのようなコードを書けばいいのかを探していた検索キーワードです。

いつものように、参考になりそうな簡単なマクロを作ってみました。

グラフシートのグラフタイトルフォントサイズを変更するサンプル

以下のSubプロシージャを実行すると、アクティブなブックの全グラフシートの、グラフタイトルのフォントサイズが「14」に変更されます。

Sub グラフタイトルのフォントサイズ変更_グラフシート()
 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」に変更されます。

Sub グラフタイトルのフォントサイズ変更_グラフオブジェクト()
 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」の部分が頭に入ると応用が効くようになります。

最終更新日時:2022-06-27 12:28

[スポンサードリンク]

Home » エクセルマクロ・Excel VBAの使い方 » グラフ・Chart » VBAでグラフタイトルのフォントサイズを

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

検索


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

.