- 締切済み
ダブルクリックしたセルの近くにユーザーフォームを表示したい
Worksheet_BeforeDoubleClick内でダブルクリックされたセルのすぐ近くに(例えば右側)ユーザーフォームを表示したいのですが、なかなかうまく行きません。 ネット上の情報を参考に、以下のようなコードを書いたのですが、画面右下に行くほど誤差が出てしまいます...座標系の考え方が間違っている? どのような解像度のスクリーン環境でも、どのようなエクセルの画面サイズでも(全画面でも任意サイズでも)とにかくダブルクリックしたセルのすぐ近くに表示したいです。 よろしくお願いします。 Private Sub Worksheet_BeforeDoubleClick(ByVal Target As Range, Cancel As Boolean) Dim l_baseLeft As Long Dim l_baseTop As Long Dim l_selectLeft As Long Dim l_selectTop As Long Const DPI As Long = 96 Const PPI As Long = 72 l_baseLeft = ActiveWindow.PointsToScreenPixelsX(0) l_baseTop = ActiveWindow.PointsToScreenPixelsY(0) l_selectLeft = ((Selection.Left * DPI / PPI) * (ActiveWindow.Zoom / 100)) + l_baseLeft l_selectTop = ((Selection.Top * DPI / PPI) * (ActiveWindow.Zoom / 100)) + l_baseTop With UserForm1 .StartUpPosition = 0 .Top = l_selectTop .Left = l_selectLeft .Show End With
- みんなの回答 (3)
- 専門家の回答