LoginSignup
11
22

More than 5 years have passed since last update.

VBSを使ってIEの操作を自動化する(ページ遷移・フォーム入力・ボタンクリック)

Posted at

VBSを使う理由

特にこれという理由はありません。
以前の職場で使っていたのと、調べ物をしているときにIEの自動化の記事を見かけたのでこの言語を選びました。

環境

Windows10
VBSを動かすための環境構築などはしてないので、最初から使えるのかもしれません。

実現したかったこと

  • 勤務先のポータルサイトから開けるメールのページ(Outlook)へアクセスすること

やったこと

主に以下の3つ。

  • IEを開いて目的のページへ飛んだりするページ遷移
  • ログインが必要な箇所でのフォーム入力
  • フォーム入力後のログインボタンのクリック

ソースコード

ページ遷移

※コードの全部は最後のリンクから飛んだ先に置いてるので、ここでは少し省略してます。

automate.vbs

    Dim objIE

    'オブジェクトの作成
    Set objIE = CreateObject("InternetExplorer.Application")

    'IEを表示させる。Trueで表示
    objIE.Visible = True 

    '指定したURLを開く
    objIE.Navigate2 "ポータルサイトのURL"

   'ページが読み込まれるまで待つ
    Do While objIE.Busy = True Or objIE.readyState <> 4
        WScript.Sleep 100        
    Loop

フォーム入力

automate.vbs

    'IDとパスワードを入力する
    With objIE.document      
    .getElementsByName("loginName")(0).Value = "ログインID"   
    .getElementsByName("password")(0).Value = "パスワード"        
    End With     

    Dim objbutton

    'button要素をコレクションとして取得
    Set objbutton = objIE.document.getElementById("btn_login")     

    objbutton.click


JavaScriptを書いているのと同じ感じで書けます。
With objIE.documentのところは、下のようにも書けます。

tmp.vbs
objIE.document.getElementsByName("loginName")(0).Value
objIE.document.getElementsByName("password")(0).Value

今回はinput要素のnameに対してvalueを設定していますが、
IDがあればそれを使ったほうが自分にとっては楽です。

ボタンのクリック

automate.vbs

    Dim objbutton

    'button要素をコレクションとして取得
    Set objbutton = objIE.document.getElementById("btn_login")     

    objbutton.click

上記の処理を何度か繰り返して、目的のページにたどりつくといった感じです。
これだけだとあまり恩恵は感じられませんが。。。

デバッグ用コード

変数の中身などを確認する際に使いました。
ログファイルに値を出力します。

automate.vbs

    Sub logging(str)

        Dim fso, fi
        Set fso = CreateObject("Scripting.FileSystemObject")

        'ファイルを開く
        'もしも存在しない場合には作成する
        Set fi = fso.OpenTextFile("ログファイル名", 8, true)

        fi.WriteLine (Date() & " " & Time() & ": " & str) 'ログを書き込む
        Set fi = Nothing

    End Sub

ソースコードはこちら

上に書いてあるのを全部くっつけただけのやつです。
https://gist.github.com/itsumoonazicode/6677df4c4286c5637162421bda14d314

11
22
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
11
22