「vba DataLabels Select」
という検索キーワードでアクセスがありました。
Excel VBAでグラフのデータラベルを選択するには、どのようなコードを書けばいいのか探していらしたのでしょうか。
DataLabels.SelectとDataLabel.Select
1つの系列の全データラベルを選択したい場合はDataLabelsコレクションのSeelctメソッドを、
系列に含まれる要素のデータラベルを選択したいのであればDataLabelオブジェクトのSelectメソッドを使います。
系列のデータラベルを選択するサンプル
データラベルの表示されているグラフがアクティブな状態で、以下のSubプロシージャを実行すると、1つ目の系列のデータラベルが選択されます。
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プロシージャをステップ実行すると、系列のデータラベルが順番に選択される様子を観察できます。
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つ目の要素のデータラベルが選択されます。
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プロシージャをステップ実行すると、要素のデータラベルが順番に選択される様子を観察できます。
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でデータラベルを選択する