VBA SendKeys - Come utilizzare il metodo SendKeys in Excel VBA?

Sommario:

Anonim

Excel VBA SendKeys

In questo articolo, vedremo una struttura su SendKeys VBA di Excel. Hai mai pensato di creare un programma che salva automaticamente il tuo foglio di lavoro e non è necessario premere il pulsante Ctrl + S o Excel per farlo? Sembra essere una fantasia, vero? Tuttavia, questo può essere fatto. In VBA esiste un'istruzione di comando denominata SendKeys che consente di inviare i tasti premuti come comando all'applicazione come se si stesse utilizzando la tastiera per eseguire l'attività. (Es. Salvataggio del file. È possibile premere Ctrl + S sulla tastiera per salvare un file). Si consiglia di utilizzare SendKeys come ultima opzione durante l'automazione di qualsiasi attività. Il motivo alla base di questo è, come abbiamo già discusso, SendKeys invia i tasti all'applicazione attualmente attiva. Cosa succede se al momento dell'esecuzione del codice è attiva una finestra dell'applicazione in cui non si desidera che avvengano le modifiche? Darà risultati inaspettati, giusto? Questo è l'unico motivo, dovremmo usare SendKeys come ultima opzione durante l'automazione delle cose. Può essere utilizzato per la piccola automazione, in cui nessun altro ambiente applicativo sta per interferire con quello per cui si desidera che avvenga la modifica.

Sintassi Metodo SendKeys:

SendKeys(String As String, (Wait))

Dove,

Il primo argomento 'String As String' specifica le combinazioni di tasti che si desidera utilizzare nel programma (es. Ctrl + S sarebbe la combinazione di tasti).

L'attesa sarebbe un parametro opzionale che accetta i valori booleani VERO e FALSO. Se l'attesa ha il valore TRUE, significa che il sistema attenderà l'elaborazione delle chiavi, quindi passerà alla riga successiva e compilerà / eseguirà lo stesso. Se il valore di attesa è FALSO (può rimanere vuoto), il sistema non attenderà l'elaborazione delle chiavi e continuerà a eseguire l'intero codice.

Vengono utilizzati alcuni metodi che è possibile combinare i tasti con Ctrl, Maiusc o Alt. Vediamo come possiamo farlo. Di seguito è riportata una tabella che specifica le combinazioni di tasti per SendKeys con Ctrl, Shift e Alt:

Chiave da abbinare a Operatore da utilizzare prima dei tasti per la combinazione
Cambio + (Keyboard Plus Sign)
Ctrl (Segno operatore)
alt % (Segno percentuale)

Bene, cosa significa? Significa che se vuoi usare una combinazione di tastiera come Ctrl + S sotto il codice, puoi usare il metodo SendKeys e farlo con SendKeys quindi un operatore Caret (^) per Ctrl e poi “s”. Salverà il foglio di lavoro corrente nel tuo file Excel.

Come utilizzare il metodo SendKeys in Excel VBA?

Impareremo come utilizzare il metodo SendKeys in Excel utilizzando il codice VBA.

Puoi scaricare questo modello Excel SendKeys VBA qui - Modello Excel SendKeys VBA

VBA SendKeys - Esempio n. 1

Facciamo alcuni semplici esempi che ci consentiranno di approfondire il funzionamento del comando SendKeys VBA.

In questo primo esempio, stiamo per vedere un'automazione molto semplice che salva automaticamente il file Excel corrente aperto. Non è necessario premere il pulsante Salva o Ctrl + S per salvare il file. Seguire i passaggi seguenti per ottenere il risultato.

Passaggio 1: Aprire il modulo dalla scheda del menu Inserisci come mostrato di seguito.

Passaggio 2: definire una nuova procedura secondaria che può contenere la macro.

Codice:

 Esempio secondario_1 () Fine sottotitolo 

Passo 3: Ora, per salvare qualsiasi file, hai una combinazione di tasti della tastiera come Ctrl + S. per convertirla in codice, possiamo usare l'operatore di controllo (^) e quindi la parola chiave "s" come argomento per l'istruzione SendKeys.

Codice:

 Esempio secondario_1 () Application.SendKeys ("s") End Sub 

Qui, la parola chiave Applicazione specifica l'applicazione a cui stiamo inviando i tasti (in questo caso l'applicazione Excel). "S" tra parentesi specifica l'operazione della tastiera simile Ctrl + S.

Passaggio 4: eseguire questo codice premendo il pulsante Esegui o premendo il tasto F5.

Dopo la corretta esecuzione di questo codice, il file viene salvato.

VBA SendKeys - Esempio n. 2

Ora stiamo per vedere come chiudere un'applicazione corrente inviando softkey tramite il codice macro usando il metodo SendKeys. Seguire i passaggi seguenti:

Passaggio 1: scrivere la procedura secondaria che può contenere la macro sotto il modulo.

Codice:

 Sub Esempio_2 () End Sub 

Passaggio 2: utilizzare il metodo Application.SendKeys per passare i tasti funzione della tastiera all'applicazione. Poiché l'attuale riquadro VBA può essere chiuso con la scorciatoia da tastiera Alt + Q, possiamo usare "% q" sotto macro.

Codice:

 Sub Esempio_2 () Application.SendKeys ("% q") End Sub 

Passaggio 3: premere il pulsante Esegui o F5 per eseguire questo codice. Non appena si esegue questo codice, l'editor di Visual Basic corrente si chiuderà e si passerà al file Excel.

VBA SendKeys - Esempio n. 3

Ora scriviamo un codice che apre automaticamente il Blocco note e scrive automaticamente un testo al suo interno. Vedi lo screenshot qui sotto:

Passaggio 1: scrivere la procedura secondaria che può contenere la macro sotto il modulo.

Codice:

 Sub Esempio_3 () End Sub 

Call Shell consente al sistema di aprire l'applicazione. Il percorso è dove è presente Notepad.exe. vbNormalFocus è un argomento facoltativo che specifica il focus sull'apertura e il ripristino dell'applicazione alle dimensioni e alla posizione originali.

Passaggio 2: utilizzare Call e Sendkeys in combinazione in modo che il sistema possa aggiungere un testo nel Blocco note.

Codice:

 Sub Esempio_3 () Call Shell ("C: \ Windows \ System32 \ Notepad.exe", vbNormalFocus) End Sub 

Passaggio 3: Qui stiamo aggiungendo il testo "Hello VBA!" Usando SendKeys al Blocco note. True specifica il tempo di attesa per il comando SendKeys.

Codice:

 Sub Esempio_3 () Call Shell ("C: \ Windows \ System32 \ Notepad.exe", vbNormalFocus) Call SendKeys ("Hello VBA!", True) End Sub 

Passaggio 4: eseguire questo codice premendo il tasto F5 o facendo clic sul pulsante Esegui.

Ecco come possiamo usare il metodo SendKeys per automatizzare le applicazioni tramite macro VBA.

Cose da ricordare

  • Fai molta attenzione durante l'utilizzo di SendKeys poiché potrebbe dare risultati imprevisti se hai più applicazioni aperte.
  • È possibile utilizzare SendKeys per automatizzare le piccole attività come il salvataggio di un file Excel o la chiusura di un file Excel ecc.
  • Usa il metodo SendKeys come ultima opzione mentre stai cercando di automatizzare le cose.

Articolo raccomandato

Questa è una guida a SendKeys VBA. Qui discutiamo come usare il metodo SendKeys in Excel VBA insieme ad esempi pratici e template Excel scaricabili. Puoi anche consultare i nostri altri articoli suggeriti:

  1. VBA While Loop (esempi con modello Excel)
  2. VBA Environ | Modelli di Excel
  3. Ricerca obiettivo VBA (esempio)
  4. Come cambiare il foglio di lavoro del nome in Excel VBA?