VBA SendKeys - Hoe de SendKeys-methode in Excel VBA te gebruiken?

Inhoudsopgave:

Anonim

Excel VBA SendKeys

In dit artikel zien we een overzicht van Excel VBA SendKeys. Heb je er ooit aan gedacht om een ​​programma te maken dat je werkblad automatisch opslaat en hoef je daarvoor niet op Ctrl + S of Excel Save te drukken? Het lijkt een fantasie, toch? Dit kan echter wel. In VBA is er een opdrachtinstructie met de naam SendKeys waarmee u de toetsaanslagen op dezelfde manier als de opdracht naar de toepassing kunt verzenden alsof u het toetsenbord gebruikt om de taak uit te voeren. (Bijv. Het bestand opslaan. U doet Ctrl + S doortoetsenbord om een ​​bestand op te slaan). Het wordt aanbevolen om SendKeys als laatste optie te gebruiken terwijl u een taak automatiseert. De reden hierachter is, zoals we al hebben besproken, SendKeys stuurt de toetsaanslagen naar de toepassing die momenteel actief is. Wat als u een applicatievenster actief hebt op het moment van uitvoering van de code waaronder u niet wilt dat de wijzigingen plaatsvinden? Het geeft onverwachte resultaten, toch? Dit is de enige reden dat we SendKeys als laatste optie moeten gebruiken bij het automatiseren van de dingen. Het kan echter worden gebruikt voor de kleine automatisering, waar geen enkele andere applicatieomgeving op het punt staat te interfereren met degene waarvan u wilde dat de verandering zou plaatsvinden.

Syntaxis SendKeys-methode:

SendKeys(String As String, (Wait))

Waar,

Het eerste argument 'String As String' geeft de toetscombinaties aan die u in het programma wilde gebruiken (bijv. Ctrl + S zou de toetscombinatie zijn).

Wachten zou een optionele parameter zijn die Booleaanse waarden WAAR en ONWAAR neemt. Als het wachten de waarde WAAR heeft, betekent dit dat het systeem wacht tot de sleutels zijn verwerkt en dan naar de volgende regel gaan en hetzelfde compileren / uitvoeren. Als de wachtwaarde ONWAAR is (kan leeg blijven), wacht het systeem niet tot de sleutels zijn verwerkt en blijft de volledige code worden uitgevoerd.

Bepaalde methoden gebruiken waarmee u de toetsaanslagen kunt combineren met Ctrl, Shift of Alt. Laten we eens kijken hoe we dat kunnen doen. Hierna volgt een tabel met de toetscombinaties voor SendKeys met Ctrl, Shift en Alt:

Sleutel om mee te combineren Te gebruiken operator voorafgaand aan de toetsen voor combinatie
Verschuiving + (Toetsenbord plusteken)
Ctrl (Caret Operator Sign)
alt % (Percentageteken)

Wat betekent dat? Dit betekent dat als u een toetsenbordcombinatie als Ctrl + S onder de code wilt gebruiken, u de SendKeys-methode kunt gebruiken en dit met SendKeys kunt doen, vervolgens een Caret (^) -operator voor Ctrl en vervolgens "s". Het slaat het huidige werkblad op in uw Excel-bestand.

Hoe de SendKeys-methode in Excel VBA te gebruiken?

We zullen leren hoe de SendKeys-methode in Excel te gebruiken met behulp van de VBA-code.

U kunt deze VBA SendKeys Excel-sjabloon hier downloaden - VBA SendKeys Excel-sjabloon

VBA SendKeys - Voorbeeld # 1

Laten we enkele eenvoudige voorbeelden geven waarmee we dieper in de werking van het VBA SendKeys-commando kunnen duiken.

In dit eerste voorbeeld staan ​​we op het punt een zeer eenvoudige automatisering te zien die automatisch het huidige geopende Excel-bestand opslaat. U hoeft niet op de knop Opslaan of Ctrl + S te drukken om het bestand op te slaan. Volg de onderstaande stappen om het resultaat te bereiken.

Stap 1: Open Module via het tabblad Invoegen, zoals hieronder getoond.

Stap 2: Definieer een nieuwe subprocedure die uw macro kan bevatten.

Code:

 Sub Voorbeeld_1 () Einde Sub 

Stap 3: Om een ​​bestand op te slaan, hebt u een toetsencombinatie als Ctrl + S. Om dit in code om te zetten, kunnen we de operator caret (^) gebruiken en vervolgens het trefwoord “s” als argument voor de SendKeys-instructie.

Code:

 Sub Voorbeeld_1 () Application.SendKeys ("s") End Sub 

Hier geeft het trefwoord Toepassing de toepassing op waarnaar we de toetsaanslagen verzenden (in dit geval de Excel-toepassing). S tussen haakjes geeft de vergelijkbare toetsenbordbewerking Ctrl + S aan.

Stap 4: Voer deze code uit door op de knop Run te drukken of door op F5 te drukken.

Na de succesvolle uitvoering van deze code wordt uw bestand opgeslagen.

VBA SendKeys - Voorbeeld # 2

Nu staan ​​we op het punt te zien hoe we een huidige toepassing kunnen sluiten door softkeys via de macrocode te verzenden met de methode SendKeys. Volg onderstaande stappen:

Stap 1: Schrijf de subprocedure die uw macro onder de module kan bevatten.

Code:

 Sub Voorbeeld_2 () Einde Sub 

Stap 2: Gebruik de methode Application.SendKeys om de toetsenbordtoetsen aan de toepassing door te geven. Aangezien het huidige VBA-venster kan worden gesloten met de sneltoets Alt + Q, kunnen we "% q" gebruiken onder macro.

Code:

 Sub Voorbeeld_2 () Application.SendKeys ("% q") Einde Sub 

Stap 3: Druk op de knop Run of F5 om deze code uit te voeren. Zodra u deze code uitvoert, wordt de huidige Visual Basic-editor gesloten en gaat u naar het Excel-bestand.

VBA SendKeys - Voorbeeld # 3

Nu gaan we een code schrijven die automatisch het Kladblok opent en er automatisch een tekst in schrijft. Zie onderstaande screenshot:

Stap 1: Schrijf de subprocedure die uw macro onder de module kan bevatten.

Code:

 Sub Voorbeeld_3 () Einde Sub 

Met de Call Shell kan het systeem de toepassing openen. Het pad is waar Notepad.exe aanwezig is. vbNormalFocus is een optioneel argument dat de focus specificeert bij het openen en herstellen van de toepassing naar de oorspronkelijke grootte en positie.

Stap 2: Gebruik Call en Sendkeys in combinatie zodat het systeem een ​​tekst in Kladblok kan toevoegen.

Code:

 Sub Voorbeeld_3 () Call Shell ("C: \ Windows \ System32 \ Notepad.exe", vbNormalFocus) End Sub 

Stap 3: Hier voegen we de tekst "Hallo VBA!" Met behulp van SendKeys toe aan het Kladblok. True geeft de wachttijd aan voor de opdracht SendKeys.

Code:

 Sub Voorbeeld_3 () Bel Shell ("C: \ Windows \ System32 \ Notepad.exe", vbNormalFocus) Bel SendKeys ("Hallo VBA!", True) End Sub 

Stap 4: Voer deze code uit door op F5 te drukken of door op de knop Uitvoeren te klikken.

Dit is hoe we de SendKeys-methode kunnen gebruiken om de applicaties te automatiseren via VBA-macro.

Dingen om te onthouden

  • Wees zeer voorzichtig tijdens het gebruik van SendKeys, want dit kan onverwachte resultaten opleveren als u meerdere toepassingen hebt geopend.
  • U kunt de SendKeys gebruiken om de kleine taken zoals het opslaan van een Excel-bestand of het sluiten van een Excel-bestand, enz. Te automatiseren.
  • Gebruik de SendKeys-methode als laatste optie terwijl u de dingen probeert te automatiseren.

Aanbevolen artikel

Dit is een handleiding voor VBA SendKeys. Hier bespreken we hoe de SendKeys-methode in Excel VBA te gebruiken, samen met praktische voorbeelden en een downloadbare Excel-sjabloon. U kunt ook onze andere voorgestelde artikelen doornemen -

  1. VBA While Loop (voorbeelden met Excel-sjabloon)
  2. VBA Environ | Excel-sjablonen
  3. VBA-doelzoeking (voorbeeld)
  4. Hoe het naamwerkblad in Excel VBA te wijzigen?