昨日、https://teratail.com/questions/175121での質問をしたものです。
以下のコードにて、選択中セルのスクリーン座標が取得できました。
C#
1x = ActiveWindow.PointsToScreenPixelsX(ActiveCell.Left * 96 / 72) 2y = ActiveWindow.PointsToScreenPixelsY(ActiveCell.Top * 96 / 72)
しかし、2点の問題が出てきました。
1)表示倍率が100%ではない場合、ズレが発生する。
(これはdpi補正値の 96 がズレるためとおもわれます、https://ja.stackoverflow.com/questions/38046/)
2)セルの位置をスクロールしなければならない遠い位置にもっていった場合、目的とするスクリーン座標が大幅に違ってくる。
1)は、表示倍率を計算することで解決できるとおもいます。
2)は、例えば A1 のセルの場所ならば問題ないのですが(Excelをスクロールさせなくてもよい位置)、AA100といった、Excelをスクロールさせなければ指定できない位置だとスクリーン座標が全然ちがう場所になってしまいます。
2)の解決方法をさがしています。
あなたの回答
tips
プレビュー