Excel VBA SendKeys
I den här artikeln ser vi en översikt över Excel VBA SendKeys. Har du någonsin tänkt på att skapa ett program som sparar ditt kalkylblad automatiskt och du inte behöver slå Ctrl + S eller Excel Save-knappen för att göra det? Det verkar vara en fantasi, eller hur? Detta kan dock göras. I VBA finns det ett kommandotalat som heter SendKeys som låter dig skicka knapptryckningar som ett kommando till applikationen på samma sätt som om du använder tangentbordet för att utföra uppgiften. (Ex. Spara filen. Du gör Ctrl + S-tangentbordet för att spara en fil). Det rekommenderas att använda SendKeys som det sista alternativet medan du automatiserar alla uppgifter. Anledningen bakom detta är, som vi redan har diskuterat, SendKeys skickar tangenttryckningarna till applikationen som för närvarande är aktiv. Vad händer om du har ett applikationsfönster aktivt när koden körs under vilken du inte vill att ändringarna ska ske? Det kommer att ge oväntade resultat, eller hur? Detta är det enda skälet till att vi ska använda SendKeys som det sista alternativet medan vi automatiserar sakerna. Det kan dock användas för den lilla automatiseringen, där ingen annan applikationsmiljö är på väg att störa den som du ville att förändringen skulle ske.
Syntax SendKeys-metod:
SendKeys(String As String, (Wait))
Var,
Det första argumentet 'String As String' anger de tangentkombinationer som du ville använda under programmet (Ex. Ctrl + S skulle vara tangentkombinationen).
Vänta skulle vara en valfri parameter som tar Boolean-värden SANT och FALSE. Om väntan har värdet SANT, betyder det att systemet kommer att vänta på att tangenterna ska behandlas och sedan gå till nästa rad och kompilera / köra samma sak. Om väntavärdet är FALSE (kan hålla tomt) väntar systemet inte på att nycklarna ska behandlas och fortsätter att köra hela koden.
Vissa metoder använder du för att kombinera tangenttryckningar med Ctrl, Shift eller Alt. Låt oss se hur vi kan göra att följande är en tabell som anger tangenttryckningskombinationerna för SendKeys med Ctrl, Shift och Alt:
Nyckel som ska kombineras med | Operatör som ska användas före tangenterna för kombination |
Flytta | + (Keyboard Plus Sign) |
Ctrl | (Caret Operator Sign) |
Alt | % (Procenttecken) |
Tja, vad betyder det? Det betyder att om du vill använda en tangentbordskombination som Ctrl + S under koden kan du använda SendKeys-metoden och göra det med SendKeys sedan en Caret (^) -operatör för Ctrl och sedan “s”. Det kommer att spara det aktuella kalkylbladet i din Excel-fil.
Hur använder jag SendKeys-metoden i Excel VBA?
Vi kommer att lära dig att använda SendKeys-metoden i Excel med hjälp av VBA-koden.
Du kan ladda ner denna VBA SendKeys Excel-mall här - VBA SendKeys Excel-mallVBA SendKeys - Exempel # 1
Låt oss ha några enkla exempel som gör att vi kan dyka djupare i arbetet med VBA SendKeys-kommandot.
I det här första exemplet är vi på väg att se mycket enkel automatisering som automatiskt sparar den nuvarande Excel-filen som är öppen. Du behöver inte trycka på Save-knappen eller Ctrl + S för att spara filen. Följ stegen nedan för att uppnå resultatet.
Steg 1: Öppna modulen från infoga menyfliken som visas nedan.
Steg 2: Definiera en ny delprocedur som kan innehålla din makro.
Koda:
Subexempel_1 () Avsluta sub
Steg 3: Nu, för att spara vilken fil som helst, har du en tangentkombination som tangentbord som Ctrl + S. för att konvertera detta till kod, vi kan använda caret-operatören (^) och sedan "s" nyckelordet som ett argument till SendKeys-uttalandet.
Koda:
Subexempel_1 () Application.SendKeys ("s") Avsluta Sub
Här anger nyckelordsprogram applikationen som vi skickar tangenttryckningar till (i detta fall Excel-applikation). "S" under parenteserna anger den liknande tangentbordsoperationen Ctrl + S.
Steg 4: Kör den här koden genom att trycka på Kör-knappen eller genom att trycka på F5-tangenten.
Efter den lyckade körningen av denna kod sparas din fil.
VBA SendKeys - Exempel # 2
Nu håller vi på att se hur man stänger en aktuell applikation genom att skicka programknappar via makrokoden med SendKeys-metoden. Följ stegen nedan:
Steg 1: Skriv underproceduren som kan hålla ditt makro under modulen.
Koda:
Sub Exempel_2 () Slut Sub
Steg 2: Använd Application.SendKeys-metoden för att skicka tangentbordets softkeys till applikationen. Eftersom det aktuella VBA-fönstret kan stängas med tangentbordet Alt + Q-genväg, kan vi använda "% q" under makro.
Koda:
Subexempel_2 () Application.SendKeys ("% q") Avsluta Sub
Steg 3: Tryck på knappen Kör eller F5 för att köra den här koden. Så snart du kör denna kod stängs den nuvarande Visual Basic Editor och du navigerar till Excel-filen.
VBA SendKeys - Exempel # 3
Nu ska vi skriva en kod som automatiskt öppnar anteckningsblocket och skriver en text automatiskt i den. Se skärmdumpen nedan:
Steg 1: Skriv underproceduren som kan hålla ditt makro under modulen.
Koda:
Subexempel_3 () Avsluta sub
Med Call Shell kan systemet öppna applikationen. Sökvägen är där Notepad.exe finns. vbNormalFocus är ett valfritt argument som anger fokus på att öppna och återställa applikationen till dess ursprungliga storlek och position.
Steg 2: Använd samtals- och skicka-tangenter i kombination så att systemet kan lägga till en text i anteckningar.
Koda:
Subexempel_3 () Call Shell ("C: \ Windows \ System32 \ Notepad.exe", vbNormalFocus) Slut sub
Steg 3: Här lägger vi till texten "Hej VBA!" Med hjälp av SendKeys till anteckningsblocket. True anger väntetiden för SendKeys-kommandot.
Koda:
Subexempel_3 () Call Shell ("C: \ Windows \ System32 \ Notepad.exe", vbNormalFocus) Ring SendKeys ("Hej VBA!", Sant) End Sub
Steg 4: Kör den här koden genom att trycka på F5-tangenten eller genom att klicka på Kör-knappen.
Så här kan vi använda SendKeys-metoden för att automatisera applikationerna via VBA-makro.
Saker att komma ihåg
- Var mycket försiktig när du använder SendKeys eftersom det kan ge oväntade resultat om du har flera applikationer öppna.
- Du kan använda SendKeys för att automatisera de små uppgifterna som att spara en Excel-fil eller stänga en Excel-fil etc.
- Använd SendKeys-metoden som ett sista alternativ när du försöker automatisera sakerna.
Rekommenderad artikel
Detta är en guide till VBA SendKeys. Här diskuterar vi hur man använder SendKeys-metoden i Excel VBA tillsammans med praktiska exempel och nedladdningsbar Excel-mall. Du kan också gå igenom våra andra föreslagna artiklar -
- VBA While Loop (exempel med Excel-mall)
- VBA Environ | Excel-mallar
- VBA-målsökning (exempel)
- Hur ändrar jag kalkylblad i Excel VBA?