【VBA】グラフのタイトルや凡例を設定【HasTitleとHasLegendを使う】
【VBA】グラフのタイトルや凡例を設定【HasTitleとHasLegendを使う】

【VBA】グラフのタイトルや凡例を設定【HasTitleとHasLegendを使う】

大体でIT 大体でIT

2021/6/11

【VBA】グラフのタイトルや凡例を設定【HasTitleとHasLegendを使う】 Excel VBA

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

はじめに

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

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

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

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

この記事で紹介すること

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

こちらの記事も参考になります

  • グラフの作成と操作をマスターする
  • 折れ線グラフを作成する
  • 散布図を作成する
  • 棒グラフを作成する
  • グラフや系列の種類を変更する
  • グラフの参照範囲を設定する
  • グラフの名前の取得と設定
  • グラフの削除と初期化
  • グラフの位置とサイズを設定
  • グラフのタイトルと凡例の設定 ←こちらの記事
  • グラフの軸の設定
  • グラフの軸ラベルの設定
  • グラフの系列名を取得
  • グラフの系列の削除と非表示
  • グラフの系列を追加する
  • グラフで系列を2軸に設定
  • グラフの系列の設定
  • グラフのデータラベルの設定
  • グラフのコピー
  • 別シートにグラフを作成
  • 配列からグラフを作成
  • グラフを画像として出力する

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

目次

  • 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コードは、「.IncludeInLayout = True」と「.Position」です。

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

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

では、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で変更する、というのが効率的です。

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

関連する記事から探す

  • グラフの作成と操作をマスターする
  • 折れ線グラフを作成する
  • 散布図を作成する
  • 棒グラフを作成する
  • グラフや系列の種類を変更する
  • グラフの参照範囲を設定する
  • グラフの名前の取得と設定
  • グラフの削除と初期化
  • グラフの位置とサイズを設定
  • グラフのタイトルと凡例の設定 ←こちらの記事
  • グラフの軸の設定
  • グラフの軸ラベルの設定
  • グラフの系列名を取得
  • グラフの系列の削除と非表示
  • グラフの系列を追加する
  • グラフで系列を2軸に設定
  • グラフの系列の設定
  • グラフのデータラベルの設定
  • グラフのコピー
  • 別シートにグラフを作成
  • 配列からグラフを作成
  • グラフを画像として出力する
📎📎📎📎📎📎📎📎📎📎
BOT