大体でIT

-ちょっと使えるネタを紹介-

大体でIT

Excel VBAで、グラフのタイトルと凡例の書式設定をする方法について、ご紹介します。タイトルと凡例の表示と非表示は、「HasTitle」と「HasLegend」でできます。グラフの書式設定を最初からVBAでやると大変なので、「ベース」となるグラフを作っておいて、コピーして利用すると効率的です。

はじめに

この記事では、タイトルと凡例の書式設定について、ご紹介します。

グラフの書式設定は、たくさんのVBAコードがあるので、最初からVBAだけで書式設定をすると大変です。

「ベース」となるグラフを作成しておいて、一部の書式をVBAで変更する、というのが効率的です。

では、タイトルと凡例の書式設定について、解説していきます。

この記事で紹介すること

  • VBAでタイトルと凡例の書式設定をする方法

目次から見たい項目へ移動すると便利ですよ。

目次

VBAコードまとめ

グラフのタイトルや凡例を設定するVBAコードについて、まとめています。

VBAコードだけを確認したい場合に、ご活用ください。

'【タイトル】

'タイトルの表示/非表示
ActiveSheet.ChartObjects(1).Chart.HasTitle = True 'タイトルを表示
ActiveSheet.ChartObjects(1).Chart.HasTitle = False 'タイトルを非表示
 
'タイトルを重ねる/重ねない
ActiveSheet.ChartObjects(1).Chart.ChartTitle.IncludeInLayout = False '重ねて表示
ActiveSheet.ChartObjects(1).Chart.ChartTitle.IncludeInLayout = True '重ねない
  
'中央に表示
ActiveSheet.ChartObjects(1).Chart.ChartTitle.Position = xlChartElementPositionAutomatic '中央に表示
 
'タイトルのテキストの書式
ActiveSheet.ChartObjects(1).Chart.ChartTitle.Text = "売上一覧" 'タイトルのテキスト
ActiveSheet.ChartObjects(1).Chart.ChartTitle.Font.Color = RGB(255, 0, 0) '文字色
ActiveSheet.ChartObjects(1).Chart.ChartTitle.Font.Size = 20 '文字サイズ
 
'タイトルの背景色
ActiveSheet.ChartObjects(1).Chart.ChartTitle.Format.Fill.Visible = msoTrue '塗りつぶしありにする
ActiveSheet.ChartObjects(1).Chart.ChartTitle.Format.Fill.ForeColor.RGB = RGB(255, 255, 0) '背景色
ActiveSheet.ChartObjects(1).Chart.ChartTitle.Format.Fill.Transparency = 0.5 '透過率
ActiveSheet.ChartObjects(1).Chart.ChartTitle.Format.Fill.Visible = msoFalse '塗りつぶしなし
 
'タイトルの枠線
ActiveSheet.ChartObjects(1).Chart.ChartTitle.Format.Line.Visible = msoTrue '塗りつぶしありにする
ActiveSheet.ChartObjects(1).Chart.ChartTitle.Format.Line.ForeColor.RGB = RGB(255, 0, 0) '赤色
ActiveSheet.ChartObjects(1).Chart.ChartTitle.Format.Line.Transparency = 0.5 '透過率
ActiveSheet.ChartObjects(1).Chart.ChartTitle.Format.Line.Weight = 3 '太さ
ActiveSheet.ChartObjects(1).Chart.ChartTitle.Format.Line.Visible = msoFalse '塗りつぶしなし
 

'【凡例】

'凡例の表示/非表示
ActiveSheet.ChartObjects(1).Chart.HasLegend = True '凡例を表示
ActiveSheet.ChartObjects(1).Chart.HasLegend = False '凡例を非表示

'凡例を重ねる/重ねない
ActiveSheet.ChartObjects(1).Chart.Legend.IncludeInLayout = True 'グラフと重ねない
ActiveSheet.ChartObjects(1).Chart.Legend.IncludeInLayout = False 'グラフと重ねる

'凡例の位置
ActiveSheet.ChartObjects(1).Chart.Legend.Position = xlTop '上に表示
ActiveSheet.ChartObjects(1).Chart.Legend.Position = xlBottom '下に表示
ActiveSheet.ChartObjects(1).Chart.Legend.Position = xlRight '右に表示
ActiveSheet.ChartObjects(1).Chart.Legend.Position = xlLeft '左に表示

'凡例の背景色
ActiveSheet.ChartObjects(1).Chart.Legend.Format.Fill.Visible = msoTrue '塗りつぶしあり
ActiveSheet.ChartObjects(1).Chart.Legend.Format.Fill.ForeColor.RGB = RGB(255, 255, 0) '色
ActiveSheet.ChartObjects(1).Chart.Legend.Format.Fill.Transparency = 0.5 '透過率
ActiveSheet.ChartObjects(1).Chart.Legend.Format.Fill.Visible = msoFalse '塗りつぶしなし
 
'凡例の枠線
ActiveSheet.ChartObjects(1).Chart.Legend.Format.Line.Visible = msoTrue '塗りつぶしあり
ActiveSheet.ChartObjects(1).Chart.Legend.Format.Line.ForeColor.RGB = RGB(255, 255, 0) '色
ActiveSheet.ChartObjects(1).Chart.Legend.Format.Line.Transparency = 0.5 '透過率
ActiveSheet.ChartObjects(1).Chart.Legend.Format.Line.Weight = 4 '太さ
ActiveSheet.ChartObjects(1).Chart.Legend.Format.Line.Visible = msoFalse '塗りつぶしなし

では、解説していきます。

グラフのタイトルを設定する

グラフのタイトルを設定してみます。

タイトルの表示と非表示

タイトルの表示と非表示にする方法です。

タイトルの表示

タイトルを表示してみます。

使うVBAコードは、「.HasTitle = True」です。

Sub TEST1()
    
    With ActiveSheet.ChartObjects(1).Chart
        .HasTitle = True 'タイトルを表示
    End With
    
End Sub

グラフを用意しておきます。

グラフを用意しておきます

では、VBAコードを実行してみます。

タイトルの表示できました

タイトルの「表示」できました。

タイトルの非表示

タイトルを非表示にしてみます。

使うVBAコードは、「.HasTitle = False」です。

Sub TEST2()
    
    With ActiveSheet.ChartObjects(1).Chart
        .HasTitle = False 'タイトルを非表示
    End With
    
End Sub

では、VBAコードを実行してみます。

タイトルを非表示にできました

タイトルを「非表示」にできました。

位置

タイトルの「位置」を設定してみます。

グラフに重ねて表示

グラフに重ねて表示してみます。

使うVBAコードは、「.IncludeInLayout = False」です。

Sub TEST3()
    
    'タイトル
    With ActiveSheet.ChartObjects(1).Chart.ChartTitle
        .IncludeInLayout = False '重ねて表示
    End With
    
End Sub

グラフを用意しておきます。

グラフを用意しておきます

では、VBAコードを実行してみます。

VBAでグラフに重ねて表示できた

タイトルを、グラフに重ねて表示できました。

重ねないで中央に表示

重ねないで中央に表示してみます。

デフォルトに戻すという感じです。

使うVBAコードは、「.IncludeInLayout = True」と「.Position」です。

Sub TEST4()
    
    'タイトル
    With ActiveSheet.ChartObjects(1).Chart.ChartTitle
        .IncludeInLayout = True '重ねない
        .Position = xlChartElementPositionAutomatic '中央に表示
    End With
    
End Sub

グラフを用意しておきます。

グラフを用意しておきます

では、VBAコードを実行してみます。

VBAで重ねないで中央に表示できた

タイトルを、グラフに重ねないで中央に表示できました。

テキストの書式

タイトルの「テキストの書式」を設定してみます。

テキストの入力と、文字色、文字サイズを設定します。

使うVBAコードは、「.ChartTitle」です。

Sub TEST5()
    
    'タイトル
    With ActiveSheet.ChartObjects(1).Chart.ChartTitle
        .Text = "売上一覧"
        .Font.Color = RGB(255, 0, 0) '赤色
        .Font.Size = 20 '文字サイズ
    End With
    
End Sub

グラフを用意しておきます。

グラフを用意

グラフを用意

では、VBAコードを実行してみます。

テキスト入力、文字色、文字サイズを設定

テキスト入力、文字色、文字サイズを設定

テキスト入力、文字色、文字サイズを設定できました。

背景の書式

背景の書式を設定してみます。

使うオブジェクトは、「.ChartTitle.Format.Fill」です。

背景色、透過率を設定

背景色、透過率を設定してみます。

塗りつぶしあり「.Visible = msoTrue」にして、「.ForeColor.RGB」と「.Transparency」で背景色と透過率を設定します。

Sub TEST6()
    
    'タイトルの背景
    With ActiveSheet.ChartObjects(1).Chart.ChartTitle.Format.Fill
        .Visible = msoTrue '塗りつぶしありにする
        .ForeColor.RGB = RGB(255, 255, 0) '黄色
        .Transparency = 0.5 '透過率
    End With
    
End Sub

グラフを用意しておきます。

グラフを用意しておきます

では、VBAコードを実行してみます。

背景色、透過率を設定できた

背景色、透過率を設定できました。

背景色をなくす

タイトルの背景色を塗りつぶしなしにしてみます。

塗りつぶしなしにするには、「.Visible = msoFalse」を使います。

Sub TEST7()
    
    'タイトルの背景
    With ActiveSheet.ChartObjects(1).Chart.ChartTitle.Format.Fill
        .Visible = msoFalse '塗りつぶしなし
    End With
    
End Sub

グラフを用意しておきます。

グラフを用意しておきます。

では、VBAコードを実行してみます。

背景色をなしにできた

背景色をなしにできました。

枠線の書式

タイトルの「枠線」の書式を設定してみます。

タイトルの「枠線」のオブジェクトは、「.ChartTitle.Format.Line」になります。

色、透過率、線の太さを設定

色、透過率、線の太さを設定してみます。

「.Visible = msoTrue」で塗りつぶしありにして、「.ForeColor.RGB」と「.Transparency」、「.Weight」で、背景色と透過率、枠線の太さを設定します。

Sub TEST8()
    
    'タイトルの枠線
    With ActiveSheet.ChartObjects(1).Chart.ChartTitle.Format.Line
        .Visible = msoTrue '塗りつぶしありにする
        .ForeColor.RGB = RGB(255, 0, 0) '赤色
        .Transparency = 0.5 '透過率
        .Weight = 3 '太さ
    End With
    
End Sub

グラフを用意しておきます。

グラフを用意しておきます

では、VBAコードを実行してみます。

色、透過率、線の太さを設定できた

タイトルの枠線の「色」、「透過率」、「線の太さ」を設定できました。

枠線を消す

枠線を消すしてみます。

枠線を消すには、「.Visible = msoFalse」とすれば、できます。

Sub TEST9()
    
    'タイトルの枠線
    With ActiveSheet.ChartObjects(1).Chart.ChartTitle.Format.Line
        .Visible = msoFalse '塗りつぶしなし
    End With
    
End Sub

グラフを用意しておきます。

グラフを用意しておきます

では、VBAコードを実行してみます。

枠線を消せました

タイトルの枠線を消せました。

グラフの凡例を設定する

グラフの「凡例」を設定してみます。

凡例の表示と非表示

凡例の表示と非表示にする方法です。

「凡例」を表示

「凡例」を表示にしてみます。

凡例を表示するには、「.HasLegend = True」を使います。

Sub TEST10()
    
    With ActiveSheet.ChartObjects(1).Chart
        .HasLegend = True '凡例を表示
    End With
    
End Sub

グラフを用意しておきます。

グラフを用意しておきます

では、VBAコードを実行してみます。

「凡例」を表示にできました

「凡例」を表示にできました。

「凡例」を非表示

次は、「凡例」を非表示にしてみます。

「.HasLegend = False」でできます。

Sub TEST11()
    
    With ActiveSheet.ChartObjects(1).Chart
        .HasLegend = False '凡例を非表示
    End With
    
End Sub

では、VBAコードを実行してみます。

「凡例」を非表示にできました

「凡例」を非表示にできました。

位置

凡例の「位置」を設定してみます。

凡例のオブジェクトは、「.Legend」です。

グラフと重ねないで「下」に表示

グラフと重ねないで「下」に表示してみます。

重ねないで表示するには、「.IncludeInLayout = True」を使います。

位置は、「.Position」で設定します。

Sub TEST12()
    
    '凡例
    With ActiveSheet.ChartObjects(1).Chart.Legend
        .IncludeInLayout = True 'グラフと重ねない
        .Position = xlBottom '下に表示
    End With
    
End Sub

グラフを用意しておきます。

グラフを用意しておきます

では、VBAコードを実行してみます。

グラフと重ねないで「下」に表示できました

グラフと重ねないで「下」に表示できました。

位置の設定一覧は、次のようになります。

位置の設定一覧

'凡例
With ActiveSheet.ChartObjects(1).Chart.Legend
    .Position = xlTop '上に表示
    .Position = xlBottom '下に表示
    .Position = xlRight '右に表示
    .Position = xlLeft '左に表示
End With

という感じです。

グラフに重ねる

グラフに重ねる場合は、「.IncludeInLayout = False」とします。

Sub TEST13()
    
    '凡例
    With ActiveSheet.ChartObjects(1).Chart.Legend
        .IncludeInLayout = False 'グラフと重ねる
    End With
    
End Sub

グラフを用意しておきます。

グラフを用意

では、VBAコードを実行してみます。

「凡例」をグラフに重ねる

「凡例」をグラフに重ねることができました。

背景の書式

凡例の「背景の書式」を設定してみます。

使うオブジェクトは、「.Legend.Format.Fill」です。

背景色、透過率を設定

背景色、透過率を設定してみます。

「.Visible = msoTrue」で、塗りつぶしありにして、「.ForeColor.RGB」と「.Transparency」で背景色と透過率を設定します。

Sub TEST14()
    
    '凡例の背景
    With ActiveSheet.ChartObjects(1).Chart.Legend.Format.Fill
        .Visible = msoTrue '塗りつぶしあり
        .ForeColor.RGB = RGB(255, 255, 0) '色
        .Transparency = 0.5 '透過率
    End With
    
End Sub

グラフを用意しておきます。

グラフを用意しておきます

では、VBAコードを実行してみます。

背景色、透過率を設定できました

背景色、透過率を設定できました。

背景色をなくす

背景色を塗りつぶしなしにするには、「.Visible = msoFalse」とします。

Sub TEST15()
    
    '凡例の背景
    With ActiveSheet.ChartObjects(1).Chart.Legend.Format.Fill
        .Visible = msoFalse '塗りつぶしなし
    End With
    
End Sub

グラフを用意しておきます。

グラフを用意しておきます

では、VBAコードを実行してみます。

背景色をなしにできました

背景色をなしにできました。

枠線の書式

凡例の「枠線の書式」を設定してみます。

凡例の「枠線の書式」は、「.Legend.Format.Line」を使います。

色、透過率、線の太さを設定

凡例の枠線について、「色」、「透過率」、「線の太さ」を設定してみます。

「.Visible = msoTrue」で枠線を塗りつぶしありにして、「.ForeColor.RGB」と「.Transparency」、「.Weight」で背景色と、透過率、太さを設定します。

Sub TEST16()
    
    '凡例の枠線
    With ActiveSheet.ChartObjects(1).Chart.Legend.Format.Line
        .Visible = msoTrue '塗りつぶしあり
        .ForeColor.RGB = RGB(255, 255, 0) '色
        .Transparency = 0.5 '透過率
        .Weight = 4 '太さ
    End With
    
End Sub

グラフを用意しておきます。

グラフを用意しておきます

では、VBAコードを実行してみます。

色、透過率、線の太さを設定できました

凡例の枠線について、色、透過率、線の太さを設定できました。

枠線を消す

凡例の枠線を消してみます。

「.Visible = msoFalse」で塗りつぶしなしにします。

Sub TEST17()
    
    '凡例の枠線
    With ActiveSheet.ChartObjects(1).Chart.Legend.Format.Line
        .Visible = msoFalse '塗りつぶしなし
    End With
    
End Sub

グラフを用意しておきます。

グラフを用意しておきます

では、VBAコードを実行してみます。

枠線をなしにできました

枠線をなしにできました。

おわりに

この記事では、タイトルと凡例の書式設定について、ご紹介しました。

グラフの書式設定は、たくさんのVBAコードがあるので、最初からVBAだけで書式設定をすると大変です。

「ベース」となるグラフを作成しておいて、一部の書式をVBAで変更する、というのが効率的です。

参考になればと思います。最後までご覧くださいまして、ありがとうございました。

関連する記事から探す

カテゴリから探す

カテゴリから見たい項目を探すと便利ですよ。

アーカイブから探す