Excel VBAでグラフタイトルを動的に設定する手順

目次

概要

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") のように名前で取得する方法もございます。HasTitleTrue に設定してから ChartTitle.Text に文字列を代入することで、既存タイトルが上書きされます。

応用

タイトルに日付や対象期間を自動挿入したい場合、Format(Date, "yyyy/mm/dd") 関数やセル参照を組み合わせることで、レポート生成日に応じた可変タイトルを実現できます。また、グラフが複数存在する場合は For Each ループで ChartObjects を巡回し、共通フォーマットのタイトルを一括適用することも可能です。

まとめ

ChartTitle.Text プロパティを用いると、手作業に頼らずグラフタイトルを即時反映できます。シート名やグラフ名を変数で管理し、日付関数やループ処理を組み合わせれば、定期レポートの更新作業をさらに効率化できますので、ぜひご活用ください。

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

この記事を書いた人

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

目次