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

グラフタイトルのフォントサイズを変更するExcelマクロ

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

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

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

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

[スポンサードリンク]

グラフシートのグラフタイトルを変更するサンプルマクロ

以下の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 cht
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 cho
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」の部分が頭に入ると応用が効くようになります。

[スポンサードリンク]

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

TrackBack:0

TrackBack URL
[スポンサードリンク]

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

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

検索

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

.