Excel VBAでグラフ内の特定値を強調表示する方法(バーの色を変更)

Excelの棒グラフでは、特定のデータだけ目立たせたい場面が多くあります。たとえば、売上が基準を超えた箇所を赤く表示したい場合などです。

本記事では、Excel VBAを使用して特定の値を持つバーだけ色を変更し、視覚的に注目させる方法をご紹介いたします。


目次

サンプルコード:特定値のバーを赤くするVBAマクロ

Sub HighlightTargetBar()
    Dim chartObj As Chart
    Dim mainSeries As Series
    Dim i As Long
    Dim threshold As Long

    ' グラフの取得(先頭のグラフ)
    Set chartObj = ActiveSheet.ChartObjects(1).Chart

    ' 対象の系列(1番目)を取得
    Set mainSeries = chartObj.SeriesCollection(1)

    ' 注目させたい基準値
    threshold = 12000

    ' 値を走査して条件一致したバーだけ色変更
    For i = 1 To mainSeries.Points.Count
        If mainSeries.Values(i) = threshold Then
            mainSeries.Points(i).Format.Fill.ForeColor.RGB = RGB(255, 0, 0) ' 赤色
        End If
    Next i
End Sub

コード解説

ChartObjects(1).Chart

ワークシート内の最初のグラフオブジェクトを取得します。

SeriesCollection(1)

棒グラフの1つ目のデータ系列を対象としています。

Points(i)

それぞれのバー(データポイント)を個別に取得し、条件に合致するバーのみ色を変更しています。

RGB(255, 0, 0)

バーの塗りつぶし色を赤色に設定しています。他の色も自由に変更可能です。


よくある利用シーン

  • 売上が特定金額を超えた箇所を強調表示したい
  • 達成値・目標値に一致した項目だけ色を変えたい
  • アウトライヤー(異常値)を目立たせたい

注意点

  • グラフの種類は「棒グラフ」または「縦棒グラフ」が対象です。
  • 値の一致は完全一致(=)で比較されます。範囲での条件(例:>=)も可能です。
  • VBAを実行する前に、対象のグラフがアクティブシートに存在している必要があります。

応用のヒント

以下のような条件も可能です:

If mainSeries.Values(i) > 15000 Then
    mainSeries.Points(i).Format.Fill.ForeColor.RGB = RGB(0, 128, 0) ' 緑色で強調
End If

まとめ

Excel VBAを活用することで、特定の数値だけを視覚的に強調し、データの注目ポイントを明確にできます。手作業で色を変更する必要がなくなり、効率的なグラフ作成や報告書の作成が可能になります。

視覚的なインパクトを持たせたい業務レポートや、プレゼン用の資料にも大変効果的です。

よかったらシェアしてね!
  • URLをコピーしました!
  • URLをコピーしました!

この記事を書いた人

私が勉強したこと、実践したこと、してることを書いているブログです。
主に資産運用について書いていたのですが、
最近はプログラミングに興味があるので、今はそればっかりです。

目次