Excelグラフのバーをクリックしてメッセージを表示する方法【VBA活用術】

Excelで作成したグラフにインタラクティブな動作を加えることで、より直感的でわかりやすい資料を作成できます。本記事では、グラフのバーをクリックしたときに、対応するセルの値をメッセージボックスに表示する方法を、VBAコード付きで丁寧にご紹介いたします。


目次

サンプルコード:バークリックで対応データを表示

以下は、ユーザーがグラフ内のバーをクリックしたときに、対応するセルの隣にある値をメッセージとして表示するコード例です。

Private Sub Chart_MouseDown(ByVal Button As Long, _
    ByVal Shift As Long, ByVal x As Long, ByVal y As Long)

    Dim elementID As Long, seriesID As Long, pointIndex As Long
    Dim dataRange As Range

    ' クリックされた要素を取得
    Me.GetChartElement x, y, elementID, seriesID, pointIndex

    ' 対象が系列(バー)の場合のみ処理
    If elementID = xlSeries Then
        ' 系列の参照元セル範囲を取得
        Set dataRange = Range(Split(Me.SeriesCollection(seriesID).Formula, ",")(2))

        ' 対応するセルの右隣の値をメッセージボックスで表示
        MsgBox dataRange.Cells(pointIndex).Offset(0, 1).Value
    End If
End Sub

コードの解説

  • Chart_MouseDown イベントは、グラフ上でマウスクリックが行われたときに実行されます。
  • GetChartElement メソッドを使って、**クリックされた要素の種類(elementID)や系列番号(seriesID)、ポイント番号(pointIndex)**を取得します。
  • xlSeries であることを確認し、該当系列の Formula から元のセル範囲を特定します。
  • そのセル範囲から pointIndex 番目のセルを取得し、その右隣の値(Offset(0,1))を MsgBox に表示しています。

応用のヒント

  • Offset(0,1) の部分を変えることで、「2列右」や「1行下」の値を参照するなど、表示する内容をカスタマイズできます。
  • メッセージボックスの代わりに UserForm を表示したり、セルの色を変更する などの処理にも応用可能です。

まとめ

Excel VBA を活用すれば、グラフを「見るだけ」から「触って動く」ものへと進化させることができます。今回ご紹介したように、クリック操作に応じたメッセージ表示を加えることで、より視覚的かつインタラクティブなデータ表現が可能になります。

報告書やダッシュボード、分析ツールとしてのExcel活用に、ぜひ取り入れてみてはいかがでしょうか。

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

この記事を書いた人

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

目次