VBA SendKeys - Hogyan használható a SendKeys módszer az Excel VBA-ban?

Tartalomjegyzék:

Anonim

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 sablon

VBA 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 -

  1. VBA Míg a hurok (példák Excel sablonnal)
  2. VBA Environ | Excel sablonok
  3. VBA célkeresés (példa)
  4. Hogyan lehet megváltoztatni a név munkalapot az Excel VBA alkalmazásban?