WSHのボタン操作まとめ よく忘れるボタン操作をメモしました。
目次
WSHのボタン操作まとめ
WindowsボタンやTABボタン。いろんなキー操作をしたい訳ですが、どう記入すればよいかをまとめます。
キーボードのキーを単体の操作
| ボタン | 記載文字 | 備考 |
| F1 | {F1} | { }で囲んでいないと F + 1 になる |
| F2 | {F2} | |
| F3 | {F3} | |
| F4 | {F4} | |
| F5 | {F5} | |
| F6 | {F6} | |
| F7 | {F7} | |
| F8 | {F8} | |
| F9 | {F9} | |
| F10 | {F10} | |
| F11 | {F11} | |
| F12 | {F12} | |
| + | {+} | |
| ^ | {^} | |
| % | {%} | |
| ~ | {~} | |
| [ | {[} | |
| ] | {]} | |
| { | {{} | |
| } | {}} | |
| ( | {(} | |
| ) | {)} | |
| Space | ” “ | 半角スペース |
| Shift | + | |
| Ctrl | ^ | |
| Alt | % | |
| Home | {HOME} | |
| End | {END} | |
| Enter | {ENTER} | ~も可 |
| BackSpace | {BACKSPACE} | {BS}、{BKSP}も可 |
| Insert | {INSERT} | {INS}も可 |
| Delete | {DELETE} | {DEL}も可 |
| ↑ | {UP} | |
| ↓ | {DOWN} | |
| ← | {LEFT} | |
| → | {RIGHT} | |
| PageUp | {PGUP} | |
| PageDown | {PGDN} | |
| Esc | {ESC} | |
| Tab | {TAB} | |
| Caps Lock | {CAPSLOCK} | |
| Num Lock | {NUMLOCK} | |
| Scroll Lock | {SCROLLLOCK} | |
| Break | {BREAK} | |
| PRINT SCREEN | {PRTSC} | 画面のキャプチャ機能は動かない |
| Windows | ^{ESC} | Ctrl + ESCの意味 |
例えば、ESCボタンクリックを指示したい場合 【 操作object.SendKeys(“{ESC}”); 】と書きます。
組合わせのボタン操作を指示する
自動操作の指示の時、ボタン1つで完了する事はあまりありません。
例えばWindowsでは ALTを押しながらF4を押すと終了指示が飛びます。
自動化ではこういったコントロールが必須になります。
Shift や Alt を押しながら他のボタンを押す
『押しながら』は2つの方法で記載できます。
- objShell.SendKeys( “%”+”{F4}” );
- objShell.SendKeys( “%{F4}” );
1つのボタンづつ+でつなげる方法とまとめて書いてしまう方法です。
後者の方が記載は楽ですよね。
同じボタンを複数回押す
objShell.SendKeys( “{TAB 10}” );
これでTABを連続10回押すと言う指示になります。
ただし、ここに大きな問題が…。
TAB×10を指示しているのに9回しか押されていない
PCの動作環境によって、認識されない事があります。
そういったシーンを回避するために次のように書くのが最善です。
|
1 2 3 4 |
For i = 1 To 10 Then objShell.SendKeys( "{TAB}" ); WScript.Sleep( 100 ); Next |
1回あたり0.1秒待ちを入れると10回押すの確実性が向上します。
単語や文章を記載する
objShell.SendKeys( “ABCDEFG” );
これでA~Gまでのボタンを順に押すという意味になります。
まとめ
例えばメモ帳を起動して上記操作を行った場合、メモ帳が起動しきる前に入力された値は全てメモ帳に反映されません。
その時点でのアクティブなウィンドにて処理される事になります。
つまり、何のアプリも起動していない状態で、メモ帳を起動を指示、直後にALT+F4を指示すると…
Windowsの終了を実行してしまうんです。
ここら辺がWSHの怖い所。十分に注意していきましょう。
-
前の記事
WSHでのアプリを起動はexeパスでOK 2020.09.02
-
次の記事
Excelマクロで発生したエラーとその回避方法(H80004005) 2020.09.03
コメントを残す