Excel VBA SendKeys
I denne artikel vil vi se en oversigt over Excel VBA SendKeys. Har du nogensinde tænkt på at oprette et program, der gemmer dit regneark automatisk, og du behøver ikke at trykke på Ctrl + S eller Excel Save-knappen for at gøre det? Det ser ud til at være en fantasi, ikke? Dette kan dog gøres. I VBA er der en kommandoerklæring kaldet SendKeys, som giver dig mulighed for at sende tastetrykkene som en kommando til applikationen på samme måde, som hvis du bruger tastaturet til at udføre opgaven. (Eks. Lagring af filen. Du gør tasten Ctrl + S for at gemme en fil). Det anbefales at bruge SendKeys som den sidste mulighed, mens du automatiserer enhver opgave. Årsagen bag dette er, som vi allerede har diskuteret, SendKeys sender tastetryk til den applikation, der i øjeblikket er aktiv. Hvad hvis du har et programvindue aktivt på det tidspunkt, hvor koden kører, hvor du ikke ønsker, at ændringerne skal ske? Det vil give uventede resultater, ikke? Dette er den eneste grund, at vi skal bruge SendKeys som den sidste mulighed, mens vi automatiserer tingene. Det kan dog bruges til den lille automatisering, hvor intet andet applikationsmiljø er ved at forstyrre den, du ønskede, at ændringen skulle ske.
Syntax SendKeys-metode:
SendKeys(String As String, (Wait))
Hvor,
Det første argument 'String As String' specificerer de nøglekombinationer, du ville bruge under programmet (Ex. Ctrl + S ville være nøglekombinationen).
Vent ville være en valgfri parameter, der tager Boolean-værdier SAND og FALSE. Hvis ventetiden har værdien SAND, betyder det, at systemet venter på, at nøglerne behandles og derefter gå til næste linje og kompilere / køre det samme. Hvis venteværdien er FALSE (kan forblive tom), venter systemet ikke på, at nøglerne behandles og fortsætter med at køre hele koden.
Visse metoder bruger, som du kan kombinere tastetryk med Ctrl, Shift eller Alt. Lad os se, hvordan vi kan gøre, at følgende er en tabel, der specificerer tastetrykskombinationerne for SendKeys med Ctrl, Shift og Alt:
Nøgle, der skal kombineres med | Operatør, der skal bruges forud for tasterne til kombination |
Flytte | + (Tastatur plus tegn) |
Ctrl | (Caret Operator Sign) |
alt | % (Procentvis tegn) |
Hvad betyder det? Det betyder, at hvis du vil bruge en tastaturkombination som Ctrl + S under koden, kan du bruge SendKeys-metoden og gøre det med SendKeys, derefter en Caret (^) -operator for Ctrl og derefter “s”. Det gemmer det aktuelle regneark i din Excel-fil.
Sådan bruges SendKeys-metoden i Excel VBA?
Vi lærer, hvordan man bruger SendKeys-metoden i Excel ved hjælp af VBA-koden.
Du kan downloade denne VBA SendKeys Excel-skabelon her - VBA SendKeys Excel-skabelonVBA SendKeys - eksempel # 1
Lad os have nogle enkle eksempler, der giver os mulighed for at dykke dybere ned i arbejdet med VBA SendKeys-kommandoen.
I dette første eksempel er vi ved at se meget enkel automatisering, der automatisk gemmer den nuværende Excel-fil, der er åben. Du behøver ikke at trykke på knappen Gem eller Ctrl + S for at gemme filen. Følg nedenstående trin for at opnå resultatet.
Trin 1: Åbn modul fra fanen Indsæt menu som vist nedenfor.
Trin 2: Definer en ny underprocedure, der kan indeholde din makro.
Kode:
Undereksempel_1 () Slut sub
Trin 3: Nu, for at gemme en hvilken som helst fil, har du en tastaturtastekombination som Ctrl + S. for at konvertere denne til kode, kan vi bruge caret-operatoren (^) og derefter "s" nøgleordet som et argument til SendKeys-erklæring.
Kode:
Subeksempel_1 () Application.SendKeys ("s") Afslut Sub
Her angiver nøgleordsprogram den applikation, som vi sender tastetryk til (i dette tilfælde Excel-applikation). “S” under parenteserne angiver den lignende tastaturoperation Ctrl + S.
Trin 4: Kør denne kode ved at trykke på Run-knappen eller ved at trykke på F5-tasten.
Efter den vellykkede kørsel af denne kode gemmes din fil.
VBA SendKeys - Eksempel # 2
Nu er vi ved at se, hvordan man lukker en nuværende applikation ved at sende softkeys gennem makrokoden ved hjælp af SendKeys-metoden. Følg nedenstående trin:
Trin 1: Skriv den underprocedure, der kan indeholde din makro under modulet.
Kode:
Undereksempel_2 () Slutundert
Trin 2: Brug Application.SendKeys-metoden til at videregive tastaturets softkeys til applikationen. Da den aktuelle VBA-rude kan lukkes med tastaturet Alt + Q-genvej, kan vi bruge “% q” under makroen.
Kode:
Subeksempel_2 () Application.SendKeys ("% q") Afslut Sub
Trin 3: Tryk på knappen Kør eller F5 for at køre denne kode. Så snart du kører denne kode, lukkes den nuværende Visual Basic Editor, og du navigerer til Excel-filen.
VBA SendKeys - eksempel # 3
Nu skal vi skrive en kode, der automatisk åbner Notepad og skriver en tekst automatisk i den. Se skærmbilledet nedenfor:
Trin 1: Skriv den underprocedure, der kan indeholde din makro under modulet.
Kode:
Undereksempel_3 () Slutundert
Call Shell giver systemet mulighed for at åbne applikationen. Stien er hvor Notepad.exe er til stede. vbNormalFocus er et valgfrit argument, der specificerer fokus på åbning og gendannelse af applikationen til dens originale størrelse og placering.
Trin 2: Brug opkalds- og sendetaster i kombination, så systemet kan tilføje en tekst i Notepad.
Kode:
Undereksempel_3 () Opkaldsskal ("C: \ Windows \ System32 \ Notepad.exe", vbNormalFocus) Slut sub
Trin 3: Her tilføjer vi teksten "Hello VBA!" Ved hjælp af SendKeys til Notepad. Sand specificerer ventetiden for SendKeys-kommandoen.
Kode:
Undereksempel_3 () Opkaldsskal ("C: \ Windows \ System32 \ Notepad.exe", vbNormalFocus) Opkald SendKeys ("Hej VBA!", Sandt) End Sub
Trin 4: Kør denne kode ved at trykke på F5-tasten eller ved at klikke på knappen Kør.
Dette er, hvordan vi kan bruge SendKeys-metoden til at automatisere applikationerne gennem VBA-makro.
Ting at huske
- Vær meget forsigtig, mens du bruger SendKeys, da det kan give uventede resultater, hvis du har flere programmer åbne.
- Du kan bruge SendKeys til at automatisere de små opgaver som at gemme en Excel-fil eller lukke en Excel-fil osv.
- Brug SendKeys-metoden som en sidste mulighed, mens du prøver at automatisere tingene.
Anbefalet artikel
Dette er en guide til VBA SendKeys. Her diskuterer vi, hvordan man bruger SendKeys-metoden i Excel VBA sammen med praktiske eksempler og downloadbar excel-skabelon. Du kan også gennemgå vores andre foreslåede artikler -
- VBA While Loop (eksempler med Excel-skabelon)
- VBA-miljø | Excel-skabeloner
- VBA-målsøgning (eksempel)
- Sådan ændres navnearkark i Excel VBA?