Home » エクセルマクロ・Excel VBAの使い方 » グラフ・Chart » データラベルのフォントをVBAで操作する

データラベルのフォントをVBAで操作する

動作検証バージョン:64bit Windows 10 Pro + 32bit Excel(バージョン2112 ビルド14729.20260 Microsoft Store)

「グラフ データラベルのフォントサイズ vba」
「vba グラフ データラベル 文字の大きさ」
といった検索キーワードでアクセスがあることに気が付きました。

Excel VBAで、グラフのデータラベルのフォント・文字の設定を行うには、どのようなコードを書けばいいのかを探していらしたのでしょう。

データラベルのフォントサイズを設定するサンプルマクロ

グラフがアクティブな状態で以下のSubプロシージャを実行すると、全系列のデータラベルが表示され、フォントサイズが18ポイントに設定されます。

Sub データラベルを表示してフォントサイズを設定する()
 Dim srs As Series
 For Each srs In ActiveChart.SeriesCollection
  srs.HasDataLabels = True
  srs.DataLabels.Format.TextFrame2.TextRange.Font.Size = 18
 Next
End Sub

フォントサイズを設定している行

srs.DataLabels.Format.TextFrame2.TextRange.Font.Size = 18

は、かなり深い階層構造ですが、Excel VBAのTextFrame2オブジェクトを使って図形を操作したことがあれば、「.TextFrame2.TextRange.Font.Size」については、図形内文字列のフォント操作と同じだとわかるでしょう。

拙著『理解するExcel VBA/図形操作の基本』の「6-3. TextRange2も文字列範囲を表す」でも、「.TextFrame2.TextRange.Font」について解説しています。

Series.DataLabels.Formatとは

「.TextFrame2.TextRange.Font.Size」の前の部分「srs.DataLabels.Format」は、以下のとおりです。

グラフのデータ系列を表すSeriesオブジェクトに用意されているDataLabelsメソッドで、

1つの系列に含まれる全データラベルを表すDataLabelsコレクションを取得し、DataLabels.Formatプロパティで、

ChartFormatオブジェクトを取得しています。

非表示のFontを使ったサンプル

グラフに関連するオブジェクトには、非表示設定になっているFontプロパティが複数存在します。

DataLabelsコレクションにも非表示状態のFontプロパティがあります。

このDataLabels.Fontプロパティを使うと、先ほどよりも随分すっきりしたコードで、同様のフォント操作が可能です。

Sub データラベルを表示して文字サイズを設定する__非表示のFont()
 Dim srs As Series
 For Each srs In ActiveChart.SeriesCollection
  srs.HasDataLabels = True
  srs.DataLabels.Font.Size = 18
 Next
End Sub

長期に渡って使用されるExcelマクロの場合、先述の「srs.DataLabels.Format.TextFrame2.TextRange.Font.Size」を使うほうが良さそうですが、使い捨てするようなマクロであれば「srs.DataLabels.Font.Size」を利用するほうが明らかに簡単です。

最終更新日時:2022-06-25 08:57

[スポンサードリンク]

Home » エクセルマクロ・Excel VBAの使い方 » グラフ・Chart » データラベルのフォントをVBAで操作する

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

検索


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