SendKeys ステートメント
キーボードから入力したかのように、1 つ以上のキーボード操作をアクティブなウィンドウに送信します。
構文
SendKeys文字列, [ 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}
の形式を使用します。
key
と number
の間にはスペースを入れる必要があります。 たとえば、{LEFT 42}
は「←」キーを 42 回押すことを意味し、{h 10}
は「H」キーを 10 回押すことを意味します。
注:
Microsoft Windows または Macintosh で実行するように設計されていないアプリケーションにキーストロークを送信する場合は、SendKeys を使用できません。 また、Sendkeys でアプリケーションに PrintScreen キー {PRTSC}
を送信することもできません。
例
この例では、Shell 関数を使用して Microsoft Windows に付属の電卓アプリケーションを実行します。 SendKeys ステートメントを使用して、いくつかの数値を加算してから電卓を閉じるキーストロークを送信しています。 (例を確認するには、プロシージャに貼り付けてから、プロシージャを実行します。 AppActivate は 電卓アプリケーションにフォーカスを変更するため、コードを 1 ステップ実行することはできません)。
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 のサポートおよびフィードバックを参照してください。