Excelの折れ線グラフなどで、特定の値を目立たせるためにマーカーの形や色を変える処理は、視認性を高める上で非常に有効です。本記事では、VBAを使ってグラフ内のデータポイントを条件に応じて動的に強調する方法をご紹介いたします。
目次
サンプルコード:条件に応じたマーカーの強調表示
Sub EmphasizeMarkers()
Dim chartObj As Chart
Dim dataSeries As Series
Dim pt As Point
Dim i As Long
Const HIGH_VALUE As Long = 10000
Const LOW_VALUE As Long = 3000
' グラフの取得(先頭のグラフオブジェクト)
Set chartObj = ActiveSheet.ChartObjects(1).Chart
Set dataSeries = chartObj.SeriesCollection(1)
' 各データポイントに対して処理を行う
For i = 1 To dataSeries.Points.Count
Set pt = dataSeries.Points(i)
Select Case dataSeries.Values(i)
Case Is >= HIGH_VALUE
pt.MarkerStyle = xlMarkerStyleDiamond
pt.MarkerSize = 12
pt.Format.Fill.ForeColor.RGB = RGB(255, 0, 0)
pt.ApplyDataLabels
pt.DataLabel.ShowValue = True
Case Is <= LOW_VALUE
pt.MarkerStyle = xlMarkerStyleTriangle
pt.MarkerSize = 12
pt.Format.Fill.ForeColor.RGB = RGB(0, 0, 255)
pt.ApplyDataLabels
pt.DataLabel.ShowValue = True
Case Else
pt.MarkerStyle = xlMarkerStyleCircle
pt.MarkerSize = 6
pt.Format.Fill.ForeColor.RGB = RGB(128, 128, 128)
pt.HasDataLabel = False
End Select
Next i
End Sub
コード解説
HIGH_VALUE
とLOW_VALUE
を基準として、マーカーの形・色を動的に変更します。MarkerStyle
でマーカーの種類(菱形・三角形・円など)を設定します。MarkerSize
でサイズを調整し、視認性を高めます。ApplyDataLabels
とShowValue
で、ラベルに値を表示させています。ForeColor.RGB
で色指定も柔軟に変更可能です。
応用例
- 異常値(例:売上が1万以上、3000以下)を自動で強調
- 特定の閾値を基準にして注意喚起を促す
- プレゼン資料で視覚的インパクトを出す
注意点
- グラフの系列数や構造に応じて
SeriesCollection(1)
の部分を調整してください。 - 棒グラフでは
MarkerStyle
は機能しません。折れ線グラフなどに適用してください。
まとめ
VBAでマーカーの見た目を動的に変更することで、視覚的に注目させたいデータを効果的に強調できます。報告資料やプレゼン資料の精度を高めたい場面で、非常に有効なテクニックです。