キーボードから入力したかのように、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 のサポートおよびフィードバックを参照してください。