- 構文
- 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