プロが教える店舗&オフィスのセキュリティ対策術

こんにちは!
マクロ初心者の者です。

散布図の1要素を選択し、
ショートカットキーにてマクロを実行すると、
選択したグラフ要素が参照している
参照先セルを選択したいのです。

マクロをショートカットキーに割り当てる方法は
なんとかわかったのですが、グラフの1要素の
参照先セルを選択する方法がわかりません・・・

どなたか教えてください。

A 回答 (1件)

この質問はエクセルVBAでもプロ級の人が考える課題のように思いますね。


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

この回答への補足

ヘルプ、「埋め込みグラフでイベントを使用する」を参考にし、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

補足日時:2006/02/22 15:42
    • good
    • 2
この回答へのお礼

早速の回答ありがとうございます。
すごく勉強になるサイトですね!

私の説明不足だったのですが、
今回のグラフは1つのシートに複数の
グラフが作図されています。
そのどのグラフを指定してもマクロを
実行したいのです。

今回x・y座標を取得するのに教えて頂いた
Chart_MouseUpイベントは、
試してみたのですが、恐らく、
1シートに1グラフの場合にのみ実行される
イベントなのですよね?
(埋め込みグラフというのでしょうか)

でもGetChartElementで、x・yの座標さえ取得
できればなんとかなりそうですね!
3歩ぐらい前進できました!
もし埋め込みグラフ以外のグラフの
xy座標を取得できる方法があれば
また教えてくださいm(__)m

ありがとうございました(*^_^*)

お礼日時:2006/02/19 23:05

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!

このQ&Aを見た人はこんなQ&Aも見ています