Excel VBA質問箱 IV

当質問箱は、有志のボランティア精神のおかげで成り立っています。
問題が解決したら、必ずお礼をしましょうね。
本サイトの基本方針をまとめました。こちら をご一読ください。

投稿種別の選択が必要です。ご注意ください。
迷惑投稿防止のため、URLの入力を制限しています。ご了承ください。


43401 / 76732 ←次へ | 前へ→

【38379】Re:ワークシート上のグラフの座標を知り...
質問  わいわい  - 06/6/1(木) 12:41 -

引用なし
パスワード
   ichinose 様、Kein 様 回答ありがとうございます。

>それから、こういう難しい内容では特にですが、
>例を最低3例ぐらい引用して説明してください。
についてですが、今回私の扱っているのが非直交5軸の線図から指定ポイントの値をデジタル表示すると言うもので、例を示すのが難しく、余り簡単な例に直すと、回答が『そんなことしなくても出来ますよ』と言うような流れになるのではと危惧して、あえて書かなかったのですが、質問の意味が回答いただける方に伝わらないのでは本末転倒ですね。今後質問には工夫していきます。

>Axesオブジェクトのスケールの最大値と最小値を調べることで
>x軸y軸のスケールを求めることはできるでしょう?
x軸、y軸のスケールは、グラフ自体をマクロで描かせていますので、既知の値です。

例)X軸0→100 Y軸0→20 のグラフ上でクリックした点のPoint(x,y)を求めたい。 まだ出来ないところがあります。宜しくお願いいたします。
(1)
Private Sub myChartClass_MouseUp(ByVal Button As Long, _
ByVal Shift As Long, ByVal x As Long, ByVal y As Long)
  Dim Tp As Single, Lp As Single
'図面のサイズを取得
  With ActiveChart.PlotArea
    Lp = .InsideLeft: Tp = .InsideTop
    Wp = .InsideWidth: Hp = .InsideHeight
    dx = 100 / Wp
    dy = 20 / Hp
  End With
  With UserForm1
    .TextBox_X.Value = 0 +(x * 3/4 * 100/ ActiveWindow.Zoom - Lp)*dx
    .TextBox_Y.Value = 0 +(Tp + Hp - y * 3 / 4 * 100 / _
       ActiveWindow.Zoom) * dy
  End With
End Sub
これで大体の数値は得られるのですが、PlotArea.InsideLeft等とグラフ軸の微妙な差が調整し切れていません。

(2)そこで下記のように出来ればと思いますがどのようにすればよいのでしょう?
Private Sub myChartClass_MouseUp(ByVal Button As Long, _
ByVal Shift As Long, ByVal x As Long, ByVal y As Long)
  Dim Tp As Single, Lp As Single
'図面の表示座標を取得
'ActiveChart.PlotArea.InsideLeft等では駄目そう
 『Point(0,20)』→x_min,y_min  ※◆ここが分かりません。
 『Point(100,0)』→x_MAX,y_MAX ※◆ここが分かりません。
  dx = 100 / (x_MAX - x_min) 
  dy = 20 / (y_max - y_min)
  With UserForm1
    .TextBox_X.Value = 0 + (x - x_min) * dx
    .TextBox_Y.Value = 0 + (y_max - y) * dy
    '実際には、ここで得た値で他の4項目について算出します。
  End With
End Sub

>グラフのSelectイベントで出来そうです。さぐってみて下さい。
これからTRYして見ます。

6 hits

【38273】ワークシート上のグラフの座標を知りたい わいわい 06/5/30(火) 20:37 質問
【38299】Re:ワークシート上のグラフの座標を知りたい Kein 06/5/31(水) 3:12 回答
【38355】Re:ワークシート上のグラフの座標を知り... わいわい 06/5/31(水) 19:10 質問
【38360】Re:ワークシート上のグラフの座標を知り... Kein 06/5/31(水) 22:01 回答
【38371】Re:ワークシート上のグラフの座標を知り... ichinose 06/6/1(木) 8:25 発言
【38379】Re:ワークシート上のグラフの座標を知り... わいわい 06/6/1(木) 12:41 質問
【38381】Re:ワークシート上のグラフの座標を知り... Kein 06/6/1(木) 13:04 発言
【38395】Re:ワークシート上のグラフの座標を知り... ichinose 06/6/1(木) 20:38 発言
【38396】Re:ワークシート上のグラフの座標を知り... ichinose 06/6/1(木) 21:12 発言
【38412】Re:ワークシート上のグラフの座標を知り... わいわい 06/6/2(金) 9:33 お礼
【38413】Re:ワークシート上のグラフの座標を知り... ichinose 06/6/2(金) 10:01 発言
【38420】Re:ワークシート上のグラフの座標を知り... わいわい 06/6/2(金) 11:12 発言
【38435】Re:ワークシート上のグラフの座標を知り... ichinose 06/6/2(金) 19:11 発言
【38437】Re:ワークシート上のグラフの座標を知り... わいわい 06/6/2(金) 20:54 お礼
【38440】Re:ワークシート上のグラフの座標を知り... ichinose 06/6/2(金) 22:14 発言

43401 / 76732 ←次へ | 前へ→
ページ:  ┃  記事番号:
2610219
(SS)C-BOARD v3.8 is Free