• ベストアンサー

グラフ要素のセルを参照したいのですが・・・

こんにちは! マクロ初心者の者です。 散布図の1要素を選択し、 ショートカットキーにてマクロを実行すると、 選択したグラフ要素が参照している 参照先セルを選択したいのです。 マクロをショートカットキーに割り当てる方法は なんとかわかったのですが、グラフの1要素の 参照先セルを選択する方法がわかりません・・・ どなたか教えてください。

質問者が選んだベストアンサー

  • ベストアンサー
  • imogasi
  • ベストアンサー率27% (4737/17069)
回答No.1

この質問はエクセルVBAでもプロ級の人が考える課題のように思いますね。 似た事例が見つかったので上げて見ます。 とりあえず、別シートにグラフを作ること。 http://www.moug.net/tech/exvba/0020010.htm のようにChartのイベントで捉えること。 上記でデータまでは捉えられますが、そのもととなったセルの行、列はどういうメソッドとプロパティで捉えられるかは、私では現状判りません。 ヘルプ、大部のVBAのマニュアル(でないと載っていない)、WEB(検索語がわからないけれど)など当たってください。 健闘を祈ります。

naokichi000
質問者

お礼

早速の回答ありがとうございます。 すごく勉強になるサイトですね! 私の説明不足だったのですが、 今回のグラフは1つのシートに複数の グラフが作図されています。 そのどのグラフを指定してもマクロを 実行したいのです。 今回x・y座標を取得するのに教えて頂いた Chart_MouseUpイベントは、 試してみたのですが、恐らく、 1シートに1グラフの場合にのみ実行される イベントなのですよね? (埋め込みグラフというのでしょうか) でもGetChartElementで、x・yの座標さえ取得 できればなんとかなりそうですね! 3歩ぐらい前進できました! もし埋め込みグラフ以外のグラフの xy座標を取得できる方法があれば また教えてくださいm(__)m ありがとうございました(*^_^*)

naokichi000
質問者

補足

ヘルプ、「埋め込みグラフでイベントを使用する」を参考にし、1シートに複数のグラフが作図されている場合でも、x・y座標を取得することができました。 後はimogasiさんから教えて頂いたmouseupイベントを 使い選択したグラフ要素が何系列目で、 何個目のグラフ要素かを一度セルに移し、 ショートカットを指定した時点でその移したセルの 値を引用するようにしました! 本当にありがとうございました! ちなみに途中までのコードを書いてみます(*^_^*) 'クラスモジュール (Class1) Public WithEvents myChartClass As Chart Private Sub myChartClass_MouseUp(ByVal Button As Long, ByVal Shift As Long, ByVal X As Long, ByVal Y As Long) Dim ElemID As Long, Arg1 As Long, Arg2 As Long Dim Var, XVar, YVar, MyRow As Variant ActiveChart.GetChartElement X, Y, ElemID, Arg1, Arg2 Select Case ElemID '定数値の詳細はヘルプを参照 Case xlSeries 'データ系列 Sheets("sheet2").Cells(2, 1) = Arg1 '何系列目をクリックしたかを表示 Sheets("sheet2").Cells(2, 2) = Arg2 '何個めをクリックしたかを表示 End Select End Sub '標準モジュール Public myClass(2) As New Class1 '配列数には最大グラフ数を入力 Public Sub InitializeChart() For i = 1 To 2 'グラフを割り当てる Set myClass(i).myChartClass = Worksheets(1).ChartObjects(i).Chart Next i End Sub