Excel VBA SendKeys
Ebben a cikkben az Excel VBA SendKeys vázlatát látjuk. Gondolt már olyan program létrehozására, amely automatikusan elmenti a munkalapját, és ehhez nem kell megnyomnia a Ctrl + S vagy az Excel Mentés gombot? Úgy tűnik, hogy egy fantasy, igaz? Ezt azonban meg lehet tenni. A VBA-ban van egy SendKeys nevû parancsnyilatkozat, amely lehetõvé teszi a billentyûnyomások parancsként való elküldését az alkalmazás számára, ugyanúgy, mintha a billentyûzetet használja a feladat elvégzéséhez. (Pl. A fájl mentése. A Ctrl + S átváltó billentyűzetet használja a fájl mentéséhez). Ajánlott a SendKeys használata utolsó opcióként, miközben bármilyen feladatot automatizál. Ennek oka az, amint azt már tárgyaltuk, a SendKeys elküldi a billentyűleütéseket a jelenleg aktív alkalmazásnak. Mi lenne, ha egy aktív alkalmazásablak lenne a futó kód idején, amely alatt nem akarja, hogy a változások megtörténjenek? Váratlan eredményeket fog adni, ugye? Ez az egyetlen ok, a SendKeys-et kell az utolsó lehetőségként használni, miközben automatizáljuk a dolgokat. Használható azonban a kis automatizáláshoz, ahol semmilyen más alkalmazáskörnyezet nem zavarja meg azt a környezetet, amelyben a változást szeretné.
Szintaxis SendKeys módszer:
SendKeys(String As String, (Wait))
Hol,
Az első argumentum, a 'String As String', meghatározza azokat a billentyűkombinációkat, amelyeket a program alatt használni kívánt (Pl. Ctrl + S lenne a billentyűkombináció).
A „Várakozás ” opcionális paraméter, amely a Boolean adott értékeket TRUE és FALSE értékre veszi. Ha a várakozás értéke TRUE, ez azt jelenti, hogy a rendszer megvárja a kulcsok feldolgozását, majd ugrik a következő sorra, és lefordítja / futtatja ugyanazt. Ha a várakozási érték FALSE (üres lehet), akkor a rendszer nem várja meg a kulcsok feldolgozását, és továbbra is a teljes kódot futtatja.
Bizonyos módszereket használhat, amelyek kombinálhatják a billentyűleütéseket a Ctrl, a Shift vagy az Alt billentyűkombinációval. Lássuk, hogyan tudjuk ezt megtenni. Az alábbiakban egy olyan táblázat található, amely meghatározza a SendKeys billentyűkombinációinak kombinációit a Ctrl, Shift és Alt billentyűkkel:
Kulccsal kombinálható | A kezelő a billentyűk kombinációja előtt |
Váltás | + (Billentyűzet pluszjel) |
Ctrl | (Caret üzemeltető jel) |
Alt | % (Százalékjelet) |
Nos, mit jelent ez? Ez azt jelenti, hogy ha a billentyűkombinációt Ctrl + S-ként szeretné használni a kód alatt, akkor használhatja a SendKeys módszert, és megteheti a SendKeys-szel, majd a Ctrl Caret (^) operátorával, majd „s” -nel. Ez elmenti az aktuális munkalapot az Excel fájlba.
Hogyan használható a SendKeys módszer az Excel VBA-ban?
Megtanuljuk, hogyan kell a SendKeys módszert Excelben használni a VBA kód használatával.
Itt töltheti le a VBA SendKeys Excel sablont - VBA SendKeys Excel sablonVBA SendKeys - 1. példa
Nézzünk néhány egyszerű példát, amelyek lehetővé teszik, hogy mélyebben belemerüljünk a VBA SendKeys parancs működésébe.
Ebben az első példában nagyon egyszerű automatizálást látunk, amely automatikusan menti a nyitott Excel fájlt. A fájl mentéséhez nem kell megnyomnia a Mentés gombot vagy a Ctrl + S billentyűket. Az eredmény eléréséhez kövesse az alábbi lépéseket.
1. lépés: Nyissa meg a modult az Insert menü lapon az alább látható módon.
2. lépés: Adjon meg egy új alapelvet, amely képes tartani a makrót.
Kód:
Alpélda_1 () Alfejezet vége
3. lépés: Most, hogy bármilyen fájlt elmentsen, a Ctrl + S billentyűkombinációval rendelkezik, hogy ezt kódmá konvertálhassa. A caret operátort (^), majd az „s” kulcsszót használhatjuk a SendKeys utasítás argumentumaként.
Kód:
Alpélda_1 () Application.SendKeys ("s") Vége Sub
Az Alkalmazás kulcsszó itt határozza meg az alkalmazást, amelyre elküldjük a billentyűleütéseket (ebben az esetben az Excel alkalmazást). A zárójelben található „s” a Ctrl + S billentyűzet hasonló műveletét adja meg.
4. lépés: Futtassa ezt a kódot a Futtatás gomb megnyomásával vagy az F5 billentyű megnyomásával.
A kód sikeres futtatása után a fájl mentésre kerül.
VBA SendKeys - 2. példa
Most meg kell vizsgálnunk, hogyan lehet bezárni egy aktuális alkalmazást azáltal, hogy softkey-ket küldünk a makrókódon keresztül a SendKeys módszerrel. Kövesse az alábbi lépéseket:
1. lépés: Írja meg azt az alprogramot, amely a makrót a modul alatt tarthatja.
Kód:
Alpélda_2 () Albekezdés vége
2. lépés: Az Application.SendKeys metódust használva adja át a billentyűzet softkey-ket az alkalmazásnak. Mivel az aktuális VBA ablakot bezárhatjuk az Alt + Q billentyűparancsokkal, használhatjuk a „% q” makró alatt.
Kód:
Alpélda_2 () Application.SendKeys ("% q") End Sub
3. lépés: A kód futtatásához nyomja meg a Futtatás gombot vagy az F5 billentyűt. Amint elindítja ezt a kódot, a jelenlegi Visual Basic Editor bezáródik, és navigál az Excel fájlhoz.
VBA SendKeys - 3. példa
Most olyan kódot fogunk írni, amely automatikusan megnyitja a Jegyzettömböt, és automatikusan beír egy szöveget. Lásd az alábbi képernyőképet:
1. lépés: Írja meg azt az alprogramot, amely a makrót a modul alatt tarthatja.
Kód:
Alpélda_3 () Alfejezet vége
A Call Shell lehetővé teszi a rendszer számára az alkalmazás megnyitását. Az útvonal ott található, ahol a Notepad.exe található. A vbNormalFocus egy opcionális argumentum, amely meghatározza az alkalmazás megnyitásának és helyreállításának az eredeti méretére és helyzetére való összpontosítást.
2. lépés: Használja a Hívás és a Küldés gombot kombinálva, hogy a rendszer szöveget tudjon hozzáadni a Jegyzettömbbe.
Kód:
Alpélda_3 () Call Shell ("C: \ Windows \ System32 \ Notepad.exe", vbNormalFocus) Vége Sub
3. lépés: Itt hozzáadjuk a „Hello VBA!” Szöveget a SendKeys használatával a Jegyzettömbhöz. Az True a SendKeys parancs várakozási idejét adja meg.
Kód:
Alpélda_3 () Call Shell ("C: \ Windows \ System32 \ Notepad.exe", vbNormalFocus) Call SendKeys ("Hello VBA!", Igaz) End Sub
4. lépés: Futtassa ezt a kódot az F5 billentyű lenyomásával vagy a Futtatás gombra kattintással.
Így használhatjuk a SendKeys módszert az alkalmazások automatizálására a VBA makrón keresztül.
Dolgok, amikre emlékezni kell
- Legyen nagyon óvatos a SendKeys használata közben, mivel váratlan eredményeket eredményezhet, ha több alkalmazás nyitva van.
- A SendKeys segítségével automatizálhatja a kisebb feladatokat, például egy Excel fájl mentését vagy az Excel fájl bezárását stb.
- Használja utolsóként a SendKeys módszert, miközben megpróbálja automatizálni a dolgokat.
Ajánlott cikk
Ez egy útmutató a VBA SendKeys-hez. Itt megvitatjuk, hogyan lehet a SendKeys módszert használni az Excel VBA-ben, valamint a gyakorlati példákat és a letölthető Excel sablont. Megnézheti más javasolt cikkeinket -
- VBA Míg a hurok (példák Excel sablonnal)
- VBA Environ | Excel sablonok
- VBA célkeresés (példa)
- Hogyan lehet megváltoztatni a név munkalapot az Excel VBA alkalmazásban?