VBA SendKeys

VBA SendKeys

De VBA SendKeys-methode wordt gebruikt om toetsaanslagen naar de actieve toepassing te sturen:

1 Applicatie.SendKeys ("s")

De bovenstaande code bootst het indrukken van de "s" -toets op het toetsenbord na.

De methode SendKeys heeft twee argumenten:

  • Sleutels - De sleutel(s) die u als tekst naar de applicatie wilt sturen.
  • Wacht (Optioneel)- Deze waarde kan True of False zijn. Indien True, wacht Excel totdat de sleutels eerst zijn verwerkt voordat de volgende regel code wordt uitgevoerd. Indien False, blijft Excel de procedure uitvoeren zonder te wachten tot de sleutels zijn verwerkt.

SendKeys wordt meestal gebruikt bij interactie met andere applicaties, omdat het een snelle en gemakkelijke manier is om taken uit te voeren. U kunt bijvoorbeeld SendKeys gebruiken bij het automatiseren van Internet Explorer.

U moet echter uiterst voorzichtig zijn bij het gebruik van de SendKeys-methode, omdat dit onverwachte resultaten kan hebben. We raden aan om SendKeys alleen als laatste redmiddel te gebruiken en/of wanneer fouten acceptabel (of gemakkelijk te detecteren) zijn.

Voorbeelden van VBA SendKeys

Elke toets in termen van letters wordt weergegeven door hun karakter, bijvoorbeeld a is "a".
Als u toetsen wilt gebruiken in combinatie met Ctrl, Shift of Alt, dan moet u de toetscode vooraf laten gaan door het volgende:

Toets Code
Ctrl ^
Verschuiving +
Alt %

De volgende code gebruikt de SendKeys-methode om de werkmap op te slaan:

12345 Sub met behulp vanSendKeys()Toepassing.SendKeys ("^s")Einde sub

Zoals we eerder vermeldden, moet u uiterst voorzichtig zijn bij het gebruik van SendKeys. De volgende code specificeert een wachttijd van 10 seconden voordat de tekst wordt ingevoerd/verzonden naar Kladblok. Door 10 seconden te wachten, geeft u Kladblok de kans om correct te openen, waardoor de kans op een fout wordt verkleind.

Opmerking: deze code gebruikt de Application.Wait-methode.

1234567 Sub gebruikenSendKeysWithWait()Roep Shell aan ("C:\Windows\system32\Notepad.Exe", vbNormalFocus)Toepassing.Wacht (Now() + TimeValue("00:00:10"))Bel SendKeys ("Dit is wat tekst", True)Einde sub

Het resultaat na 10 seconden wachttijd is:

SendKeys kan een extreem snelle en gemakkelijke manier zijn om taken uit te voeren. De kans op fouten is echter relatief hoog. Gebruik SendKeys alleen als dat risico acceptabel is!

wave wave wave wave wave