Я использую GetCursorPos в некотором коде VBA, и он работает хорошо, но не тогда, когда приложение не открывается в полноэкранном режиме. Расположение X / Y зависит от расположения на рабочем столе мыши, а не от местоположения в окне приложения. Есть ли способ, чтобы он основывал расположение X / Y на активном окне или приложении, в котором работает VBA?
Я не знаю много о VBA, и это в приложении SCADA, а не в MS Office.
Я нашел этот код, но он не работает:
Private Declare Function GetCursorPos Lib "user32" (lpPoint As POINTAPI) As Long
Private Type POINTAPI
X As Long
Y As Long
End Type
Dim Mouse As POINTAPI
Dim Cmd As String
Dim PNum As String
Private Declare Function ClientToScreen Lib "user32" (ByVal hwnd As Long, lpPoint As POINTAPI) As Long
Private Sub Button3_Released()
GetCursorPos Mouse
ScreenToClient Me.Application.WindowHandle, Mouse
MsgBox Mouse.X
End Sub
Теперь это работает!
Спасибо за помощь.