見出し画像

エクセル VBA グラフの要素の値を取得

エクセルVBAのグラフの要素の値の取得方法について解説します。
グラフ(散布図)上の点は、元々セル上の値から成ります。各点のセル位置を取得出来ます。

Excelで折れ線グラフを表示した際に、グラフの上をマウスでなぞった際
コメントとして、縦の値、横の値等(系列、要素、値)が表示されます。

"要素"とは、散布図の中に含まれる特定の点のことを指す。
上図は横軸が49500円で、縦軸が33353の点をマウスでなぞった。

この要素の値をVBAで取り込みたい、と思っている方は参考になりますので読んでください。

コード解説

Private WithEvents ch As Chart
Sub sample()
Set ch = ActiveSheet.ChartObjects(1).Chart
End Sub

Private Sub ch_MouseUp(ByVal Button As Long, ByVal Shift As Long, ByVal x As Long, ByVal y As Long)
If TypeName(Selection) <> "Point" Then Exit Sub
Dim id As Long
Dim Arg1 As Long
Dim Arg2 As Long
Dim xv As Double
Dim v As Double
ActiveChart.GetChartElement x, y, id, Arg1, Arg2
'If id <> xlSeries Then Exit Sub
Range("B1:J397").Rows(Arg2 + 2).Select
End Sub

Chart.GetChartElement メソッドは、指定した x 座標と y 座標の グラフ要素に関する情報を返します。引数(ひきすう)を5つ有する関数です。
構文
GetChartElement (x, y, ElementID, Arg1, Arg2)
引数
x :選択した要素のx軸方向の値を表します。
y :選択した要素のy軸方向の値を表します。
ElementID :調べましたが分かりませんでした。(すみません。)
Arg1 :調べましたが分かりませんでした。(すみません。)
Arg2 :選択した要素が何番目かを表します。

使い方(シートモジュールの使い方)

以下のサンプルファイルを用いて説明します。ダウンロードして使ってください。

ます、開発→Vidual Basicを押します。

Alt+F11を押すだけでも可

すると以下のような編集画面が表示されます。左のプロジェクト - VBAプロジェクトと書かれている部分の、Sheet1を右クリック→コードの表示(O)を押します。

すると、コードの編集ウインドウが表示されるので、Ctrl+Cで上記のコードをコピー→Ctrl+Vでコードの編集ウインドウに張り付け→右上の×で閉じて保存します。

次に、開発→挿入→フォームコントロールの中の“ボタン(フォーム コントロール)”を押します。

適当な位置でマウスを動かし、ボタン名はそのままでOKを押すと、下図のようなボタン1が生成します。それを右クリック→マクロの登録を押します。

マクロの登録画面で、Sheet1.sampleを選択してOKを押します。

以上で完了です。
試しにボタン1を押してから、グラフ上の適当なプロットを押してみてください。すると、元データがある行に飛べることが分かります。

参考文献

1) yahoo知恵袋, Excel VBAの折れ線グラフでの質問です。, 2022.

2) よねさん, よねさんのWordとExcelの小部屋-セル範囲の指定方法, 2022.

3) とねりん, PC自由帳 - CPU性能比較表【2022年最新版】, 2022.

この記事が気に入ったらサポートをしてみませんか?