| 
    
     |  | ▼わいわい さん: おはようございます。
 
 >
 >>   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単位なんですけどねえ・・・。
 もし、気がついたら調べてみてください。
 
 
 |  |