Home » エクセルマクロ・Excel VBAの使い方 » グラフ・Chart » DataLabelの位置をVBAで取得する

DataLabelの位置をVBAで取得する

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

「DataLabel.Top VBA 位置取得」
という検索でアクセスがありました。

Excel VBAでDataLabelの位置を取得するには、どのようなコードを書けばいいのかを探していらしたのでしょうか。

DataLabelを取得する2つの経路

データ要素単位のデータラベルを表すDataLabelオブジェクトを取得する階層の経路は、大きく2つあります。

単独のデータ系列を表すSeriesオブジェクトから、全データ要素を表すPointsコレクションを取得して、単独のデータ要素を表すPointオブジェクトのDataLabelプロパティでDataLabelオブジェクトを取得する以下のような経路が1つ。

Series
└ Points
  └ Point
    └ DataLabel

もう1つは、単独のデータ系列を表すSeriesオブジェクトのデータラベルを表すDataLabelsコレクションを経由して、単独のデータラベルを表すDataLabelオブジェクトを取得する以下のような経路です。

Series
└ DataLabels
  └ DataLabel

それぞれ簡単なマクロをご紹介しておきます。

Pointsコレクション経由でDataLabelの位置を取得するサンプルマクロ

データラベルの表示されているグラフがアクティブな状態で、以下のExcelマクロを実行すると、Pointsコレクション経由で取得したDataLabelのTopプロパティ・Leftプロパティの値がイミディエイトウィンドウに出力されます。

Sub DataLabelのTopとLeftを取得する_Points経由()
 Dim pnt As Point
 For Each pnt In ActiveChart.SeriesCollection(1).Points
  Debug.Print _
   pnt.DataLabel.Top; pnt.DataLabel.Left
 Next
End Sub

DataLabelsコレクション経由でDataLabelの位置を取得するサンプルマクロ

以下のExcelマクロを実行すると、DataLabelsコレクション経由で取得したDataLabel.TopプロパティとDataLabel.Leftの位置がイミディエイトウィンドウに出力されます。

Sub DataLabelのTopとLeftを取得する_DataLabels経由()
 Dim dlbl As DataLabel
 For Each dlbl In ActiveChart.SeriesCollection(1).DataLabels
  Debug.Print _
   dlbl.Top; dlbl.Left
 Next
End Sub

最終更新日時:2022-07-05 16:28

[スポンサードリンク]

Home » エクセルマクロ・Excel VBAの使い方 » グラフ・Chart » DataLabelの位置をVBAで取得する

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

検索


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

.