VBA SendKeys
Klahvivajutuste saatmiseks aktiivsele rakendusele kasutatakse VBA SendKeys meetodit.
1 | Application.SendKeys ("s") |
Ülaltoodud kood jäljendab klaviatuuri klahvi "s" vajutamist.
SendKeys meetodil on kaks argumenti:
- Klahvid - võti (võtmed), mille soovite rakendusele tekstina saata.
- Oota (Valikuline)- See väärtus võib olla tõene või vale. Kui see on tõene, ootab Excel enne järgmise koodirea käivitamist, kuni võtmed töödeldakse esmalt. Kui see on vale, jätkab Excel protseduuri käivitamist, ootamata võtmete töötlemist.
SendKeysit kasutatakse tavaliselt teiste rakendustega suhtlemisel, kuna see on kiire ja lihtne viis ülesannete täitmiseks. Näiteks võite Internet Exploreri automatiseerimisel kasutada SendKeys.
Siiski peaksite SendKeys meetodi kasutamisel olema äärmiselt ettevaatlik, kuna sellel võivad olla ootamatud tulemused. Soovitame SendKeysit kasutada ainult viimase abinõuna ja/või kui vead on talutavad (või kergesti tuvastatavad).
VBA SendKeys näited
Iga klahvi tähistatakse tähtedega nende tähemärkidega, näiteks a on a.
Kui soovite kasutada klahve kombinatsioonis Ctrl, Shift või Alt, peate võtmekoodi ette kirjutama järgmisega:
Võti | Kood |
---|---|
Ctrl | ^ |
Vahetus | + |
Alt | % |
Järgmine kood kasutab töövihiku salvestamiseks SendKeys meetodit:
12345 | Sub UsingSendKeys ()Application.SendKeys ("^s")End Sub |
Nagu me varem mainisime, peate SendKeysi kasutamisel olema äärmiselt ettevaatlik. Järgmine kood määrab 10 sekundilise ooteaja enne teksti sisestamist/märkmikku saatmist. Oodates 10 sekundit, lubate Notepadil korralikult avaneda, vähendades tõrke tõenäosust.
Märkus. See kood kasutab rakendust. Oodake.
1234567 | Sub UsingSendKeysWithWait ()Helista Shellile ("C: \ Windows \ system32 \ Notepad.Exe", vbNormalFocus)Application.Oota (praegu () + TimeValue ("00:00:10"))Helistage SendKeysile ("See on mingi tekst", tõsi)End Sub |
Tulemus pärast 10 -sekundilist ooteaega on järgmine:
SendKeys võib olla äärmiselt kiire ja lihtne viis ülesannete täitmiseks. Vigade oht on aga suhteliselt suur. Kasutage SendKeys'i ainult siis, kui see risk on vastuvõetav!