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

VBAでデータラベルを選択する

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

「vba DataLabels Select」
という検索キーワードでアクセスがありました。

Excel VBAでグラフのデータラベルを選択するには、どのようなコードを書けばいいのか探していらしたのでしょうか。

DataLabels.SelectとDataLabel.Select

1つの系列の全データラベルを選択したい場合はDataLabelsコレクションのSeelctメソッドを、

系列に含まれる要素のデータラベルを選択したいのであればDataLabelオブジェクトのSelectメソッドを使います。

系列のデータラベルを選択するサンプル

データラベルの表示されているグラフがアクティブな状態で、以下のSubプロシージャを実行すると、1つ目の系列のデータラベルが選択されます。

Sub 系列のデータラベルを選択する()
 ActiveChart.SeriesCollection.Item(1).DataLabels.Select
End Sub

データ系列を表すSeriesオブジェクトを取得する

ActiveChart.SeriesCollection.Item(1)…

の部分は、系列の削除で使用しているコードと同じです。もちろん上記の

ActiveChart.SeriesCollection.Item(1).DataLabels.Select

は、「.Item」を省略して、

ActiveChart.SeriesCollection(1).DataLabels.Select

と書くこともできます。

Series.DataLabelsメソッドでDataLabelsコレクションを取得

SeriesCollectionコレクションのItemメソッドや_Defaultメソッドで取得したSeriesオブジェクトに用意されているDatalabelsメソッドで、

1つ目の系列の全データラベルを表すDataLabelsコレクションを取得して、

DataLabels.Selectメソッドで選択しています。

系列のデータラベルを順番に選択するサンプル

データラベルの表示されている、系列が2つ以上のグラフがアクティブな状態で、以下のSubプロシージャをステップ実行すると、系列のデータラベルが順番に選択される様子を観察できます。

Sub 系列のデータラベルを順番に選択する()
 Dim srs As Series
 For Each srs In ActiveChart.SeriesCollection
  srs.DataLabels.Select
 Next
End Sub

Excel VBAでは通常For Each~Next文はFor~Next文でも書けますから、以下のようなFor~Nextループでも、

With ActiveChart.SeriesCollection
 Dim i As Long
 For i = 1 To .Count 
  .Item.DataLabels.Select
 Next
End With

先ほどと同じ結果になります。

要素のデータラベルを選択するサンプル

系列に含まれる要素のデータラベルを選択する場合、階層が深くなります。

データラベルの表示されているグラフがアクティブな状態で、以下のSubプロシージャを実行すると、1つ目の系列の1つ目の要素のデータラベルが選択されます。

Sub 要素のデータラベルを選択する()
 ActiveChart.SeriesCollection.Item(1).DataLabels.Item(1).Select
End Sub

DataLabelsコレクションを取得するところまでは、先述の系列のデータラベルを選択するSubプロシージャと同じです。

Series.DataLabelsメソッドで取得したDataLabelsコレクションのItemメソッドで、

要素のデータラベルを表すDataLabelオブジェクトを取得して、

DataLabel.Selectメソッドで選択しています。

DataLabels.Itemの「.Item」も省略可能

DataLabelsコレクションにも、Itemメソッドと同じように定義された非表示状態の既定メンバー_Defaultメソッドが用意されていますから、

先ほどの

ActiveChart.SeriesCollection.Item(1).DataLabels.Item(1).Select

は「.Item」を省略して

ActiveChart.SeriesCollection(1).DataLabels(1).Select

と書けます。

要素のデータラベルを順番に選択するサンプル

データラベルの表示されているグラフがアクティブな状態で、以下のSubプロシージャをステップ実行すると、要素のデータラベルが順番に選択される様子を観察できます。

Sub 要素のデータラベルを順番に選択する()
 Dim srs As Series
 For Each srs In ActiveChart.SeriesCollection
  Dim lbl As DataLabel
  For Each lbl In srs.DataLabels
   lbl.Select
  Next lbl
 Next srs
End Sub

最終更新日時:2022-07-17 11:13

[スポンサードリンク]

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

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

検索


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

.