Excel VBA SendKeys
Tässä artikkelissa näemme yleiskatsauksen Excel VBA SendKeys -sovellukseen. Oletko koskaan ajatellut luoda ohjelman, joka tallentaa taulukon automaattisesti, eikä sinun tarvitse painaa Ctrl + S tai Excel Save -painiketta tehdäksesi niin? Se näyttää olevan fantasia, eikö niin? Tämä voidaan kuitenkin tehdä. VBA: ssa on komentolause nimeltään SendKeys, jonka avulla voit lähettää näppäinpainallukset komennona sovellukselle samalla tavalla kuin jos käyttäisit näppäimistöä tehtävän suorittamiseen. (Esimerkiksi tiedoston tallentaminen. Voit tallentaa tiedoston Ctrl + S -näppäimistöllä). On suositeltavaa käyttää SendKeys-sovellusta viimeisenä vaihtoehtona, kun automatisoit mitä tahansa tehtävää. Syynä tähän on, kuten jo keskustelimme, SendKeys lähettää näppäilypainikkeet tällä hetkellä aktiiviseen sovellukseen. Entä jos sinulla on aktiivinen sovellusikkuna koodin ajon aikana, jonka alla et halua muutosten tapahtuvan? Se antaa odottamattomia tuloksia, eikö niin? Tämä on ainoa syy, meidän pitäisi käyttää SendKeys-sovellusta viimeisenä vaihtoehtona automatisoimalla asioita. Sitä voidaan kuitenkin käyttää pienessä automaatiossa, jossa mikään muu sovellusympäristö ei häiritse sitä, jonka haluat muutoksen tapahtuvan.
Syntaksi SendKeys-menetelmä:
SendKeys(String As String, (Wait))
Missä,
Ensimmäinen argumentti 'String As String' määrittelee näppäinyhdistelmät, joita halusit käyttää ohjelman puitteissa (esim. Ctrl + S olisi näppäinyhdistelmä).
Odota olisi valinnainen parametri, joka ottaa Boolen arvot TOSI ja FALSE. Jos odotuksella on arvo TOSI, se tarkoittaa, että järjestelmä odottaa avainten käsittelyä ja siirry sitten seuraavalle riville ja kääntää / suorittaa saman. Jos odotusarvo on Väärä (voi pitää tyhjänä), järjestelmä ei odota avainten käsittelyä ja jatkaa koko koodin suorittamista.
Tietyt menetelmät käyttävät mitä voit yhdistää näppäilynäppäimet Ctrl, Shift tai Alt. Katsotaan kuinka voimme tehdä sen. Seuraava on taulukko, joka määrittelee painikkeiden yhdistelmät SendKeysille Ctrl, Shift ja Alt:
Avain, joka yhdistetään | Operaattori, jota käytetään ennen näppäinten yhdistelmää |
Siirtää | + (Näppäimistön plusmerkki) |
ctrl | (Caret-operaattorin merkki) |
alt | % (Prosenttimerkki) |
Mitä se tarkoittaa? Se tarkoittaa, että jos haluat käyttää näppäimistöyhdistelmää Ctrl + S -koodina, voit käyttää SendKeys-menetelmää ja tehdä sen SendKeys-toiminnon kanssa, sitten Ctrl: n Caret (^) -operaattorin kanssa ja sitten “s”. Se tallentaa nykyisen taulukon Excel-tiedostoosi.
Kuinka käyttää SendKeys-menetelmää Excel VBA: ssa?
Opimme käyttämään SendKeys-menetelmää Excelissä käyttämällä VBA-koodia.
Voit ladata tämän VBA SendKeys Excel -mallin täältä - VBA SendKeys Excel TemplateVBA SendKeys - esimerkki # 1
Meillä on muutamia yksinkertaisia esimerkkejä, joiden avulla voimme sukeltua syvemmälle VBA SendKeys -komennon toimintaan.
Tässä ensimmäisessä esimerkissä näemme aivan yksinkertaisen automaation, joka tallentaa automaattisesti nykyisen avoimen Excel-tiedoston. Sinun ei tarvitse painaa Tallenna-painiketta tai Ctrl + S tallentaaksesi tiedoston. Noudata alla olevia vaiheita tuloksen saavuttamiseksi.
Vaihe 1: Avaa moduuli Lisää-valikko-välilehdeltä alla olevan kuvan mukaisesti.
Vaihe 2: Määritä uusi alimenettely, joka voi pitää makroasi.
Koodi:
Alaesimerkki_1 () Loppu alaosaan
Vaihe 3: Nyt voit tallentaa minkä tahansa tiedoston näppäimistönäppäinyhdistelmällä Ctrl + S. muuntaaksesi sen koodiksi, voimme käyttää caret-operaattoria (^) ja sitten s-avainsanaa argumentiksi SendKeys-käskyyn.
Koodi:
Alaesimerkki_1 () Application.SendKeys ("s") End Sub
Tässä avainsana Sovellus määrittää sovelluksen, jolle me lähetämme näppäinpainalluksia (tässä tapauksessa Excel-sovellus). Suluissa oleva ”s” määrittelee samanlaisen näppäimistötoiminnon Ctrl + S.
Vaihe 4: Suorita tämä koodi napsauttamalla Suorita-painiketta tai painamalla F5-näppäintä.
Tämän koodin onnistuneen suorittamisen jälkeen tiedosto tallennetaan.
VBA SendKeys - esimerkki 2
Nyt olemme näkemässä, kuinka sulkea nykyinen sovellus lähettämällä toimintonäppäimiä makrokoodin avulla käyttämällä SendKeys-menetelmää. Noudata alla olevia vaiheita:
Vaihe 1: Kirjoita alimenettely, jolla makro voidaan pitää moduulin alla.
Koodi:
Alaesimerkki_2 () Loppu alaosaan
Vaihe 2: Käytä Application.SendKeys-tapaa siirtää näppäimistön pikanäppäimet sovellukselle. Koska nykyinen VBA-ruutu voidaan sulkea näppäimistöllä Alt + Q, voimme käyttää ”% q” makro-kohdassa.
Koodi:
Alaesimerkki_2 () Application.SendKeys ("% q") End Sub
Vaihe 3: Paina Suorita-painiketta tai F5 suorittaaksesi tämän koodin. Heti kun suoritat tämän koodin, nykyinen Visual Basic Editor sulkeutuu ja siirryt Excel-tiedostoon.
VBA SendKeys - esimerkki 3
Nyt kirjoitamme koodin, joka avaa Notepadin automaattisesti ja kirjoittaa tekstin siihen automaattisesti. Katso alla oleva kuvakaappaus:
Vaihe 1: Kirjoita alimenettely, jolla makro voidaan pitää moduulin alla.
Koodi:
Alaesimerkki_3 () Loppu alaosaan
Call Shell antaa järjestelmän avata sovelluksen. Polku on siellä, missä Notepad.exe on. vbNormalFocus on valinnainen argumentti, joka määrittelee painopisteen sovelluksen avaamisessa ja palauttamisessa alkuperäiseen kokoonsa ja sijaintiinsa.
Vaihe 2: Käytä puhelu- ja lähetysnäppäimiä yhdessä, jotta järjestelmä voi lisätä tekstiä Muistioon.
Koodi:
Alaesimerkki_3 () Soita kuorille ("C: \ Windows \ System32 \ Notepad.exe", vbNormalFocus) End Sub
Vaihe 3: Lisäämme tähän tekstin “Hei VBA!” Käyttämällä SendKeys -sovellusta Notepadiin. True määrittää SendKeys-komennon odotusajan.
Koodi:
Alaesimerkki_3 () Call Shell ("C: \ Windows \ System32 \ Notepad.exe", vbNormalFocus) Call SendKeys ("Hello VBA!", True) End Sub
Vaihe 4: Suorita tämä koodi napsauttamalla F5-näppäintä tai napsauttamalla Suorita-painiketta.
Näin voimme käyttää SendKeys-menetelmää sovellusten automatisointiin VBA-makron kautta.
Muistettavat asiat
- Ole erittäin varovainen käyttäessäsi SendKeys-sovellusta, koska se saattaa antaa odottamattomia tuloksia, jos sinulla on useita sovelluksia auki.
- Voit käyttää SendKeys-sovelluksia automatisoidaksesi pienet tehtävät, kuten Excel-tiedoston tallentamisen tai Excel-tiedoston sulkemisen jne.
- Käytä SendKeys-menetelmää viimeisenä vaihtoehtona, kun yrität automatisoida asioita.
Suositeltava artikkeli
Tämä on VBA SendKeys -oppaan opas. Tässä keskustellaan siitä, kuinka SendKeys-menetelmää voidaan käyttää Excel VBA: ssa, sekä käytännön esimerkkejä ja ladattavaa Excel-mallia. Voit myös käydä läpi muiden ehdottamiemme artikkeleidemme -
- VBA while Loop (esimerkkejä Excel-mallilla)
- VBA Environ | Excel-mallit
- VBA: n tavoitehaku (esimerkki)
- Kuinka muuttaa nimitaulukkoa Excel VBA: ssa?