Home » エクセルマクロ・Excel VBAの使い方 » グラフ・Chart » VBAでデータラベルを非表示に-Series.HasDataLabels・Point.HasDataLabel

VBAでデータラベルを非表示に-Series.HasDataLabels・Point.HasDataLabel

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

Chartオブジェクトに用意されているSetElementメソッドを使って、データラベルを非表示にするExcelマクロをご紹介しています。

データラベルを非表示にしたいだけならば、Chart.SetElementメソッドを使うのが簡単ではありますが、条件によって表示/非表示を切り替えるなどしたい場合には、ループ処理が必要です。

系列ごとにデータラベルを非表示にするサンプル

データラベルの表示されているグラフを選択しておいてから以下のSubプロシージャをステップ実行すると、系列ごとにデータラベルが非表示になる様子を観察できます。

Sub 系列ごとにデータラベルを非表示にする()
 Dim srs As Series
 For Each srs In ActiveChart.SeriesCollection
  srs.HasDataLabels = False
 Next
End Sub

系列を表すSeriesオブジェクトに用意されているHasDataLabelプロパティに

Excel.Series.HasDataLabelプロパティ

論理値Falseを設定することで、系列のデータラベルを非表示にできます。

Chart.SeriesCollectionメソッドで取得したSeriesCollectionコレクションに含まれる全Seriesに対してFor Each~Nextループを回して、

Dim srs As Series
For Each srs In ActiveChart.SeriesCollection

順番にSeries.HasDataLabelsプロパティにFalseを指定することで系列のデータラベルを非表示にしています。

系列要素ごとにデータラベルを非表示にする

系列単位ではなく、系列要素単位でもデータラベルの表示/非表示を設定できます。

以下のSubプロシージャをステップ実行すると、系列要素ごとにデータラベルが非表示になる様子を観察できます。

Sub 系列要素ごとにデータラベルを非表示にする()
 Dim srs As Series, pnt As Point
 For Each srs In ActiveChart.SeriesCollection
  For Each pnt In srs.Points
   pnt.HasDataLabel = False
  Next pnt
 Next srs
End Sub

系列要素を表すPointオブジェクトに用意されているHasDataLabelプロパティに

論理値Falseを設定することで、系列要素のデータラベルを非表示にできます。

先ほどのSeries.HasDataLabelsは名前の末尾が「s」がつき、Point.HasDataLabelには「s」はつかないことにも注目しましょう。

先ほどのSeriesオブジェクトに対するFor Each~Nextループの中で、系列要素を表すPointオブジェクトに対してFor Each~Nextループを回して、

Dim srs As Series, pnt As Point
For Each srs In ActiveChart.SeriesCollection
 For Each pnt In srs.Points

順番にPoint.HasDataLabelプロパティにFalseを指定することで系列要素のデータラベルを非表示にしています。

最終更新日時:2022-07-15 15:46

[スポンサードリンク]

Home » エクセルマクロ・Excel VBAの使い方 » グラフ・Chart » VBAでデータラベルを非表示に-Series.HasDataLabels・Point.HasDataLabel

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

検索


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

.