search
LoginSignup
1
Help us understand the problem. What are the problem?

More than 1 year has passed since last update.

posted at

updated at

【VBS】IE自動ログインスクリプト【Webスクレイピング】

1. はじめに

サービスへログインする際はIDやパスワードが必要になります。
職場では様々なサービスを使用しますが、それだとそのサービスの数だけID,パスワードを入力する必要があり面倒です。
なので今回は、IDやパスワードといった項目を自動で入力してくれるスクリプトを作成することでその手間を省いていきたいと思います。

2. 概要

<目標>
スクリプトを実行することにより、指定のWebサービスへ自動ログインする。

<メリット>
ログイン画面でのIDやpasswdの入力の手間を省く。

<実現方法>
IEのWebスクレイピングを行うVBスクリプトを作成することで実現。

3. VBSソースコード

以下スクリプトになります。
指定箇所をご自身の環境に合わせて変更して下さい。

IE自動ログインスクリプト
Option Explicit

    Dim objIE
    Dim el

    Set objIE = CreateObject("InternetExplorer.Application")
    objIE.Visible = True

    '// IEを開く
    '※ [example.com]をログインしたいサイトURLに変えてください 
    objIE.navigate "example.com"

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

    '// a要素にログインがあったらクリックする
    '※ 環境に合わせて【ログイン】を変えて下さい
    For each el In objIE.document.Links             
        if instr(el.innerText,"ログイン") then
            el.click
            exit for    
        end if
    next    

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

     '// IDとパスワードを入力する
     '※ Elementを環境に合わせて変えて下さい
     '※ valueをご自身のIDとpasswordに変えて下さい
     With objIE.document       
        .getElementsByName("login_element")(0).Value = "login_id" 
        .getElementsByName("password_element")(0).Value = "password"        
     End With     

    Dim objbutton

    '// button要素をコレクションとして取得
    '※ Elementを環境に合わせて変えて下さい
    Set objbutton = objIE.document.getElementbyid("button_id")

    objbutton.click

4. まとめ

スクリプト実行の際、多少の画面遷移がありますがやはり自動でログインしてくれるというは便利なものです。
職場がIE環境の方は是非上記をスクリプトを試してみて下さい。
では以上で失礼します。

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
What you can do with signing up
1
Help us understand the problem. What are the problem?