【VBA-IE操作】sendKeysの使い方とコード一覧!キーボード操作を自動化。
<スポンサーリンク>
VBAでIE(インターネットエクスプローラー)を動かすためには、
①サイトを起動
②操作したい情報のID,NAME等を確認。
③クリックや、値を入力
という順番になりますが、
どうしても操作したい要素のIDやNAMEなどが分からない場合があります。
そんな時には最終手段です。
「タブを5回押して、エンターを押せ」というように、
VBAでキーボードの操作を自動化することで実現可能になります。
キーボード操作→ SendKeys
VBAでキーボードの操作の代わりをするためには「SendKeys」を用いる必要があります。
実際のコードの一例を下記に示します。
SendKeys "123" '1→2→3と順番に入力
SendKeys "{BS}" ’Back spaceを押す
SendKeys "^c" ’Ctrl+Cを押す(コピー)
SendKeys "{TAB} 10" ’TABを10回押す。 コマンド 回数で反復可能
microsoftの公式ページに出来ることが掲載されておりますが、
キーボードで行えることすべてできると思っていただいてokです。
キーと対応するコードは下記のとおりです。
| キー | コード |
| Shift | + |
| Ctrl | ^ |
| Alt | % |
| ↑ | {UP} |
| ↓ | {DOWN} |
| ← | {LEFT} |
| → | {RIGHT} |
| BackSpace | {BACKSPACE}、{BS}、または {BKSP} |
| Del または Delete | {DELETE} または {DEL} |
| Enter | {ENTER} または ~ |
| Break | {BREAK} |
| CapsLock | {CAPSLOCK} |
| 終了 | {END} |
| Esc | {ESC} |
| Help | {HELP} |
| ホーム | {HOME} |
| Ins または Insert | {INSERT} または {INS} |
| NumLock | {NUMLOCK} |
| PageDown | {PGDN} |
| PageUp | {PGUP} |
| PrintScreen | {PRTSC} |
| ScrollLock | {SCROLLLOCK} |
| Tab | {TAB} |
| F1 | {F1} |
| F16 | {F16} |
SendKeysでグーグル検索
ということで、グーグル検索をしてみました。
そのままキーボードの入力の命令させると、画面の表示が追い付かず、
きちんと検索することができません。
ですので、Application.Waitを用いてプログラムの処理を一時停止しております。
Sub IE_SENDKEYS()
Application.ScreenUpdating = False
'IEの起動
Dim objIE As Object
Set objIE = GetObject("", "InternetExplorer.Application")
objIE.Visible = True
objIE.Navigate "https://www.google.co.jp/" ' このURLを任意に変更
' ページの表示完了待ち。
While objIE.ReadyState <> 4 Or objIE.Busy = True
DoEvents
Wend
SendKeys "test"
waitTime = Now + TimeValue("0:00:01")
Application.Wait waitTime
SendKeys "{TAB}"
SendKeys "{ENTER}"
End Sub
最終手段 SendKeys
ということで、最終手段として、SendKeysを用いて、
キーボードの操作を勝手に行う方法を説明させてもらいました。
単純にキーボードの操作をしてもらうだけですので、
平行して他の作業などをしようとすると、間に入って邪魔することになります。
ですのであくまで最終手段として、
idやnameなどの要素を取り出して操作していくことをおすすめします。
その他、VBAでIEを動かすために必要な情報をまとめています!!




コメント欄