Home » エクセルマクロ・Excel VBAの使い方 » グラフ・Chart » VBAでグラフの凡例を削除する

VBAでグラフの凡例を削除する

対象:Excel2007, Excel2010, Excel2013, Windows版Excel2016

「エクセル マクロ グラフ 凡例 消去」
「excel vba グラフ 凡例 非表示」
「excel vba 凡例 消す」
「excelvba 凡例 削除」
といった検索キーワードで、このサイト・インストラクターのネタ帳へのアクセスが時折あります。

グラフの凡例を削除・非表示にするExcel VBA(Visual Basic for Applications)のコードを探していた方による検索です。

グラフの凡例はLegendオブジェクト

VBAからグラフの凡例を操作するには、ExcelのLegendオブジェクトを利用し、

VBAでグラフの凡例を削除する

凡例を削除するにはClearメソッドやDeleteメソッド、Legendオブジェクトの親オブジェクトであるChartオブジェクトのHasLegendプロパティが使えます。

[スポンサードリンク]

Legend.Deleteメソッドで全グラフシートの凡例を削除するサンプルマクロ

以下のようなSubプロシージャで、アクティブなブックのすべてのグラフシートから凡例を削除できます。


Sub 全グラフシートの凡例を削除する_Legend_Delete()
 Dim cht As Chart

 For Each cht In Charts
 With cht
  If .HasLegend Then .Legend.Delete
 End With
 Next cht
End Sub

凡例が存在しないときにLegend.Deleteメソッドを実行すると、エラーとなってしまいますので、ChartオブジェクトのHasLegendプロパティを事前に調べています。
  With cht
   If .HasLegend Then .Legend.Delete

Chart.HasLegendプロパティで凡例を削除するサンプルマクロ

以下のようなSubプロシージャでも、アクティブなブックのすべてのグラフシートから凡例を削除できます。


Sub 全グラフシートの凡例を削除する_HasLegend()
 Dim cht As Chart

 For Each cht In Charts
  cht.HasLegend = False
 Next cht
End Sub

先のLegend.Deleteメソッドによる凡例削除のプロシージャで、凡例が存在するかどうかチェックするのに利用した、Chart.HasLegendプロパティをFalseに設定することでも凡例を削除できます。

VBAでグラフの凡例を削除する

Legend.Deleteメソッドのほうが、Deleteという単語から削除することが、より明確にはなりますが、シンプルなコードとなるChart.HasLegendプロパティのほうが良さそうです。

アクティブシートの全グラフオブジェクトを削除する

グラフオブジェクトから凡例を削除する場合は、以下のようなプロシージャです。


Sub アクティブシートの全グラフオブジェクトの凡例を削除する()
 Dim cho As ChartObject

 For Each cho In ActiveSheet.ChartObjects
  cho.Chart.HasLegend = False
 Next cho
End Sub

上記のSubプロシージャを実行すると、アクティブシートの全グラフオブジェクトの凡例を削除できます。

アクティブシート上の全グラフオブジェクトに対してFor Each~Nextループを回して、
 For Each cho In ActiveSheet.ChartObjects

ChartオブジェクトのHasLegendプロパティをFalseにしています。
  cho.Chart.HasLegend = False

[スポンサードリンク]

Home » エクセルマクロ・Excel VBAの使い方 » グラフ・Chart » VBAでグラフの凡例を削除する

TrackBack:1

TrackBack URL
VBAで凡例の一部を削除する from インストラクターのネタ帳
凡例の一部を削除するExcel VBAのコードをご紹介しています。

Home » エクセルマクロ・Excel VBAの使い方 » グラフ・Chart » VBAでグラフの凡例を削除する

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

検索


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

.