SendKeys ステートメントSendKeys statement

キーボードから入力したかのように、1 つ以上のキーボード操作をアクティブなウィンドウに送信します。Sends one or more keystrokes to the active window as if typed at the keyboard.

構文Syntax

SendKeys string, [ wait ]SendKeys string, [ wait ]


SendKeys ステートメントの構文には、次の 名前付き引数があります。The SendKeys statement syntax has these named arguments:

パーツPart 説明Description
stringstring 必須。Required. 送信するキーボード操作を指定する文字列式です。String expression specifying the keystrokes to send.
waitwait 省略可能。Optional. 待機モードを指定する Boolean 値です。Boolean value specifying the wait mode. False (既定値) の場合は、キーが送信された直後の プロシージャに制御が戻されます。If False (default), control is returned to the procedure immediately after the keys are sent. True の場合、キーボード操作は制御がプロシージャに戻される前に処理されている必要があります。If True, keystrokes must be processed before control is returned to the procedure.

解説Remarks

各キーは 1 つ以上の文字で表されます。Each key is represented by one or more characters. キーボードの文字を 1 つ指定するには、その文字自体を使用します。To specify a single keyboard character, use the character itself. たとえば、文字 A を表す場合は string"A" を使用します。For example, to represent the letter A, use "A" for string. 複数の文字を表す場合は、前の文字に続けて追加の文字を付け加えます。To represent more than one character, append each additional character to the one preceding it. たとえば、文字 A、B、および C を表す場合は string"ABC" を使用します。To represent the letters A, B, and C, use "ABC" for string.

プラス記号 (+)、キャレット (^)、パーセント記号 (%)、チルダ (~)、およびかっこ ( ) は、SendKeys にとって特別な意味があります。The plus sign (+), caret (^), percent sign (%), tilde (~), and parentheses ( ) have special meanings to SendKeys. これらの文字のいずれかを指定する場合は、その文字を中かっこ ({}) で囲みます。To specify one of these characters, enclose it within braces ({}). たとえば、プラス記号を指定する場合は {+} を使用します。For example, to specify the plus sign, use {+}.

大かっこ ([ ]) は SendKeys にとって特別な意味を持ちませんが、中かっこで囲む必要があります。Brackets ([ ]) have no special meaning to SendKeys, but you must enclose them in braces. 他のアプリケーションでは、動的データ交換 (DDE) が発生するときに大かっこが重要な意味を持つことがあります。In other applications, brackets do have a special meaning that may be significant when dynamic data exchange (DDE) occurs. 中かっこを指定する場合は、{{}{}} を使用します。To specify brace characters, use {{} and {}}.

キーを押したときに表示されない文字 (Enter、Tab など) や、文字ではなくアクションを表すキーを指定する場合は、次の表に示すコードを使用します。To specify characters that aren't displayed when you press a key, such as ENTER or TAB, and keys that represent actions rather than characters, use the codes in the following table:

キーKey コードCode
BackSpaceBACKSPACE {BACKSPACE}{BS}、または {BKSP}{BACKSPACE}, {BS}, or {BKSP}
BreakBREAK {BREAK}
CapsLockCAPS LOCK {CAPSLOCK}
Del または DeleteDEL or DELETE {DELETE} または {DEL}{DELETE} or {DEL}
DOWN ARROW {DOWN}
終了END {END}
EnterENTER {ENTER} または ~{ENTER} or ~
EscESC {ESC}
HELPHELP {HELP}
ホームHOME {HOME}
Ins または InsertINS or INSERT {INSERT} または {INS}{INSERT} or {INS}
LEFT ARROW {LEFT}
NumLockNUM LOCK {NUMLOCK}
PageDownPAGE DOWN {PGDN}
PageUpPAGE UP {PGUP}
PrintScreenPRINT SCREEN {PRTSC}
RIGHT ARROW {RIGHT}
ScrollLockSCROLL LOCK {SCROLLLOCK}
TabTAB {TAB}
UP ARROW {UP}
F1F1 {F1}
F2F2 {F2}
F3F3 {F3}
F4F4 {F4}
F5F5 {F5}
F6F6 {F6}
F7F7 {F7}
F8F8 {F8}
F9F9 {F9}
F10F10 {F10}
F11F11 {F11}
F12F12 {F12}
F13F13 {F13}
F14F14 {F14}
F15F15 {F15}
F16F16 {F16}

通常のキーと Shift、Ctrl、および Alt キーの任意の組み合わせを指定するには、通常のキーのコードの前に次のコードを付加します。To specify keys combined with any combination of the SHIFT, CTRL, and ALT keys, precede the key code with one or more of the following codes:

キーKey コードCode
ShiftSHIFT +
CtrlCTRL ^
AltALT %

Shift、Ctrl、および Alt キーの任意の組み合わせを押しながら他の複数のキーを押すように指定する場合は、それらのキーのコードをかっこで囲みます。To specify that any combination of SHIFT, CTRL, and ALT should be held down while several other keys are pressed, enclose the code for those keys in parentheses. たとえば、Shift キーを押しながら E キーと C キーを押すように指定する場合は、+(EC) を使用します。For example, to specify to hold down SHIFT while E and C are pressed, use +(EC).

キーの繰り返しを指定する場合は、{key number} の形式を使用します。To specify repeating keys, use the form {key number}. keynumber の間にはスペースを入れる必要があります。You must put a space between key and number. たとえば、{LEFT 42} は「←」キーを 42 回押すことを意味し、{h 10} は「H」キーを 10 回押すことを意味します。For example, {LEFT 42} means press the LEFT ARROW key 42 times; {h 10} means press H 10 times.

注意

Microsoft Windows または Macintosh で実行するように設計されていないアプリケーションにキーストロークを送信する場合は、SendKeys を使用できません。You can't use SendKeys to send keystrokes to an application that is not designed to run in Microsoft Windows or Macintosh. また、Sendkeys でアプリケーションに PrintScreen キー {PRTSC} を送信することもできません。Sendkeys also can't send the PRINT SCREEN key {PRTSC} to any application.

Example

この例では、Shell 関数を使用して Microsoft Windows に付属の電卓アプリケーションを実行します。This example uses the Shell function to run the Calculator application included with Microsoft Windows. SendKeys ステートメントを使用して、いくつかの数値を加算してから電卓を閉じるキーストロークを送信しています。It uses the SendKeys statement to send keystrokes to add some numbers and then quit the Calculator. (この例を確認するには、プロシージャに例を貼り付けて、そのプロシージャを実行します。(To see the example, paste it into a procedure, and then run the procedure. AppActivate は電卓アプリケーションにフォーカスを変更するため、コードのシングル ステップ実行はできません)。Because AppActivate changes the focus to the Calculator application, you can't single step through the code.)

Macintosh では、Windows 電卓の代わりに、キーボード入力を受け入れる Macintosh アプリケーションを使用してください。On the Macintosh, use a Macintosh application that accepts keyboard input instead of the Windows Calculator.

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. 

関連項目See also

サポートとフィードバックSupport and feedback

Office VBA またはこの説明書に関するご質問やフィードバックがありますか?Have questions or feedback about Office VBA or this documentation? サポートの受け方およびフィードバックをお寄せいただく方法のガイダンスについては、Office VBA のサポートおよびフィードバックを参照してください。Please see Office VBA support and feedback for guidance about the ways you can receive support and provide feedback.