Excelのグラフを見やすく、デザイン性の高いものに仕上げるためには、
背景やプロットエリアの色・枠線を調整することがとても重要です。
VBAを使えば、グラフ全体・プロットエリア(実際のデータ部分)・グラフエリア(全体の枠)を個別に設定できます。
この記事では、初心者でもすぐに実践できるように、
背景や枠線の設定を具体的なコード付きで解説します。
目次
1. グラフエリアとプロットエリアの違い
まずは、よく混同される2つの領域の違いを整理しておきましょう。
| 領域名 | 説明 |
|---|---|
| グラフエリア(ChartArea) | グラフ全体の外側。タイトル・凡例・軸などを含む領域 |
| プロットエリア(PlotArea) | 実際に系列(棒・線・円など)が描かれる内側の部分 |
この違いを理解しておくことで、狙った部分を正確にデザインできます。
2. グラフ全体(ChartArea)の背景色と枠線を変更する
グラフ全体の背景を変える場合は、ChartAreaを操作します。
With ActiveSheet.ChartObjects(1).Chart.ChartArea
'背景色を淡いグレーに設定
.Format.Fill.ForeColor.RGB = RGB(240, 240, 240)
'枠線の色と太さを設定
.Format.Line.ForeColor.RGB = RGB(100, 100, 100)
.Format.Line.Weight = 1.5
End With
📘 ポイント
- 背景色 →
.Format.Fill.ForeColor.RGB - 枠線 →
.Format.Line.ForeColor.RGB - 線の太さ →
.Format.Line.Weight
3. プロットエリアの色や枠線を変更する
データ部分の背景を強調したいときは、PlotAreaを設定します。
With ActiveSheet.ChartObjects(1).Chart.PlotArea
'背景色を薄い水色に設定
.Format.Fill.ForeColor.RGB = RGB(220, 235, 255)
'枠線を濃い青に設定
.Format.Line.ForeColor.RGB = RGB(0, 112, 192)
.Format.Line.Weight = 1
End With
💡 プロットエリアを色付けすると、データがより引き立ち、
報告資料などでグラフが視覚的にわかりやすくなります。
4. 背景をグラデーションや透明にする
VBAでは、単色だけでなくグラデーションや透明度も指定可能です。
▼ グラデーションの例
With ActiveSheet.ChartObjects(1).Chart.ChartArea.Format.Fill
.TwoColorGradient Style:=msoGradientHorizontal, Variant:=1
.ForeColor.RGB = RGB(255, 255, 255) '白
.BackColor.RGB = RGB(200, 200, 255) '淡い青
End With
▼ 透明度の例
With ActiveSheet.ChartObjects(1).Chart.ChartArea.Format.Fill
.ForeColor.RGB = RGB(0, 176, 240)
.Transparency = 0.3 '30%透明に設定
End With
グラフを資料に貼り付ける際、背景色を薄く透過させるとデザインが柔らかくなります。
5. 枠線を非表示にする
枠線を消して、よりシンプルに見せたい場合は以下のように設定します。
With ActiveSheet.ChartObjects(1).Chart.ChartArea.Format.Line
.Visible = msoFalse
End With
同様に、プロットエリアの枠線を消すことも可能です。
With ActiveSheet.ChartObjects(1).Chart.PlotArea.Format.Line
.Visible = msoFalse
End With
6. 背景と枠線をまとめて整形する(例)
複数のグラフに一括で整形を行いたい場合は、
ループで全ての ChartObjects に設定を適用できます。
Sub FormatAllChartBackgrounds()
Dim ws As Worksheet
Dim co As ChartObject
Set ws = ActiveSheet
For Each co In ws.ChartObjects
With co.Chart
'背景(ChartArea)
.ChartArea.Format.Fill.ForeColor.RGB = RGB(245, 245, 245)
.ChartArea.Format.Line.Visible = msoFalse
'プロットエリア
.PlotArea.Format.Fill.ForeColor.RGB = RGB(235, 245, 255)
.PlotArea.Format.Line.ForeColor.RGB = RGB(180, 180, 180)
End With
Next co
End Sub
これで、全てのグラフのデザインを統一できます。
7. まとめ
| 設定対象 | 主なプロパティ | 説明 |
|---|---|---|
| グラフ全体(ChartArea) | .Format.Fill / .Format.Line | 背景と外枠 |
| プロットエリア(PlotArea) | .Format.Fill / .Format.Line | データ表示領域 |
| グラデーション | .TwoColorGradient | 背景の色の変化 |
| 透明度 | .Transparency | 背景を透かす |
| 枠線を消す | .Format.Line.Visible = msoFalse | 枠を非表示にする |
💡ポイント
- ChartArea → グラフ全体、PlotArea → データ部分
.Format.Fill.ForeColor.RGBで色設定.Format.Line.Visibleで枠線を制御- グラデーション・透明度も設定可能
コメント