Excelのグラフにおいて、「この数値に注目してほしい」と思う場面は多くあります。そのような場合に便利なのが、吹き出しシェイプの追加です。本記事では、VBAを使用して、指定したデータポイントの位置に自動で吹き出しを表示させる方法をご紹介いたします。
目次
サンプルコード:注目ポイントに吹き出しを表示する
Sub AddCalloutToHighlightPoint()
Dim chartObj As ChartObject
Dim chart As Chart
Dim point As Point
Dim shape As Shape
' グラフオブジェクトと系列のポイントを取得
Set chartObj = ActiveSheet.ChartObjects(1)
Set chart = chartObj.Chart
Set point = chart.SeriesCollection(1).Points(2) ' 2番目のポイントを注目対象とする
' 吹き出しシェイプの追加
Set shape = ActiveSheet.Shapes.AddShape( _
Type:=msoShapeRectangularCallout, _
Left:=chartObj.Left + point.Left, _
Top:=chartObj.Top + point.Top - 35, _
Width:=60, Height:=30)
' 吹き出しのテキストを設定
shape.TextFrame.Characters.Text = "注目!"
End Sub
コードの解説
ChartObjects(1)
:アクティブシート内の最初のグラフを対象にしています。SeriesCollection(1).Points(2)
:グラフの1つ目の系列の2番目のポイントを対象にしています。AddShape
:吹き出し(msoShapeRectangularCallout
)を追加しています。Left
およびTop
:グラフ内の該当ポイントの位置を元に、シェイプの表示位置を調整しています。TextFrame.Characters.Text
:吹き出しの中に表示する文字列(ここでは「注目!」)を設定しています。
活用例
- プレゼン資料で特定の数値を目立たせたいとき
- 重要な指標を自動的にマーキングしたいとき
- グラフに説明を加えたいとき
注意点
- 複数のグラフやポイントに対応する場合は、
Points(n)
の部分をループ処理に変更することで応用できます。 - 吹き出しのサイズや位置はグラフのサイズに合わせて微調整が必要な場合があります。
まとめ
Excel VBA を活用することで、視覚的に「ここが重要です」と強調したいデータポイントに対し、動的に吹き出しを追加することが可能です。資料の可読性やインパクトを高めたい場合にぜひご活用ください。