グラフの見た目を整えるうえで重要なのが、フォントや色の書式設定です。
凡例やタイトル、データラベルを強調することで、
「伝わるグラフ」を作ることができます。
この記事では、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 | データ値のフォント設定 |
適切にフォントや色を調整することで、
グラフの可読性が向上し、より伝わる資料に仕上がります。
コメント