|
ichinose 様
毎回丁寧な回答して頂き、検証用マクロまで組んでいただきありがとうございます。
>つまり、PolotareaのLeft,Topは、Chartareaを起点にしたポイントであるのに
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~1.
>対し、イベントから取得される0.75*xと0.75*yは、
>ChartObjectの左上を角を起点にしています。
>このポイント3の補正のための処理が必要だと思っているのです。
ですが
>lp = PlotArea.InsideLeft
>hx = ChartArea.Left
>Plotx" & (0.75 * x * 100 / ActiveWindow.Zoom - hx - lp)
1.にあるようにlp、hxは、同系の座標(シート基準?)ですので
hxを基準にしたときの -hx-lpとlpを基準にしたときの -lpは等しいものと考えられます。よって補正すべき数値は、lpからグラフの左上頂点までの距離(私は4としていますが前回回答からもう少し制度を上げられそうです)ですね。
>なるほど・・・、実は私は当初Zoomの事まで考慮してなかったので
>すごい!!と感心していたのですが・・・。
表示倍率についてはこれでよいのですが、lp、wpが画面上に無いときの処理が問題です。これについては、座標読み取り作業時には、グラフを強制的に画面に収まるようにサイズ調節することで対応しようと思います。(四隅の何れかが表示されていれば追えるような気がしていますが)
|
|