|
▼わいわい さん:
おはようございます。
>
>> 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
↑これは、疑問ですねえ??、せっかくActiveWindow.Zoomを使用して
倍率まで考慮しているのに定数を指定してしまって大丈夫ですか?
倍率が変われば4に相当する値も変わりますよ!!
そもそも4が合っていますか?
ポイントは0.75単位なんですけどねえ・・・。
もし、気がついたら調べてみてください。
|
|