Excel VBA SendKeys
V tem članku bomo videli oris Excel VBA SendKeys. Ste že kdaj pomislili, da bi ustvarili program, ki samodejno shrani vaš delovni list in vam za to ni treba pritisniti gumba Ctrl + S ali Excel Save? Zdi se, da je fantazija, kajne? Vendar pa je to mogoče storiti. V VBA je izjava ukaza imenovana SendKeys, ki omogoča, da pritisnete tipke kot ukaz aplikaciji na enak način, kot če za opravljanje naloge uporabljate tipkovnico. (Na primer shranjevanje datoteke. Za shranjevanje datoteke naredite Ctrl + S tipkovnico prek gumba). Priporočamo, da kot zadnjo možnost uporabljate SendKeys, ko avtomatizirate katero koli opravilo. Razlog za to je, kot smo že razpravljali, SendKeys pošlje pritiske tipk na trenutno dejavno aplikacijo. Kaj pa, če imate v času delovanja kode aktivno okno aplikacije, pod katerim ne želite, da se spremembe zgodijo? Dalo bo nepričakovane rezultate, kajne? To je edini razlog, zato moramo med avtomatizacijo stvari uporabljati SendKeys kot zadnjo možnost. Lahko pa ga uporabimo za majhno avtomatizacijo, če nobeno drugo aplikacijsko okolje ne bo motilo tistega, za katerega želite, da se sprememba zgodi.
Načrt sintakse SendKeys:
SendKeys(String As String, (Wait))
Kje,
Prvi argument "String As String" določa kombinacije tipk, ki jih želite uporabiti v programu (npr. Ctrl + S bi bila kombinacija tipk).
Počakajte, da je neobvezen parameter, ki prevzema logične vrednosti TRUE in FALSE. Če ima čakanje vrednost TRUE, to pomeni, da bo sistem počakal, da bodo ključi obdelani, nato pa prešel v naslednjo vrstico in jih zbral / izvedel. Če je vrednost čakanja FALSE (lahko ostane prazna), sistem ne bo čakal, da bodo ključi obdelani, in bo še naprej izvajal celotno kodo.
Uporabljajo se nekatere metode, s katerimi lahko kombinirate pritiske tipk s Ctrl, Shift ali Alt. Poglejmo, kako lahko to storimo Naslednja je tabela, ki določa kombinacije pritiskov tipk za SendKeys s Ctrl, Shift in Alt:
Ključ, ki ga je treba kombinirati | Uporabnik, ki se uporablja pred kombinacijo tipk |
Shift | + (Tipkovnica plus znak) |
Ctrl | (Znak karetnega operaterja) |
Alt | % (Znak za odstotek) |
No, kaj to pomeni? To pomeni, da če želite pod kodo uporabiti kombinacijo tipkovnice kot Ctrl + S, lahko uporabite metodo SendKeys in to storite s SendKeys, nato pa s Ctrl operaterjem Caret (^) in nato s. Trenutni delovni list bo shranjen v datoteki excel.
Kako uporabljati metodo SendKeys v Excelu VBA?
Spoznali bomo uporabo metode SendKeys v Excelu s pomočjo kode VBA.
Predlogo VBA SendKeys Excel lahko prenesete tukaj - VBA Predloga SendKeys ExcelVBA SendKeys - primer # 1
Imejmo nekaj preprostih primerov, ki nam bodo omogočili, da se poglobimo v delovanje ukaza VBA SendKeys.
V tem prvem primeru bomo videli zelo enostavno avtomatizacijo, ki samodejno shrani trenutno odprto datoteko Excel. Za shranjevanje datoteke vam ni treba pritisniti gumba Shrani ali Ctrl + S. Za dosego rezultata sledite spodnjim korakom.
1. korak: Odprite modul na zavihku menija Vstavljanje, kot je prikazano spodaj.
2. korak: Določite nov podproces, ki lahko vsebuje vaš makro.
Koda:
Sub Primer_1 () Končni pod
Korak 3: Zdaj, če želite shraniti katero koli datoteko, imate kombinacijo tipk na tipkovnici kot Ctrl + S., da to pretvorite v kodo, lahko uporabimo caret operator (^) in nato ključno besedo s kot argument za izjavo SendKeys.
Koda:
Sub Primer_1 () Application.SendKeys ("s") End Sub
Tu ključna beseda Application določa aplikacijo, ki ji pošiljamo tipke (v tem primeru program Excel). "S" v oklepajih določa podobno operacijo tipkovnice Ctrl + S.
4. korak: Zaženite to kodo s pritiskom na gumb Run ali s pritiskom na tipko F5.
Po uspešnem izvajanju te kode se datoteka shrani.
VBA SendKeys - primer # 2
Zdaj bomo videli, kako zapreti trenutno aplikacijo s pošiljanjem programskih tipk prek makro kode po metodi SendKeys. Sledite spodnjim korakom:
1. korak: Napišite podproceduro, ki lahko v modulu hrani makro.
Koda:
Sub Primer_2 () Končni Sub
2. korak: Za uporabo programskih tipk na tipkovnici uporabite aplikacijo Application.SendKeys. Ker je trenutno podokno VBA mogoče zapreti s tipkovnico Alt + Q, lahko pod makro uporabimo "% q".
Koda:
Sub Primer_2 () Application.SendKeys ("% q") End Sub
3. korak: Če želite zagnati to kodo, pritisnite gumb Run ali F5. Takoj, ko zaženete to kodo, se bo trenutni urejevalnik Visual Basic zaprl in odprli boste datoteko Excel.
VBA SendKeys - primer # 3
Zdaj bomo napisali kodo, ki bo samodejno odprla Notepad in vanj samodejno napisala besedilo. Oglejte si posnetek zaslona:
1. korak: Napišite podproceduro, ki lahko v modulu hrani makro.
Koda:
Sub Primer_3 () Konec Sub
Lupina klica omogoča sistemu, da odpre aplikacijo. Pot je tam, kjer je prisoten Notepad.exe. vbNormalFocus je izbirni argument, ki določa osredotočenost na odpiranje in obnavljanje aplikacije na prvotno velikost in položaj.
2. korak: Uporabite klic in oddajne tipke v kombinaciji, tako da lahko sistem doda besedilo v beležko.
Koda:
Pod-primer_3 () lupina klica ("C: \ Windows \ System32 \ Notepad.exe", vbNormalFocus) Končni pod
Korak 3: Tukaj z uporabo SendKeys v Beležnico dodajamo besedilo "Pozdravljeni VBA!" True določa čas čakanja za ukaz SendKeys.
Koda:
Pod-primer_3 () lupina klica ("C: \ Windows \ System32 \ Notepad.exe", vbNormalFocus) Pokliči SendKeys ("Pozdravljeni VBA!", Resnično) End Sub
4. korak: Zaženite to kodo s pritiskom na tipko F5 ali s klikom na gumb Zaženi.
Tako lahko s pomočjo metode SendKeys avtomatiziramo aplikacije prek makro VBA.
Stvari, ki jih je treba zapomniti
- Med uporabo SendKeys bodite zelo previdni, saj lahko dobite nepričakovane rezultate, če imate odprtih več aplikacij.
- SendKeys lahko uporabite za avtomatizacijo majhnih opravil, kot so shranjevanje datoteke Excel ali zapiranje datoteke Excela itd.
- Medtem ko poskušate stvari avtomatizirati, uporabite metodo SendKeys kot zadnjo možnost.
Priporočeni članek
To je vodnik za VBA SendKeys. Tukaj smo razpravljali o uporabi metode SendKeys v Excelu VBA skupaj s praktičnimi primeri in naloženo predlogo Excela. Ogledate si lahko tudi druge naše predlagane članke -
- VBA, medtem ko je zanka (primeri s predlogo Excel)
- VBA Environment | Predloge Excela
- Iskanje cilja VBA (primer)
- Kako spremeniti imenik v Excelu VBA?