Sends one or more keystrokes to the active window as if typed at the keyboard.
SendKeys string[, wait]
The SendKeys statement syntax has these named arguments :
Part |
Description |
string |
String expression specifying the keystroke(s) to send. |
wait |
Boolean value specifying the wait mode. If False (default), control is returned to the procedure immediately after the keys are sent. If True, keystrokes must be processed before control is returned to the procedure. |
Each key is represented by one or more characters. To specify a single keyboard character, use the character itself. For example, to represent the letter A, use "A" for string. If you want to represent more than one character, append each additional character to the one preceding it. To represent the letters A, B, and C, use "ABC" for string.
The plus sign (+), caret (^), percent sign (%), tilde (~), and parentheses ( ) have special meanings to SendKeys. To specify one of these characters, enclose it within braces. For example, to specify the plus sign, use {+}. Brackets ([ ]) have no special meaning to SendKeys, but you must enclose them in braces as well, because in other applications, brackets do have a special meaning that may be significant when dynamic data exchange (DDE) occurs. To send brace characters, use {{} and {}}.
To specify characters that aren’t displayed when you press a key (such as ENTER or TAB) and keys that represent actions rather than characters, use the codes shown below:
Key |
Code |
BACKSPACE |
{BACKSPACE}, {BS}, or {BKSP} |
BREAK |
{BREAK} |
CAPS LOCK |
{CAPSLOCK} |
DEL |
{DELETE} or {DEL} |
DOWN ARROW |
{DOWN} |
END |
{END} |
ENTER |
{ENTER} |
ENTER |
{~} |
ESC |
{ESC} |
HELP |
{HELP} |
HOME |
{HOME} |
INS |
{INSERT} |
LEFT ARROW |
{LEFT} |
NUM LOCK |
{NUMLOCK} |
PAGE DOWN |
{PGDN} |
PAGE UP |
{PGUP} |
PRINT SCREEN |
{PRTSC} |
RIGHT ARROW |
{RIGHT} |
SCROLL LOCK |
{SCROLLLOCK} |
TAB |
{TAB} |
UP ARROW |
{UP} |
Key |
Code |
F1 |
{F1} |
F2 |
{F2} |
F3 |
{F3} |
F4 |
{F4} |
F5 |
{F5} |
F6 |
{F6} |
F7 |
{F7} |
F8 |
{F8} |
F9 |
{F9} |
F10 |
{F10} |
F11 |
{F11} |
F12 |
{F12} |
F13 |
{F13} |
F14 |
{F14} |
F15 |
{F15} |
F16 |
{F16} |
To specify keys combined with any combination of the SHIFT, CTRL, and ALT keys, precede the regular key code with one or more of the following codes:
Key |
Code |
SHIFT |
+ |
CTRL (CONTROL) |
^ |
ALT |
% |
To specify that any combination of SHIFT, CTRL, and ALT should be held down while several other keys are pressed, enclose the code for those keys in parentheses. For example, to specify to hold down SHIFT while E and C are pressed, use “+(EC)”. To specify to hold down SHIFT while E is pressed, followed by C without SHIFT, use “+EC”.
To specify repeating keys, use the form {key number}. You must put a space between key and number. For example, {LEFT 42} means press the LEFT ARROW key 42 times; {h 10} means press h 10 times.
Note SendKeys can’t send keystrokes to an application that is not designed to run in Microsoft Windows. SendKeys also can’t send the PRINT SCREEN (PRTSC) key to any application.
AppActivate Statement, DoEvents Function.
This example uses the Shell function to run the Calculator application included with Microsoft Windows; it then uses the SendKeys statement to send keystrokes to add some numbers and then quit the Calculator. The SendKeys statement is not available on the Macintosh. (To see the example, paste it into a procedure, then run the procedure. Because AppActivate changes the focus to the Calculator application, you can’t single step through the code.)
ReturnValue = Shell("CALC.EXE", 1) ' Run Calculator.ReturnValue ' Activate the Calculator.I = 1 To 100 ' Set up counting loop. SendKeys I & "{+}", True ' Send keystrokes to CalculatorI ' to add each value of I."=", True ' Get grand total."%{F4}", True ' Send ALT+F4 to close Calculator.