SendKeys ステートメント

キーボードから入力したかのように、1 つ以上のキーボード操作をアクティブなウィンドウに送信します。

構文

SendKeys string, [ wait ]

SendKeys ステートメントの構文には、次の 名前付き引数があります。

パーツ 説明
string 必須。 送信するキーボード操作を指定する文字列式です。
wait 省略可能。 待機モードを指定する Boolean 値です。 False (既定値) の場合は、キーが送信された直後の プロシージャに制御が戻されます。 True の場合、キーボード操作は制御がプロシージャに戻される前に処理されている必要があります。

解説

各キーは 1 つ以上の文字で表されます。 キーボードの文字を 1 つ指定するには、その文字自体を使用します。 たとえば、文字 A を表す場合は string"A" を使用します。 複数の文字を表す場合は、前の文字に続けて追加の文字を付け加えます。 たとえば、文字 A、B、および C を表す場合は string"ABC" を使用します。

プラス記号 (+)、キャレット (^)、パーセント記号 (%)、チルダ (~)、およびかっこ ( ) は、SendKeys にとって特別な意味があります。 これらの文字のいずれかを指定する場合は、その文字を中かっこ ({}) で囲みます。 たとえば、プラス記号を指定する場合は {+} を使用します。

大かっこ ([ ]) は SendKeys にとって特別な意味を持ちませんが、中かっこで囲む必要があります。 他のアプリケーションでは、動的データ交換 (DDE) が発生するときに大かっこが重要な意味を持つことがあります。 中かっこを指定する場合は、{{}{}} を使用します。

キーを押したときに表示されない文字 (Enter、Tab など) や、文字ではなくアクションを表すキーを指定する場合は、次の表に示すコードを使用します。

キー コード
BackSpace {BACKSPACE}{BS}、または {BKSP}
Break {BREAK}
CapsLock {CAPSLOCK}
Del または Delete {DELETE} または {DEL}
{DOWN}
終了 {END}
Enter {ENTER} または ~
Esc {ESC}
HELP {HELP}
ホーム {HOME}
Ins または Insert {INSERT} または {INS}
{LEFT}
NumLock {NUMLOCK}
PageDown {PGDN}
PageUp {PGUP}
PrintScreen {PRTSC}
{RIGHT}
ScrollLock {SCROLLLOCK}
Tab {TAB}
{UP}
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}

通常のキーと Shift、Ctrl、および Alt キーの任意の組み合わせを指定するには、通常のキーのコードの前に次のコードを付加します。

キー コード
Shift +
Ctrl ^
Alt %

Shift、Ctrl、および Alt キーの任意の組み合わせを押しながら他の複数のキーを押すように指定する場合は、それらのキーのコードをかっこで囲みます。 たとえば、Shift キーを押しながら E キーと C キーを押すように指定する場合は、+(EC) を使用します。

キーの繰り返しを指定する場合は、{key number} の形式を使用します。 keynumber の間にはスペースを入れる必要があります。 たとえば、{LEFT 42} は「←」キーを 42 回押すことを意味し、{h 10} は「H」キーを 10 回押すことを意味します。

注意

Microsoft Windows または Macintosh で実行するように設計されていないアプリケーションにキーストロークを送信する場合は、SendKeys を使用できません。 また、Sendkeys でアプリケーションに PrintScreen キー {PRTSC} を送信することもできません。

この例では、Shell 関数を使用して Microsoft Windows に付属の電卓アプリケーションを実行します。 SendKeys ステートメントを使用して、いくつかの数値を加算してから電卓を閉じるキーストロークを送信しています。 (この例を確認するには、プロシージャに例を貼り付けて、そのプロシージャを実行します。 AppActivate は電卓アプリケーションにフォーカスを変更するため、コードのシングル ステップ実行はできません)。

Macintosh では、Windows 電卓の代わりに、キーボード入力を受け入れる Macintosh アプリケーションを使用してください。

Dim ReturnValue, I 
ReturnValue = Shell("CALC.EXE", 1)    ' Run Calculator. 
AppActivate ReturnValue     ' Activate the Calculator. 
For I = 1 To 100    ' Set up counting loop. 
    SendKeys I & "{+}", True    ' Send keystrokes to Calculator 
Next I    ' to add each value of I. 
SendKeys "=", True    ' Get grand total. 
SendKeys "%{F4}", True    ' Send ALT+F4 to close Calculator. 

関連項目

サポートとフィードバック

Office VBA またはこの説明書に関するご質問やフィードバックがありますか? サポートの受け方およびフィードバックをお寄せいただく方法のガイダンスについては、Office VBA のサポートおよびフィードバックを参照してください。