در مورد سوال اولتون بهتره از این API استفاده کنید -> SetCursorPos ، کد زیر رو ببینید :
Private Declare Function SetCursorPos Lib "user32.dll" (ByVal X As Long, ByVal y As Long) As Long
Private Declare Sub Sleep Lib "kernel32.dll" (ByVal dwMilliseconds As Long)
Private Sub Go()
Dim y As Long, Y1 As Long, Y2 As Long
Dim X As Long, X1 As Long, X2 As Long
X1 = Line1.X1
X2 = Line1.X2
Y1 = Line1.Y1
Y2 = Line1.Y2
For X = Line1.X1 To Line1.X2 Step 1 'Change Step to -1 for countdown moving
y = (((Y2 - Y1) / (X2 - X1)) * (X - X1)) + Y1
SetCursorPos X, y
Sleep (10)
Next X
End Sub
تو این کد شما با فراخوانی پروسیجر Go ، کورسر رو از ابتدای Line1 به انتهای اون میرسونید ، البته با یه حرکت تقریبا نرم (البته برای حرکت های از پایین به بالا).
در صورتی که لازمه حرکتتون از بالا به پایین باشه ، تو اون حلقه استپ رو به -1 تبدیل کنید.
برای تغییر سرعت هم میتونید آرگومان ارسال شده به تابع Sleep رو تغییر بدید.