- 構文
- WshShell.SendKeys( string )
- 引数
- string 省略可
- 送信するキーストロークを文字列式で指定。
- 戻り値
SendKeysにキーボードの文字を1つ送信するには、その文字をstring引数に指定します。例えば、「A」キーを送信するには、string引数に"A"を指定します。
SendKeysに複数のキーを送信することもできます。複数の文字列をstring引数に指定します。例えば、「A」キー、「B」キー、「C」キーを入力するには、string引数に"ABC"を指定します。
また、以下の文字はSendKeysで特別な意味を持ちます。そのため以下の文字を入力したい場合は"{}"(中括弧)で囲み「{文字}」のように記述します。
| キー | コード |
|---|---|
| + | {+} |
| ^ | {^} |
| % | {%} |
| ~ | {~} |
SendKeysでは特別な意味を持たないが、DDE(Dynamic Data Exchange)などのように角かっこが特殊な意味を持つアプリケーションにもあります。そのためそれらのアプリケーションにも対応できるように中かっこで囲む必要があります。中かっこを指定するには "{{}" と "{}}" を使用します。
| キー | コード |
|---|---|
| [ | {[} |
| ] | {]} |
| { | {{} |
| } | {}} |
キーの中には、EnterキーやTabキーなどのように文字を生成しないものや、BackSpaceキーやBreakキーなどのようにアクションを表現するものもあります。これらのキーを送信するには、次の表に示すコードを使用します。
| キー | コード |
|---|---|
| BACKSPACE | {BACKSPACE}、{BS}、{BKSP} |
| BREAK | {BREAK} |
| CAPSLOCK | {CAPSLOCK} |
| DEL or DELETE | {DELETE}、{DEL} |
| DOWN ARROW | {DOWN} |
| END | {END} |
| ENTER | {ENTER}、~ |
| ESC | {ESC} |
| HELP | {HELP} |
| HOME | {HOME} |
| INSERT or INS | {INSERT}、{INS} |
| LEFT ARROW | {LEFT} |
| NUMLOCK | {NUMLOCK} |
| PAGE DOWN | {PGDN} |
| PAGE UP | {PGUP} |
| PRINT SCREEN | {PRTCS} |
| RIGHT ARROW | {RIGHT} |
| SCROLL LOCK | {SCROLLLOCK} |
| TAB | {TAB} |
| UP ARROW | {UP} |
| F1~F16 | {F1}~{F16} |
通常のキーとShiftキー・Ctrlキー・Altキーとの組み合わせを送信するには、通常のキーの直前に次の表にある特殊文字を1つまたは複数個付与します。
| キー | コード |
|---|---|
| SHIFT | + |
| CTRL | ^ |
| ALT | % |
SendKeysで単一キーを複数回繰り返して入力するには、「{キー 回数}」という形式で指定することができます。
例えば、Aキーを10回送信したい場合、"{A 10}"と入力することで送信できます。
使い方
-
Aを3回入力。
WshShell.SendKeys("{A 3}")- 結果
AAA
-
Ctrl+Cを入力。
WshShell.SendKeys("^C") -
Ctrl+Vを入力。
WshShell.SendKeys("^V")
プログラム実行例
電卓で計算をする
DIM WshShell = CREATEOLEOBJ("Wscript.Shell")
WITH WshShell
.Run("calc.exe")
GETID("電卓", , -1)
SLEEP(3.000)
.AppActivate("電卓")
.SendKeys("123")
.SendKeys("{+}")
.SendKeys("456")
.SendKeys("{=}")
ENDWITH