概要
売上金額と伸び率など、スケールの異なる系列を同じグラフで比較すると、片方が極端に小さく表示され見づらくなる場合があります。VBA を使って対象系列を第 2 軸に移動させれば、両方の変化を直感的に確認できます。本記事では、シート「Insight」にある 1 番目のグラフ内で系列「GrowthRate」を第 2 軸に設定し、折れ線(マーカー付き)へ変更する手順を解説いたします。
サンプルコード
Sub SetSecondaryAxis()
Dim ws As Worksheet ' 操作対象シート
Dim cht As Chart ' グラフ本体
' シートとグラフを取得
Set ws = ThisWorkbook.Worksheets("Insight")
Set cht = ws.ChartObjects(1).Chart
' 指定系列を第2軸へ移動し、折れ線へ変更
With cht.SeriesCollection("GrowthRate")
.AxisGroup = xlSecondary
.ChartType = xlLineMarkers
End With
End Sub
コード解説
まず Worksheets("Insight")
で対象シートを取得し、ChartObjects(1)
で最前面のグラフを取得しております。SeriesCollection("GrowthRate")
で伸び率の系列を特定し、AxisGroup = xlSecondary
で第 2 軸へ移動します。続けて ChartType = xlLineMarkers
を指定することで、折れ線にマーカーを付加した視認性の高い表示へ変更できます。
応用
複数系列を第 2 軸に割り当てたい場合は、系列名を配列で保持し For Each
ループで同様の設定を行うと効率的です。また、グラフを縦棒+折れ線の形式に変更する際は、第 1 軸を棒グラフ、第 2 軸を折れ線に設定すると、値の大小をバランス良く示すことができます。
まとめ
第 2 軸を活用すると、異なる単位や桁数を持つデータを同一グラフで比較でき、報告資料の可読性が向上いたします。系列名やシート名を変数化すれば、複数グラフへの一括適用も簡単に行えますので、ぜひご活用ください。