VBA SendKeys

Written by

Editorial Team

Reviewed by

Steve Rynearson

Last updated on December 5, 2022

VBA SendKeys

The VBA SendKeys method is used to send keystrokes to the active application:

Application.SendKeys ("s")

The above code will mimic pressing the “s” key on the keyboard.

The SendKeys method takes two arguments:

  • Keys – The key(s) you want to send to the application as text.
  • Wait (Optional) – This value can either be True or False. If True, then Excel waits for the keys to be processed first before running the next line of code. If False, then Excel continues to run the procedure without waiting for the keys to be processed.

SendKeys is usually used when interacting with other applications because it’s a quick and easy way to accomplish tasks. For example, you might use SendKeys when automating Internet Explorer.

However, you should be extremely careful when using the SendKeys Method since it can have unexpected results.  We recommend using SendKeys only as a last resort and/or when mistakes are tolerable (or easily detectable). 

VBA SendKeys Examples

Each key in terms of letters is represented by their character, for example a is “a”.
If you would like to use keys in combination with Ctrl, Shift or Alt then you have to precede the key code with the following:

Key Code
Ctrl ^
Shift +
Alt %

The following code uses the SendKeys Method to save the workbook:

Sub UsingSendKeys()

Application.SendKeys ("^s")

End Sub

As we mentioned before, you need to be extremely careful when using SendKeys. The following code specifies a waiting time of 10 seconds before the text is entered/sent to Notepad. By waiting 10 seconds, you allow Notepad a chance to open properly, reducing the chance of an error.

Note: This code uses the Application.Wait Method.

Sub UsingSendKeysWithWait()

Call Shell("C:\Windows\system32\Notepad.Exe", vbNormalFocus)
Application.Wait (Now() + TimeValue("00:00:10"))
Call SendKeys("This is Some Text", True)

End Sub

The result after 10 seconds of waiting time is:

Using Send Keys With Waiting Time in VBA

SendKeys can be an extremely quick and easy way to accomplish tasks. However, the risks of errors are relatively high. Only use SendKeys when that risk is acceptable!

VBA Coding Made Easy

Stop searching for VBA code online. Learn more about AutoMacro - A VBA Code Builder that allows beginners to code procedures from scratch with minimal coding knowledge and with many time-saving features for all users! vba save as

Learn More!

VBA Code Examples Add-in

Easily access all of the code examples found on our site.

Simply navigate to the menu, click, and the code will be inserted directly into your module. .xlam add-in.

(No installation required!)

Free Download

Return to VBA Code Examples