Dare all'utente la possibilità di interrompere un loop
Molto spesso si vorrebbe la possibilità di interrompere un'elaborazione
cliccando su un qualsiasi punto della finestra del programma, oppure premendo un
tasto specifico per esempio il tasto ESC.
Nell'esempio che segue, eseguo un Loop lanciato da un CommandButton (cmdStart) e
per interromperlo uso il tasto ESC o il click del Mouse.
Inserire il seguente codice:
'API Dichiarazioni
Private Declare Function GetAsyncKeyState Lib "user32.dll" _
(ByVal vKey As Long) As Integer
'Tasto ESCAPE
Const VK_ESCAPE = &H1B
'Button Click del Mouse
Const VK_LBUTTON = &H1
Private Sub cmdStart_Click()
Do
If GetAsyncKeyState(VK_ESCAPE) < 0 Or _
GetAsyncKeyState(VK_LBUTTON) < 0 Then
Debug.Print "-------> ESCI <-------"
Exit Do
End If
Debug.Print "______ LOOP ___________"
Loop
End Sub
Testato su: Win98, Win2000, WinMe, WinXP