Home » エクセルマクロ・Excel VBAの使い方 » グラフ・Chart » VBAで凡例の枠線を非表示に

動作検証バージョン:64bit Windows 10 Pro + 32bit Excel(バージョン2208 ビルド15601.20148 Microsoft Store)

「vbaでグラフの凡例の枠線をなしにする」
といった検索キーワードで、このサイト『インストラクターのネタ帳』へアクセスがありました。

VBAで凡例の枠線を非表示にする基本

凡例の表示されているグラフがアクティブな状態で、以下のコードを実行すると、凡例の枠線が非表示になります。

ActiveChart.Legend.Format.Line.Visible = msoFalse

グラフがアクティブでない状態や、そもそも凡例が表示されていない場合には、実行時エラーが発生します。

下図のような階層を辿ると、凡例の枠線の表示/非表示を操作できます。

Chartオブジェクト
 └ Legendオブジェクト
   └ ChartFormatオブジェクト
     └ LineFormatオブジェクト
       └ Visibleプロパティ

取得するためのプロパティの名前と、取得できるオブジェクトの名前とが一致していない部分があるため、Chartを操作するExcel VBAのコードに慣れていない方には、難易度が高いでしょうか。

凡例の枠線を非表示にするサンプルマクロ

以下のExcelマクロを実行すると、アクティブシート上に存在する全埋め込みグラフの枠線が非表示になります。

Sub 凡例の枠線を非表示に()
 Dim cho As ChartObject
 For Each cho In ActiveSheet.ChartObjects
  If cho.Chart.HasLegend Then
   cho.Chart.Legend.Format.Line.Visible = msoFalse
  End If
 Next
End Sub

ワークシート上に存在する全ChartObjectオブジェクトに対するFor Each~Next文の中で、

Dim cho As ChartObject
For Each cho In ActiveSheet.ChartObjects

先ほどお伝えした「Chart - Legend - ChartFormat - LineFormat - Visibleプロパティ」を操作しています。

  cho.Chart.Legend.Format.Line.Visible = msoFalse

凡例自体が表示されていないときに、上記の操作を行おうとすると実行時エラーが発生してしまうため、Chart.HasLegendプロパティで「凡例が存在する場合」という条件分岐を行っています。

 If cho.Chart.HasLegend Then

最終更新日時:2022-09-30 17:52

[スポンサードリンク]

Home » エクセルマクロ・Excel VBAの使い方 » グラフ・Chart » VBAで凡例の枠線を非表示に

「グラフ・Chart」の記事一覧

検索


Copyright © インストラクターのネタ帳 All Rights Reserved.

.