制御 キーボードSendKeysを使う

※より実装に近く表示させる為、コードの改行を避けています。スマホ等で閲覧される際は向きを変えてご覧ください。

※実装するバージョンによってはバージョンアップの仕様により動作しないコードもあります。実装には動作確認の上ご使用下さい。

 
'◆構文 SendKeys string[, wait]
'
'string 必ず指定します。転送するキー コードを表す文字列式を指定します。
'
'Wait 省略可能です。
'名前付き引数 string の転送によって行われる処理が終了するまで、実行を一時中断するかどうかを
'次に示すブール型 (Boolean) の値で指定します。
'False (既定値) プロシージャの終了を待たずに次の行に制御を移します。
'True 処理が終了するまで実行を一時中断します。
'
'解説 キーボードの各キーは 1 つ以上の文字で表されます。
'キーボード上の文字を渡すには、キーの指定にその文字を使います。
'たとえば、キーボード上の文字 A を表すには、名前付き引数 string に "A" を指定します。
'複数の文字を表すには、文字を連続して設定します。
'たとえば、文字 A、B、C を表すには、名前付き引数 string に "ABC" と指定します。
'
'プラス記号 (+)、キャレット (^)、パーセント記号 (%)、チルダ (~)、かっこ (( )) はそれぞれ SendKeys ステートメントで
'特別な意味を持っています。
'これらの文字を渡すには、文字を中かっこ ({ }) で囲んで指定します。
'たとえば、プラス記号は {+} のように指定します。
'角かっこ ([ ]) は SendKeys ステートメントでは特別な意味を持ちませんが、
'Microsoft Windows の他のアプリケーションで特別な意味を持つ場合があるので、中かっこで囲みます。
'これは、ダイナミック データ エクスチェンジ (DDE) を行うときに角かっこが重要になることがあるためです。
'文字として中かっこを渡すには、{{} または {}} を使います。
'
'(help抜粋)
 
'◆キー コード
'・BackSpace {BACKSPACE}、{BS}、または {BKSP}
'・Ctrl + Break {BREAK}
'・CapsLock {CAPSLOCK}
'・Del または Delete {DELETE} または {DEL}
'・↓ {DOWN}
'・End {END}
'・Enter {ENTER}または {~}
'・Esc {ESC}
'・Help {HELP}
'・Home {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}

'◆SendKeys ステートメントの使用例
'SendKeys ステートメントは、Macintosh では実行できません。

Dim ReturnValue, I
ReturnValue = Shell("CALC.EXE", 1) ' 電卓を実行します。
AppActivate ReturnValue ' 電卓をアクティブにします。
For I = 1 To 20 ' ループ カウンタを設定します。
SendKeys I & "{+}", True ' 電卓にキー コードを転送して、
Next I ' I の値に 1 を加算します。
SendKeys "=", True ' 和を求めます。
SendKeys "%{F4}", True ' Alt + F4 キーを転送して電卓を終了します。

 

2000年01月01日|[VBサンプルコード]:[制御]