Get/SetCursorPos api's should do the job. Try something like this:
Code:
Option Explicit
Private Type POINTAPI
X As Long
Y As Long
End Type
Private Declare Function GetCursorPos Lib "user32" (lpPoint As POINTAPI) As Long
Private Declare Function SetCursorPos Lib "user32" _
(ByVal X As Long, ByVal Y As Long) As Long
Private Sub Form_Load()
Me.KeyPreview = True
End Sub
Private Sub Form_KeyDown(KeyCode As Integer, Shift As Integer)
Dim pt As POINTAPI
GetCursorPos pt
If Shift = 0 Then
Select Case KeyCode
Case vbKeyUp
pt.Y = pt.Y - 1
Case vbKeyDown
pt.Y = pt.Y + 1
Case vbKeyLeft
pt.X = pt.X - 1
Case vbKeyRight
pt.X = pt.X + 1
End Select
End If
SetCursorPos pt.X, pt.Y
End Sub