VBSでIEを操ろう!

VBSってInternetExplorerを操る事が出来るんです。

うまく使用すればログイン画面とか自動でログインさせたりなど、面白いことが出来ます。

サンプルのコードをメモ帳に貼り付けて「.vbs」の拡張子で保存すれば簡単に実行されます。


IEを起動・終了させる

IEに特定のURLを指定して起動した後、終了させるだけです。

IEの操作をするための基本。

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件目のタイトルを出力するように変更致しました。


ハイライトしている部分が変更箇所です。

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 件のコメント :

コメントを投稿