
VBSってInternetExplorerを操る事が出来るんです。
うまく使用すればログイン画面とか自動でログインさせたりなど、面白いことが出来ます。
サンプルのコードをメモ帳に貼り付けて「.vbs」の拡張子で保存すれば簡単に実行されます。
IEを起動・終了させる
IEに特定のURLを指定して起動した後、終了させるだけです。
IEの操作をするための基本。
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 | Option Explicit use_ie ' IE用 Subプロシージャ Sub use_ie() Dim ie ' IE用変数 Set ie = CreateObject( "InternetExplorer.Application" ) ' IE起動 ie.Navigate "https://www.google.co.jp" ' URL ie.Visible = True ' IEの可視化 waitIE ie ' IEの起動待機 ' 制御を破棄 ie.Quit ' IE終了 Set ie = Nothing ' 初期化 End Sub ' IEがビジー状態の間待ちます Sub waitIE(ie) Do While ie.Busy = True Or ie.readystate <> 4 WScript.Sleep 1000 Loop End Sub |
項目の入力・ボタンのクリック・画面項目の取得
先ほどのIE起動VBSをすこし改変してGoogleで特定の値を検索して1件目のタイトルを出力するように変更致しました。
ハイライトしている部分が変更箇所です。
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 | Option Explicit use_ie ' IE用 Subプロシージャ Sub use_ie() Dim ie ' IE用変数 Set ie = CreateObject( "InternetExplorer.Application" ) ' IE起動 ie.Navigate "https://www.google.co.jp" ' URL ie.Visible = True ' IEの可視化 waitIE ie ' IEの起動待機 ' キーワード入力 ie.Document.getElementsByClassName( "gLFyf gsfi" )(0).Value = "SE人生ログ" WScript.Sleep 1000 ' 検索ボタンクリック ie.Document.getElementById( "tsf" ).submit WScript.Sleep 3000 ' 1件目のリンク先名を取得 MsgBox ie.document.getElementsByClassName( "r" )(0).innerText ie.document.getElementsByClassName( "r" )(0).getElementsByTagName( "a" )(0).Click WScript.Sleep 3000 waitIE ie ' 制御を破棄 ie.Quit ' IE終了 Set ie = Nothing ' 初期化 End Sub ' IEがビジー状態の間待ちます Sub waitIE(ie) Do While ie.Busy = True Or ie.readystate <> 4 WScript.Sleep 1000 Loop End Sub |
GoogleのIDやCLASSなどのタグ名が変わってしまうと正常に動かない場合がございますのでご了承ください。(2019/04/11時点の動作確認済み)
これだけで簡単なマクロとなりますね。
ただし、VBSで色々操作出来るのはIEのみのようです。
Chromeなどは直接exeファイルを指定してURL起動までは可能でしたが、そこから操作することは出来なかったです。
0 件のコメント :
コメントを投稿