【VBA】グラフのタイトルや凡例を設定【HasTitleとHasLegendを使う】
大体でIT 大体でIT2021/6/11
【VBA】グラフのタイトルや凡例を設定【HasTitleとHasLegendを使う】 Excel VBAExcel 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軸に設定
- グラフの系列の設定
- グラフのデータラベルの設定
- グラフのコピー
- 別シートにグラフを作成
- 配列からグラフを作成
- グラフを画像として出力する