Excel VBA グラフのタイトルを操作する

グラフ作成/操作

VBAでワークシート上にあるグラフのタイトルを操作する方法をご説明します。

グラフのタイトルの表示方法から、文字列、位置、サイズ、色などの操作方法をサンプルでご紹介します。

グラフの操作はオブジェクトの階層が複雑なため、わかりやすく説明したいと思います。

1つ操作を覚えてしまえば、ワークシート上に設置された複数のグラフのタイトルを一括で変更するなども容易です。

その他のグラフの操作については下記記事をご覧ください。

1.グラフのタイトルを操作する方法

グラフのタイトルを操作するには、「ChartTitle」オブジェクト操作します。

が、このオブジェクトが厄介です。

グラフのタイトルのオブジェクト

グラフのタイトルを操作にするためのオブジェクト構造について簡単にですが、説明したいと思います。

グラフのタイトルの文字列を操作するのが「ChartTitleオブジェクト」で、その4つも下層にある「Fontオブジェクト」でサイズなどの操作を行います。

これだけ見ると混乱しかしませんので、正直ひな形をコピーして操作すればいいと思います。

タイトルの操作のサンプルコードを次でご紹介します。

2.タイトルを操作するサンプルコード

タイトルの表示から位置、文字列の文字の種類、サイズや色などを順番にサンプルコードをご紹介します。

サンプルグラフとして次のようなデータを使って、シンプルなグラフを用意しました。

タイトルを表示する

タイトルを操作する場合に、タイトルが表示されていないグラフはエラーになります。

そのためタイトルを表示する必要があります。

タイトルの表示は「Chart」オブジェクトの「HasTitle」プロパティを、Trueにすることで表示出来ます。

Sub Sample01()

Dim ChartObj    As Object

'グラフを変数に格納
Set ChartObj = ActiveSheet.ChartObjects("グラフ 1")

'取得したグラフのChartオブジェクト
With ChartObj.Chart
    
    'タイトルをグラフに表示する
    .HasTitle = True
    
End With

End Sub

タイトルの文字列を指定しないと、グラフタイトルと表示されます。

タイトルの文字列を指定する

グラフのタイトルを表示したら、タイトルに表示する文字列を指定します。

グラフのタイトルの文字列を指定するには「Chart」オブジェクトの「ChartTitle」オブジェクトの「Text」プロパティを操作します。

Sub Sample02()

Dim ChartObj    As Object

'グラフを変数に格納
Set ChartObj = ActiveSheet.ChartObjects("グラフ 1")

'取得したグラフのChartオブジェクト
With ChartObj.Chart
    
    .HasTitle = True                    'タイトルをグラフに表示する
    .ChartTitle.Text = "年間売上グラフ" 'タイトルの文字列を指定する
    
End With

End Sub

タイトルの位置を変更する

タイトルの位置は「ChartTitle」オブジェクトの「Top」プロパティと「Left」プロパティで指定します。

指定は数値します。

ChartTitle.Top = 10
ChartTitle.Left = 20
タイトルの位置を変更するコード
Sub Sample03()

Dim ChartObj    As Object

'グラフを変数に格納
Set ChartObj = ActiveSheet.ChartObjects("グラフ 1")

'取得したグラフのChartオブジェクト
With ChartObj.Chart
    
    .HasTitle = True                    'タイトルをグラフに表示する
    .ChartTitle.Text = "年間売上グラフ" 'タイトルの文字列を指定する
    .ChartTitle.Top = 10                          'TOP位置
    .ChartTitle.Left = 20                          'Left位置
    
End With

End Sub

タイトルのサイズと色を変更する

サイズと色のオブジェクトは階層が深いので「ChartTitle.Format.TextFrame2.TextRange.Font」のオブジェクトと覚えてください。

「Font」オブジェクトのサイズは「Size」プロパティと色は「.Fill.ForeColor.ObjectThemeColor」で指定します。

色一覧を最後に記述しています。

Sub Sample04()

Dim ChartObj    As Object

'グラフを変数に格納
Set ChartObj = ActiveSheet.ChartObjects("グラフ 1")

'取得したグラフのChartオブジェクト
With ChartObj.Chart
    
    .HasTitle = True                    'タイトルをグラフに表示する
    .ChartTitle.Text = "年間売上グラフ" 'タイトルの文字列を指定する
    .ChartTitle.Top = 5                 'TOP位置
    .ChartTitle.Left = 20               'Left位置
    
    With .ChartTitle.Format.TextFrame2.TextRange.Font
    
        .Size = 16 '文字のサイズ
        .Fill.ForeColor.ObjectThemeColor = 15 '色を指定する
        
    End With
    
End With

End Sub
色一覧

グラフの色を指定する場合は「ObjectThemeColorプロパティ」で指定します。

正直番号を順番に指定してみて、好みの色を指定する方が早いかもしれません。

定数説明
msoNotThemeColor0テーマの色を指定しません
msoThemeColorDark11濃色1
msoThemeColorLight12淡色1
msoThemeColorDark23濃色2
msoThemeColorLight24淡色2
msoThemeColorAccent15アクセント1
msoThemeColorAccent26アクセント2
msoThemeColorAccent37アクセント3
msoThemeColorAccent48アクセント4
msoThemeColorAccent59アクセント5
msoThemeColorAccent610アクセント6
msoThemeColorHyperlink11ハイパーリンク
msoThemeColorFollowedHyperlink12クリックされたハイパーリンク
msoThemeColorText113テキスト1
msoThemeColorBackground114背景1
msoThemeColorText215テキスト2
msoThemeColorBackground216背景2

タイトルとURLをコピーしました