Ecco qua una breve guida su come ricavare la x e la y del mouse:

codice:
Determinare la posizione del mouse
--------------------------------------
Declare Function GetCursorPos Lib "user32" Alias "GetCursorPos" (lpPoint As POINTAPI) As Long

Con la  variabile del tipo POINTAPI:

Type POINTAPI
x As Long
y As Long
End Type

La funzione GetCursorPos restituisce in una variabile di tipo definito dall’utente denominata POINTAPI le coordinate x,y relative all’angolo superiore a sinistra dello schermo.

Esempio
Sub PosizioneScreenMouse()
Dim Posizione As POINTAPI
Dim PuntoX As Integer
Dim PuntoY As Integer
GetCursorPos Posizione
'per ricavare la posizione x e y
PuntoX = Posizione.x'coordinata del punto x
PuntoY = Posizione.y'coordinata del punto y
End Sub

GetCursorPos da la posizione del cursore , rispetto all’angolo superiore sinistro dello schermo. Se si desidera  conoscere la posizione del mouse, relativamente al form in uso si deve convertire i valori con:

Declare Function ScreenToClient Lib "user32" Alias "ScreenToClient" (ByVal hwnd As Long, lpPoint As POINTAPI) As Long

La funzione ScreenToClient converte le coordinate x,y, ricavate con la funzione GetCursorPos, nelle coordinate relative all’angolo superiore sinistro di un form specificato.

Esempio
Sub PosizioneWindowMouse()
Dim Posizione As POINTAPI
Dim PuntoX As Integer
Dim PuntoY As Integer
GetCursorPos Posizione'restituisce la posizione x,y relativamente allo schermo
ScreenToClient Me.hWnd, Posizione 'converte la posizione x,y relativamente al form specificata (.hWnd)

'per ricavare la posizione x e y
PuntoX = Posizione.x'coordinata del punto x relativa al form corrente
PuntoY = Posizione.y'coordinata del punto y relativa al form corrente
End Sub

le due funzioni, GetCursorPos e ScreenToClient, restituiscono la posizione del mouse con valori espressi in pixel. Per convertire i valori in Twip :

PuntoX = Posizione.x * Screen.TwipsPerPixelX’
PuntoY = Posizione.y * Screen.TwipsPerPixelY
:metallica :sexpulp: