Excel VBA SendKeys
În acest articol, vom vedea o prezentare pe Excel VBA SendKeys. V-ați gândit vreodată să creați un program care salvează automat fișa de lucru și nu este necesar să apăsați butonul Ctrl + S sau Excel Salvare pentru a face acest lucru? Pare a fi o fantezie, nu? Cu toate acestea, acest lucru se poate face. În VBA, există o instrucțiune de comandă numită SendKeys, care vă permite să trimiteți tastele ca o comandă către aplicație în același mod ca și cum utilizați tastatura pentru a efectua sarcina. (Ex. Salvarea fișierului. Puteți face tastatura Ctrl + S pentru a salva un fișier). Se recomandă utilizarea SendKeys ca ultimă opțiune în timp ce automatizați orice sarcină. Motivul din spatele acestui lucru este, așa cum am discutat deja, SendKeys trimite apăsările cheie către aplicația care este activă în prezent. Ce se întâmplă dacă aveți o fereastră de aplicație activă în momentul rulării codului sub care nu doriți ca modificările să se întâmple? Va da rezultate neașteptate, nu? Acesta este singurul motiv, ar trebui să folosim SendKeys ca ultimă opțiune în timp ce automatizăm lucrurile. Cu toate acestea, poate fi utilizat pentru automatizarea mică, în care niciun alt mediu de aplicație nu este pe cale să interfereze cu cea pe care ați dorit să o facă schimbarea.
Metoda SendKeys de sintaxă:
SendKeys(String As String, (Wait))
Unde,
Primul argument „String As String” specifică combinațiile de chei pe care doriți să le utilizați în cadrul programului (Ex. Ctrl + S ar fi combinația de chei).
Așteptarea ar fi un parametru opțional care ia valori booleane TRUE și FALSE. Dacă așteptarea are valoarea ADEVĂRAT, înseamnă că sistemul va aștepta prelucrarea tastelor și apoi va trece la linia următoare și va compila / rula aceeași. Dacă valoarea de așteptare este FALSE (se poate menține goală), atunci sistemul nu va aștepta prelucrarea tastelor și va continua să ruleze întregul cod.
Se folosesc anumite metode pe care le puteți combina apăsarea tastelor cu Ctrl, Shift sau Alt. Să vedem cum putem face asta Următorul este un tabel care specifică combinațiile de taste pentru SendKeys cu Ctrl, Shift și Alt:
Cheia cu care trebuie combinat | Operator care va fi folosit anterior tastelor pentru combinație |
Schimb | + (Semnul tastatură plus) |
Ctrl | (Caret Operator Sign) |
Alt | % (Semn procentual) |
Ei bine, ce înseamnă asta? Înseamnă că, dacă doriți să folosiți o combinație de tastatură ca Ctrl + S sub cod, puteți utiliza metoda SendKeys și o puteți face cu SendKeys, apoi un operator Caret (^) pentru Ctrl și apoi „s”. Va salva fișa de lucru curentă în fișierul dvs. excel.
Cum se utilizează metoda SendKeys în Excel VBA?
Vom învăța cum să utilizăm Metoda SendKeys în Excel, folosind Codul VBA.
Puteți descărca acest șablon VBA SendKeys Excel aici - Șablonul VBA SendKeys ExcelVBA SendKeys - Exemplul # 1
Să avem câteva exemple simple care ne vor permite să ne adâncim mai adânc în funcționarea comenzii VBA SendKeys.
În acest prim exemplu, urmează să vedem o automatizare foarte simplă care salvează automat fișierul Excel actual deschis. Nu este necesar să apăsați butonul Salvează sau Ctrl + S pentru a salva fișierul. Urmați pașii de mai jos pentru a obține rezultatul.
Pasul 1: Deschideți modulul din fila Meniu Insert, așa cum se arată mai jos.
Pasul 2: Definiți o nouă sub-procedură care vă poate reține macro.
Cod:
Sub Exemplu_1 () Final Sub
Pasul 3: Acum, pentru a salva orice fișier, aveți o combinație de taste de tastatură ca Ctrl + S. pentru a converti acest cod în cod, putem folosi operatorul caret (^) și apoi cuvântul cheie „s” ca argument pentru instrucțiunea SendKeys.
Cod:
Sub Exemplu_1 () Aplicație.SendKeys ("s") Final Sub
Aici, aplicația de cuvinte cheie specifică Aplicația către care trimitem apăsările de taste (în acest caz, aplicația Excel). „S” sub paranteze specifică operația similară cu tastatura Ctrl + S.
Pasul 4: Rulați acest cod apăsând butonul Run sau apăsând tasta F5.
După executarea cu succes a acestui cod, fișierul dvs. este salvat.
VBA SendKeys - Exemplul # 2
Acum, suntem pe cale să vedem, cum să închidem o aplicație curentă, trimițând softuri prin codul macro, folosind metoda SendKeys. Urmați pașii de mai jos:
Pasul 1: Scrieți sub-procedura care poate reține macro-ul dvs. sub modul.
Cod:
Sub Exemplu_2 () End Sub
Pasul 2: Utilizați metoda Application.SendKeys pentru a trece softkey-urile de la tastatură la aplicație. Deoarece panoul actual VBA poate fi închis cu tastatura Alt + Q de la tastatură, putem folosi „% q” sub macro.
Cod:
Sub Exemplu_2 () Application.SendKeys ("% q") Sub
Pasul 3: Apăsați butonul Run sau F5 pentru a rula acest cod. Imediat ce executați acest cod, actualul editor de bază Visual se va închide și veți naviga către fișierul Excel.
VBA SendKeys - Exemplul # 3
Acum, vom scrie un cod care deschide automat blocul de notițe și scrie automat un text în el. Vezi imaginea de mai jos:
Pasul 1: Scrieți sub-procedura care poate reține macro-ul dvs. sub modul.
Cod:
Sub Exemplu_3 () End Sub
Call Shell permite sistemului să deschidă aplicația. Calea este acolo unde este prezent Notepad.exe. vbNormalFocus este un argument opțional care specifică accentul pe deschiderea și restabilirea aplicației la dimensiunea și poziția inițială.
Pasul 2: Utilizați Callke și Sendkeys în combinație, astfel încât sistemul să poată adăuga un text în Notepad.
Cod:
Sub Exemplu_3 () Call Shell ("C: \ Windows \ System32 \ Notepad.exe", vbNormalFocus)
Pasul 3: Aici, adăugăm textul „Hello VBA!” Folosind SendKeys în Notepad. True specifică timpul de așteptare pentru comanda SendKeys.
Cod:
Sub Exemplu_3 () Call Shell („C: \ Windows \ System32 \ Notepad.exe”, vbNormalFocus) Apelează SendKeys („Hello VBA!”, Adevărat) End Sub
Pasul 4: Rulați acest cod apăsând tasta F5 sau făcând clic pe butonul Executare.
Astfel putem folosi metoda SendKeys pentru a automatiza aplicațiile prin intermediul macro-ului VBA.
Lucruri de amintit
- Fii foarte atent când folosești SendKeys, deoarece poate da rezultate neașteptate dacă ai mai multe aplicații deschise.
- Puteți utiliza SendKeys pentru a automatiza sarcinile mici, cum ar fi salvarea unui fișier Excel sau închiderea unui fișier Excel etc.
- Utilizați metoda SendKeys ca o ultimă opțiune în timp ce încercați să automatizați lucrurile.
Articol recomandat
Acesta este un ghid pentru VBA SendKeys. Aici vom discuta despre cum să utilizăm Metoda SendKeys în Excel VBA, împreună cu exemple practice și șablon Excel descărcabil. De asemenea, puteți parcurge și alte articole sugerate -
- În timp ce bucla VBA (exemple cu șablonul Excel)
- VBA Environ | Șabloane Excel
- Caută obiectiv VBA (exemplu)
- Cum se schimbă fișa de lucru în Excel VBA?