VBA SendKeys - Hvordan bruke SendKeys-metoden i Excel VBA?

Innholdsfortegnelse:

Anonim

Excel VBA SendKeys

I denne artikkelen vil vi se en oversikt over Excel VBA SendKeys. Har du noen gang tenkt på å lage et program som lagrer regnearket automatisk, og du trenger ikke å trykke på Ctrl + S eller Excel Save-knappen for å gjøre det? Det ser ut til å være en fantasi, ikke sant? Imidlertid kan dette gjøres. I VBA er det en kommandosetning som heter SendKeys som lar deg sende tastetrykkene som en kommando til applikasjonen på samme måte som om du bruker tastaturet til å utføre oppgaven. (Eks. Lagre filen. Du gjør tasten Ctrl + S for å lagre en fil). Det anbefales å bruke SendKeys som det siste alternativet mens du automatiserer enhver oppgave. Årsaken bak dette er, som vi allerede har diskutert, SendKeys sender tastetrykkene til applikasjonen som for tiden er aktiv. Hva om du har et programvindu aktivt når koden kjøres der du ikke vil at endringene skal skje? Det vil gi uventede resultater, ikke sant? Dette er den eneste grunnen til at vi bør bruke SendKeys som det siste alternativet mens vi automatiserer tingene. Den kan imidlertid brukes til liten automatisering, der ingen andre applikasjonsmiljøer er i ferd med å forstyrre den du ønsket at endringen skulle skje.

Syntax SendKeys-metode:

SendKeys(String As String, (Wait))

Hvor,

Det første argumentet 'String As String' spesifiserer tastekombinasjonene du ønsket å bruke under programmet (Ex. Ctrl + S ville være tastekombinasjonen).

Vent ville være en valgfri parameter som tar Boolean-verdier SANN og FALSE. Hvis ventetiden har verdien SANN, betyr det at systemet vil vente på at nøklene blir behandlet og deretter gå til neste linje og sammenstille / kjøre det samme. Hvis venteverdien er FALSE (kan holde tom), vil ikke systemet vente på at nøklene blir behandlet og fortsetter å kjøre hele koden.

Enkelte metoder bruker du kan kombinere tastetrykkene med Ctrl, Shift eller Alt. La oss se hvordan vi kan gjøre det følgende: en tabell som spesifiserer tastetrykk-kombinasjonene for SendKeys med Ctrl, Shift og Alt:

Nøkkel som skal kombineres med Operatør som skal brukes foran tastene for kombinasjon
Skifte + (Keyboard Plus Sign)
Ctrl (Caret Operator Sign)
alt % (Prosentvis tegn)

Hva betyr det? Det betyr at hvis du vil bruke en tastatorkombinasjon som Ctrl + S under koden, kan du bruke SendKeys-metoden og gjøre det med SendKeys, deretter en Caret (^) -operatør for Ctrl og deretter “s”. Det vil lagre det gjeldende regnearket i Excel-filen.

Hvordan bruke SendKeys-metoden i Excel VBA?

Vi lærer hvordan du bruker SendKeys-metoden i Excel ved å bruke VBA-koden.

Du kan laste ned denne VBA SendKeys Excel Template her - VBA SendKeys Excel Template

VBA SendKeys - Eksempel # 1

La oss ha noen enkle eksempler som lar oss dykke dypere i arbeidet med VBA SendKeys-kommandoen.

I dette første eksemplet er vi i ferd med å se veldig enkel automatisering som automatisk lagrer den nåværende Excel-filen som er åpen. Du trenger ikke trykke på Lagre-knappen eller Ctrl + S for å lagre filen. Følg trinnene nedenfor for å oppnå resultatet.

Trinn 1: Åpne modulen fra Sett inn menyfanen som vist nedenfor.

Trinn 2: Definer en ny delprosedyre som kan inneholde makroen.

Kode:

 Undereksempel_1 () Slutt sub 

Trinn 3: Nå, for å lagre en hvilken som helst fil, har du en tastaturtastkombinasjon som Ctrl + S. for å konvertere denne til kode, kan vi bruke caret operator (^) og deretter "s" nøkkelordet som et argument til SendKeys uttalelse.

Kode:

 Subeksempel_1 () Application.SendKeys ("s") Slutt Sub 

Her spesifiserer søkeordapplikasjonen applikasjonen vi sender tastetrykkene til (i dette tilfellet Excel-applikasjon). “S” under parentesene spesifiserer den lignende tastaturoperasjonen Ctrl + S.

Trinn 4: Kjør denne koden ved å trykke på Kjør-knappen eller ved å trykke på F5-tasten.

Etter vellykket kjøring av denne koden, blir filen lagret.

VBA SendKeys - Eksempel # 2

Nå er vi i ferd med å se hvordan du lukker en gjeldende applikasjon ved å sende hurtigtaster gjennom makrokoden ved å bruke SendKeys-metoden. Følg trinnene nedenfor:

Trinn 1: Skriv delprosedyren som kan holde makroen din under modulen.

Kode:

 Undereksempel_2 () Slutt sub 

Trinn 2: Bruk Application.SendKeys-metoden for å sende tastatur-tastene til applikasjonen. Siden den nåværende VBA-ruten kan lukkes med tasten Alt + Q-snarveien, kan vi bruke “% q” under makroen.

Kode:

 Subeksempel_2 () Application.SendKeys ("% q") Slutt Sub 

Trinn 3: Trykk på Kjør-knappen eller F5 for å kjøre denne koden. Så snart du kjører denne koden, lukkes den nåværende Visual Basic Editor, og du navigerer til Excel-filen.

VBA SendKeys - Eksempel # 3

Nå skal vi skrive en kode som automatisk åpner Notisblokken og skriver en tekst automatisk i den. Se skjermdumpen nedenfor:

Trinn 1: Skriv delprosedyren som kan holde makroen din under modulen.

Kode:

 Undereksempel_3 () Slutt sub 

Call Shell lar systemet åpne applikasjonen. Stien er der Notepad.exe er til stede. vbNormalFocus er et valgfritt argument som spesifiserer fokuset på å åpne og gjenopprette applikasjonen til den opprinnelige størrelsen og plasseringen.

Trinn 2: Bruk samtale- og sendetaster i kombinasjon slik at systemet kan legge til en tekst i Notisblokk.

Kode:

 Undereksempel_3 () Ring Shell ("C: \ Windows \ System32 \ Notepad.exe", vbNormalFocus) Slutt sub 

Trinn 3: Her legger vi til teksten "Hello VBA!" Ved å bruke SendKeys til Notisblokken. True spesifiserer ventetiden for SendKeys-kommandoen.

Kode:

 Undereksempel_3 () Ring Shell ("C: \ Windows \ System32 \ Notepad.exe", vbNormalFocus) Ring SendKeys ("Hallo VBA!", Sant) Slutt sub 

Trinn 4: Kjør denne koden ved å trykke på F5-tasten eller ved å klikke på Kjør-knappen.

Slik kan vi bruke SendKeys-metoden for å automatisere applikasjonene gjennom VBA-makro.

Ting å huske

  • Vær veldig forsiktig når du bruker SendKeys siden det kan gi uventede resultater hvis du har flere programmer åpne.
  • Du kan bruke SendKeys til å automatisere de små oppgavene som å lagre en Excel-fil eller lukke en Excel-fil osv.
  • Bruk SendKeys-metoden som et siste alternativ mens du prøver å automatisere tingene.

Anbefalt artikkel

Dette er en guide til VBA SendKeys. Her diskuterer vi hvordan du bruker SendKeys Method i Excel VBA sammen med praktiske eksempler og nedlastbar Excel-mal. Du kan også gå gjennom andre foreslåtte artikler -

  1. VBA While Loop (eksempler med Excel-mal)
  2. VBA Environ | Excel-maler
  3. VBA-målsøk (eksempel)
  4. Hvordan endre navn på arbeidsark i Excel VBA?