|
ichinose 様、Kein 様 長々とお付き合いい頂きありがとうございます。
> 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
>これではどうでしょうか?
>もっともこれでも微妙な誤差は残りますね・・・。
チェックしてみたところ、InsideWidthとInsideHeightは図面上最小軸と最大軸の距離を正確(4/3*ActiveWindow.Zoom/100補正はしていますが)に表しており、
InsideLeftとInsideTopの値は、図面左上(X最小軸,Y最大軸)から(-4,-4)であることから
With ActiveChart.PlotArea
Lp = .InsideLeft + 4: Tp = .InsideTop + 4
Wp = .InsideWidth: Hp = .InsideHeight
dx = 100 / Wp
dy = 100 / Hp
End With
とすることで、図面上の座標をほぼ正確に獲得できました。精度はこの程度で十分と思います。
>今度は、Selectイベントを使用した例です。
動作確認致しました。グラフ発生モジュールまで作成していただき、本当にありがとうございます。内容については、まだ読みきれていませんが、色々応用できそうなので、有難く使わせていただきます。
>これを わいわいさんのおっしゃる「非直交5軸の線図」に
>応用できますか?
大層な書き方しましたが、結局は実験式によるグラフを集めて、それぞれの関連を表したグラフです。画面表示が可能な2次元グラフですから(x,y)が分かれば後は換算式でバリバリ(コンピューターが)計算できます。
この度は、お二方ともにありがとうございました。
|
|