【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を動かすために必要な情報をまとめています!!
コメント欄