【VBA】背景やプロットエリアの色・枠線をカスタマイズする方法

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 で枠線を制御
  • グラデーション・透明度も設定可能

コメント

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