概要
Excel で複数のレポートを運用していると、データ更新に合わせてグラフタイトルを書き換える場面が頻繁に発生いたします。本記事では、VBA の ChartTitle.Text プロパティを利用し、ワークシート「Dashboard」に配置された 1 番目のグラフタイトルを「部署別売上合計」に変更するサンプルを示し、その応用例まで丁寧に解説いたします。
サンプルコード
Sub UpdateChartTitle()
Dim ws As Worksheet ' 操作対象シート
Dim cht As Chart ' グラフ本体
' 対象シートとグラフの取得
Set ws = ThisWorkbook.Worksheets("Dashboard")
Set cht = ws.ChartObjects(1).Chart
' グラフタイトルの設定
With cht
.HasTitle = True
.ChartTitle.Text = "部署別売上合計"
End With
End Sub
コード解説
変数 ws
に操作対象シートを、cht
にチャート本体を格納しております。ChartObjects(1)
はシート上で最も前面にあるグラフを指しますが、特定名称で管理したい場合は ChartObjects("SalesTrend")
のように名前で取得する方法もございます。HasTitle
を True
に設定してから ChartTitle.Text
に文字列を代入することで、既存タイトルが上書きされます。
応用
タイトルに日付や対象期間を自動挿入したい場合、Format(Date, "yyyy/mm/dd")
関数やセル参照を組み合わせることで、レポート生成日に応じた可変タイトルを実現できます。また、グラフが複数存在する場合は For Each
ループで ChartObjects
を巡回し、共通フォーマットのタイトルを一括適用することも可能です。
まとめ
ChartTitle.Text プロパティを用いると、手作業に頼らずグラフタイトルを即時反映できます。シート名やグラフ名を変数で管理し、日付関数やループ処理を組み合わせれば、定期レポートの更新作業をさらに効率化できますので、ぜひご活用ください。