|
▼わいわい さん:
こんばんは。
>ichinose 様、Kein 様 回答ありがとうございます。
>
>>それから、こういう難しい内容では特にですが、
>>例を最低3例ぐらい引用して説明してください。
>についてですが、今回私の扱っているのが非直交5軸の線図から指定ポイントの値をデジタル表示すると言うもので、例を示すのが難しく、余り簡単な例に直すと、回答が『そんなことしなくても出来ますよ』と言うような流れになるのではと危惧して、あえて書かなかったのですが、質問の意味が回答いただける方に伝わらないのでは本末転倒ですね。今後質問には工夫していきます。
この「非直交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
Dim hx As single
Dim hy As single
>'図面のサイズを取得
> With ActiveChart.PlotArea
> Lp = .InsideLeft: Tp = .InsideTop
> Wp = .InsideWidth: Hp = .InsideHeight
> dx = 100 / Wp
> dy = 20 / Hp
> End With
hx = ActiveChart.ChartArea.Left
hy = ActiveChart.ChartArea.Top
With UserForm1
.TextBox_X.Value = _
(0.75 * x * 100 / ActiveWindow.Zoom - hx - lp) * dx
.TextBox_Y.Value = _
(Tp + Hp - 0.75 * y * 100 / ActiveWindow.Zoom + hy) * dy
> End With
>End Sub
>これで大体の数値は得られるのですが、PlotArea.InsideLeft等とグラフ軸の微妙な差が調整し切れていません。
これではどうでしょうか?
もっともこれでも微妙な誤差は残りますね・・・。
完全にぴったりは無理なのかなあ・・・。
|
|