L'azione associata alla SendKeys e' *asincrona*. L'esecuzione della SendKeys, dal punto di vista del VB, consiste nell'invio di una serie di messaggi WM_KEYDOWN e WM_KEYUP (come saprai, Windows lavora elaborando, finestra per finestra e thread per thread quando serve, una coda di messaggi inviati da altre parti del sistema) a Windows; e' il gestore della coda dei messaggi di Windows che ha la responsabilita' di tradurre tutti i messaggi nelle vere e proprie azioni, indipendentemente dal codice VB che continua ad essere elaborato.
Quando VB esegue del codice in una Sub pero', *non lascia* il controllo al gestore dei messaggi di Windows (che deve elaborare la coda dei messaggi che si sta riempiendo ...) ma lo fa soltanto alla fine. Quando si trova alla fine della Sub, tutti i messaggi WM_KEYDOWN e WM_KEYUP vengono eseguiti da Windows che svuota la coda e che si trova 3 ^V e il testo dell'ultima label nella clipboard.
Se inserisci un DoEvents dopo la SendKeys, indichi a Windows di elaborare la coda dei messaggi *prima* di continuare con la Sub e quindi elaborare nella giusta sequenza i messaggi WM_KEYDOWN e WM_KEYUP.