Excelのグラフを見やすく仕上げるうえで、
「系列ごとの色や線のスタイルを変更したい」
という要望は非常に多いです。
VBAを使えば、SeriesCollectionオブジェクトを操作して、
グラフの系列(棒・折れ線・円など)の色、線の種類、マーカーの形まで自由に変更できます。
この記事では、その基本から応用までを詳しく解説します。
目次
1. SeriesCollectionとは?
SeriesCollection は、**グラフの中にある系列(データの集まり)**を管理するオブジェクトです。
例えば、売上グラフで「2024年」「2025年」という2本の棒がある場合、
それぞれが SeriesCollection(1) と SeriesCollection(2) に対応します。
基本構文は以下の通りです。
Chart.SeriesCollection(番号)
番号は1から始まり、グラフの左から順に割り当てられます。
2. 系列の塗りつぶし(色)を変更する
棒グラフや折れ線グラフの線色を変更するには、
Format.Fill.ForeColor.RGB を使います。
With ActiveSheet.ChartObjects(1).Chart
'1番目の系列を赤色に変更
.SeriesCollection(1).Format.Fill.ForeColor.RGB = RGB(255, 0, 0)
'2番目の系列を青色に変更
.SeriesCollection(2).Format.Fill.ForeColor.RGB = RGB(0, 102, 204)
End With
この設定は主に 縦棒グラフ・円グラフ などで使用します。
3. 折れ線グラフなどの線の色・スタイルを変更する
折れ線グラフや散布図の線は、Line.ForeColor.RGB を使います。
With ActiveSheet.ChartObjects(1).Chart.SeriesCollection(1)
'線の色を緑に設定
.Format.Line.ForeColor.RGB = RGB(0, 176, 80)
'線の太さを変更
.Format.Line.Weight = 2
'線の種類を破線に設定
.Format.Line.DashStyle = msoLineDash
End With
💡 主な線の種類
| スタイル名 | 意味 |
|---|---|
msoLineSolid | 実線(標準) |
msoLineDash | 破線 |
msoLineDot | 点線 |
msoLineDashDot | 一点鎖線 |
msoLineDashDotDot | 二点鎖線 |
4. 折れ線グラフのマーカーを設定する
折れ線グラフや散布図では、データ点に「マーカー」を付けることができます。
With ActiveSheet.ChartObjects(1).Chart.SeriesCollection(1)
.MarkerStyle = xlMarkerStyleCircle '丸
.MarkerSize = 8 'サイズ指定
.MarkerForegroundColor = RGB(0, 0, 0)
.MarkerBackgroundColor = RGB(255, 255, 0)
End With
💡 主なマーカーの種類
| 定数名 | 形状 |
|---|---|
xlMarkerStyleCircle | ○(丸) |
xlMarkerStyleSquare | ■(四角) |
xlMarkerStyleTriangle | ▲(三角) |
xlMarkerStyleDiamond | ◆(ひし形) |
xlMarkerStyleX | ×(バツ) |
5. 系列名を変更する
凡例やツールチップに表示される系列名も変更可能です。
With ActiveSheet.ChartObjects(1).Chart.SeriesCollection(1)
.Name = "2024年 売上推移"
End With
これにより、見やすく意味のある凡例にすることができます。
6. 系列をまとめて一括設定する
複数の系列を同じ書式にしたい場合は、For Each でループします。
Sub FormatAllSeries()
Dim ch As Chart
Dim s As Series
Set ch = ActiveSheet.ChartObjects(1).Chart
For Each s In ch.SeriesCollection
With s.Format.Line
.ForeColor.RGB = RGB(0, 112, 192) '青系統で統一
.Weight = 1.5
End With
Next s
End Sub
この方法なら、デザイン統一が一瞬で完了します。
7. まとめ
| 設定項目 | プロパティ例 | 説明 |
|---|---|---|
| 塗りつぶし色 | .Format.Fill.ForeColor.RGB | 棒グラフ・円グラフ用 |
| 線の色 | .Format.Line.ForeColor.RGB | 折れ線グラフなど |
| 線の太さ | .Format.Line.Weight | ピクセル単位 |
| 線の種類 | .Format.Line.DashStyle | 実線・破線など |
| マーカー | .MarkerStyle・.MarkerSize | 散布図・折れ線に使用 |
| 系列名 | .Name | 凡例名を変更 |
💡ポイント
SeriesCollection(番号)で系列を指定- 棒グラフは Fill、折れ線グラフは Line
.Nameプロパティで凡例表示もわかりやすく- 複数系列の整形は
For Eachループが便利
コメント