Chartオブジェクトに用意されているSetElementメソッドを使って、データラベルを非表示にするExcelマクロをご紹介しています。
データラベルを非表示にしたいだけならば、Chart.SetElementメソッドを使うのが簡単ではありますが、条件によって表示/非表示を切り替えるなどしたい場合には、ループ処理が必要です。
系列ごとにデータラベルを非表示にするサンプル
データラベルの表示されているグラフを選択しておいてから以下のSubプロシージャをステップ実行すると、系列ごとにデータラベルが非表示になる様子を観察できます。
Dim srs As Series
For Each srs In ActiveChart.SeriesCollection
srs.HasDataLabels = False
Next
End Sub
系列を表すSeriesオブジェクトに用意されているHasDataLabelプロパティに
論理値Falseを設定することで、系列のデータラベルを非表示にできます。
Chart.SeriesCollectionメソッドで取得したSeriesCollectionコレクションに含まれる全Seriesに対してFor Each~Nextループを回して、
Dim srs As Series For Each srs In ActiveChart.SeriesCollection
順番にSeries.HasDataLabelsプロパティにFalseを指定することで系列のデータラベルを非表示にしています。
系列要素ごとにデータラベルを非表示にする
系列単位ではなく、系列要素単位でもデータラベルの表示/非表示を設定できます。
以下の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
- Newer:HorizontalAlignment・VerticalAlignmentプロパティを持つExcelのオブジェクト一覧
- Older:3月31日までの期間限定キャンペーンで『VBAユーザーのためのPython超入門』が320円に
Home » エクセルマクロ・Excel VBAの使い方 » グラフ・Chart » VBAでデータラベルを非表示に-Series.HasDataLabels・Point.HasDataLabel