Il Metodo OnKey. (12/05/03) Ovvero : come utilizzare dei tasti della tastiera per attivare (lanciare) le macro. Può interessare prendere in esame un pratico sistema per il lancio delle nostre macro di una cartella di lavoro, usando i tasti della nostra tastiera. Sarà possibile usare sia un solo tasto (es: F3), sia una combinazione di tasti insieme ai tasti ALT, CTRL o MAIUSC (es: ALT+G). Questo metodo è di semplice da capire; visto che OnKey si applica solo all'oggetto Application (Excel e la cartella di lavoro), potremo sfruttare l'evento WorkBook_Open perche si attivi l'istruzione, che resterà attiva da qualsiasi foglio poi si richiami premendo il tasto o la combinazione di tasti prescelta.. Cosa fa il metodo OnKey: tramite la pressione sul/sui tasti, richiama il nome di una macro, e la lancia. Il nome della macro va scritta tra due doppi apici. Vediamo subito l'esempio: Su un modulo avremo una macro, semplice per esemplificare: Sub pippo() msgbox "Benvenuto" End Sub e questa sarà l'istruzione che la richiamerà, premendo il tasto F3
Private Sub Workbook_Open() Volendo richiamare più di una macro, inseriremo tante istruzioni in WorkBook_Open per quanti tasti assegneremo. Fate solo attenzione a non usare i tasti che usa Excel come scorciatoie (F1, F6, F8 ecc.). Precisazione: il metodo richiede che il nome del/dei tasti sia scritto tra due doppi apici e tra due PARENTESI GRAFFE, è importante, non usate le tonde perchè si genera un errore. Per ottenere le graffe, se non l'avrete sulla tastiera, le ottenete tenendo premuto il tasto ALT + 123 del tastierino numerico per la graffa aperta "{" e ALT + 125 del t.n. per la graffa chiusa "}" . Vi riporto sotto, anche se trovate tutto sulla guida in linea, la tabella dei tasti
È inoltre possibile specificare dei tasti in combinazione con MAIUSC e/o CTRL e/o ALT. Per specificare un tasto in combinazione con uno o più tasti, utilizzare la seguente tabella
esempio: tasto Control + Freccia destra Application.OnKey "^{RIGHT}", "pippo"
Esiste anche un altro metodo per "lavorare" con i tasti, ed è il metodo SendKeys. Però questo metodo presenta degli "inconvenienti", che anche altre persone ben più qualificate di me riconoscono imperfetto e fonte di incavolature da parte dell'utente. Inoltre anche la guida presenta un esempio che definirei "curioso" nel risultato. Provate per esempio questa istruzione, posizionata nell'evento WorkSheet_SelectionChange per comodità di verifica, ma potreste metterlo anche nel WorkBook_Open, il risultato non cambia. La guida riporta questo esempio, così scritto, per terminare Microsoft Excel:
Private Sub Worksheet_SelectionChange(ByVal Target As
Range) Application.SendKeys "%{F4}", True
Un'altro utilizzo che si fa del metodo Onkey, è anche quello di poter disabilitare tasti, o combinazioni di tasti, come in questo esempio in cui si disabilita la combinazione dei tasti CTRL+c (Control Copia) per evitare di poter copiare il contenuto di una cella o range di celle da tastiera, e si può scegliere l'evento SelectionChange di un foglio:
Private Sub Worksheet_SelectionChange(ByVal Target As
Range) Per ripristinare invece il comando, nel caso si rivoglia rendere attiva la combinazione di tasti scelta, basterà usare la stessa istruzione ma senza doppi apici, così: Application.OnKey "^c"
Buon lavoro.
|