【VBA】グラフの凡例・タイトル・ラベルのフォントや色を変更する方法

グラフの見た目を整えるうえで重要なのが、フォントや色の書式設定です。
凡例やタイトル、データラベルを強調することで、
「伝わるグラフ」を作ることができます。

この記事では、VBAを使ってグラフの文字の色・サイズ・太字・フォントなどを変更する方法を詳しく解説します。


1. グラフタイトルのフォントや色を変更する

グラフタイトルの書式を変更するには、
ChartTitle.Format.TextFrame2.TextRange.Fontを利用します。

以下は、タイトルを青色・太字・フォントサイズ14ptに設定する例です。

Dim chtObj As ChartObject
Set chtObj = ActiveSheet.ChartObjects(1)

With chtObj.Chart.ChartTitle.Format.TextFrame2.TextRange.Font
    .Size = 14
    .Bold = True
    .Fill.ForeColor.RGB = RGB(0, 0, 255)
End With
設定項目説明
.Size文字サイズ
.Bold太字設定
.Italic斜体設定
.Fill.ForeColor.RGB文字の色(RGB指定)

💡 ポイント:
RGB(赤, 緑, 青)の値は 0〜255 で指定します。
例:RGB(255,0,0)=赤、RGB(0,128,0)=緑、RGB(0,0,255)=青


2. 凡例(Legend)のフォントや色を変更する

凡例は、系列名を一覧表示する部分です。
Chart.Legend.Format.TextFrame2.TextRange.Fontを使って変更します。

Dim chtObj As ChartObject
Set chtObj = ActiveSheet.ChartObjects(1)

With chtObj.Chart.Legend.Format.TextFrame2.TextRange.Font
    .Size = 12
    .Bold = True
    .Fill.ForeColor.RGB = RGB(80, 80, 80)
End With

この設定により、凡例の文字を濃いグレー+太字に変更できます。

凡例の位置を変更したい場合は以下のように設定します。

chtObj.Chart.Legend.Position = xlLegendPositionBottom
定数名配置位置
xlLegendPositionRight右側
xlLegendPositionBottom下側
xlLegendPositionTop上側
xlLegendPositionLeft左側

3. データラベル(DataLabels)のフォントや色を変更する

データラベルとは、各系列の値(数値)を表示する文字です。
データ系列ごとに SeriesCollection でアクセスします。

Dim chtObj As ChartObject
Set chtObj = ActiveSheet.ChartObjects(1)

With chtObj.Chart.SeriesCollection(1).DataLabels.Font
    .Size = 11
    .Color = RGB(255, 0, 0)
    .Bold = True
End With
  • .SeriesCollection(1):1つ目の系列を指定
  • .DataLabels:データラベルの書式を変更
  • .Font:フォント関連設定を指定

● データラベルを表示する場合

Dim chtObj As ChartObject
Set chtObj = ActiveSheet.ChartObjects(1)

With chtObj.Chart.SeriesCollection(1)
    .HasDataLabels = True
End With

💡 補足:
.HasDataLabels = True を指定しないと、
.DataLabels にアクセスしても書式変更が反映されません。


4. 複数要素をまとめて書式変更する方法

複数の要素(タイトル・凡例・ラベルなど)をまとめて整形したい場合は、
以下のように「共通設定」としてまとめると管理が楽になります。

Sub FormatChartText()

    Dim chtObj As ChartObject
    Set chtObj = ActiveSheet.ChartObjects(1)

    With chtObj.Chart
        'タイトル
        With .ChartTitle.Format.TextFrame2.TextRange.Font
            .Size = 14
            .Bold = True
            .Fill.ForeColor.RGB = RGB(0, 0, 255)
        End With

        '凡例
        With .Legend.Format.TextFrame2.TextRange.Font
            .Size = 12
            .Bold = True
            .Fill.ForeColor.RGB = RGB(80, 80, 80)
        End With

        'データラベル
        With .SeriesCollection(1)
            .HasDataLabels = True
            With .DataLabels.Font
                .Size = 11
                .Color = RGB(255, 0, 0)
            End With
        End With
    End With
End Sub

このように構造化することで、
すべてのテキスト要素を一括で整形できます。


5. まとめ

VBAを使えば、グラフのフォントや色も自由に変更できます。

対象プロパティ内容
グラフタイトル.ChartTitle.Format.TextFrame2.TextRange.Fontタイトルのフォント設定
凡例.Legend.Format.TextFrame2.TextRange.Font凡例の文字設定
データラベル.SeriesCollection().DataLabels.Fontデータ値のフォント設定

適切にフォントや色を調整することで、
グラフの可読性が向上し、より伝わる資料に仕上がります。

コメント

タイトルとURLをコピーしました