Home » エクセルマクロ・Excel VBAの使い方 » グラフ・Chart » VBAでグラフのデータラベルを非表示にする

VBAでグラフのデータラベルを非表示にする

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

VBAでグラフのデータラベルを非表示にする

「vba グラフ 値 消す」
「excel vba グラフ 値非表示」
といった検索で、このサイト・インストラクターのネタ帳へのアクセスが時折あります。

VBA(Visual Basic for Applications)で、グラフのデータラベルを非表示にするには、どのようなコードを書けばいいのかを探していた方による検索でしょうか。

「vba データラベル 表示しない」
という検索キーワードは、間違いなく、グラフのデータラベルを非表示にする方法を探していらしたのでしょう。

[スポンサードリンク]

アクティブなグラフのデータラベルを非表示にするサンプルマクロ

グラフを選択しておいてから、以下のSubプロシージャを実行すると、アクティブなグラフのデータラベルが非表示になります。


Sub データラベルを非表示に_ActiveChart()
 On Error GoTo ErrHndl
 ActiveChart.SetElement msoElementDataLabelNone
 Application.ScreenUpdating = True
 Exit Sub

ErrHndl:
 Err.Clear
 MsgBox "グラフを選択しておいてから実行してください。"
End Sub

データラベルを非表示にするオブジェクト式は、いくつかありますが、一括非表示にする場合、上記のようにChartオブジェクトのSetElementメソッドの引数に、定数・msoElementDataLabelNoneを指定するのが、簡単です。

アクティブなグラフのデータラベルを非表示にするには、
  ActiveChart.SetElement msoElementDataLabelNone
の一行だけでいいのですけれど、画面の更新を行わないと、データラベルが残ったままのように見えてしまうケースもあるため、
  Application.ScreenUpdating = True
を入れています。

アクティブなブックの全グラフシートのデータラベルを非表示にするサンプルマクロ

以下のようなSubプロシージャで、アクティブブックの全グラフシートのデータラベルを非表示にできます。


Sub データラベルを非表示に_全グラフシート()
 Dim cht As Chart

 For Each cht In Charts
  cht.SetElement msoElementDataLabelNone
  Application.ScreenUpdating = True
 Next cht
End Sub

For Each~Nextループの中で、
  For Each cht In Charts

先ほどと同じく、SetElementメソッドの引数に、定数・msoElementDataLabelNoneを指定して、
  cht.SetElement msoElementDataLabelNone

画面の更新を行っています。
  Application.ScreenUpdating = True

アクティブシートの全グラフオブジェクトのデータラベルを非表示にするサンプルマクロ

以下のようなSubプロシージャで、アクティブシート上の全グラフオブジェクトのデータラベルを非表示にできます。


Sub データラベルを非表示に_アクティブシートの全グラフオブジェクト()
 Dim cho As ChartObject

 For Each cho In ActiveSheet.ChartObjects
  cho.Chart.SetElement msoElementDataLabelNone
 Next cho
 Application.ScreenUpdating = True
End Sub

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

やっぱり、ChartオブジェクトのSetElementメソッドの引数に、定数・msoElementDataLabelNoneを指定しています。
   cho.Chart.SetElement msoElementDataLabelNone

SetElementメソッドを持っているのはChartオブジェクトですから、ChartObjectオブジェクトのChartプロパティでChartオブジェクトを取得しています。

アクティブシート上のグラフオブジェクトに対する処理なので、このマクロの場合は、For Each~Nextループを抜けてから、画面の更新を行っています。
  Next cho
  Application.ScreenUpdating = True

[スポンサードリンク]

Home » エクセルマクロ・Excel VBAの使い方 » グラフ・Chart » VBAでグラフのデータラベルを非表示にする

TrackBack:0

TrackBack URL

Home » エクセルマクロ・Excel VBAの使い方 » グラフ・Chart » VBAでグラフのデータラベルを非表示にする

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

検索


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

.