ホーム > IT > VBS > WSH VBScript (VBS) 書き方 構文 作り方
目次 | 元のページ 前のページ | 次のページ サイトマップ | ページEND

自動ログイン用 VBSサンプル集 WSH VBScript 書き方 構文 作り方


自動ログイン用 VBSサンプル集 WSH VBScript (VBS) 書き方 構文 作り方



ブラウザ 「Internet Explorer」 を用いて、銀行、証券会社等各種 Web サイトに自動ログインする為の WSH VBScript (VBS) の書き方、構文について説明しています


Set objShell = WScript.CreateObject("WScript.Shell")
objShell.RegWrite "HKEY_CURRENT_USER\Software\Microsoft\Internet Explorer\Zoom\ZoomFactor",100000,"REG_DWORD"

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

objIE.FullScreen = False
objIE.Top = 0
objIE.Left = 0
objIE.Width = 1280
objIE.Height = 964

objIE.Toolbar = True
objIE.MenuBar = True
objIE.AddressBar = True
objIE.StatusBar = True
お約束の部分ですので、基本的にはこのままコピーして使用するということで問題ないかと思います


Set objIE = CreateObject
("InternetExplorer.Application")

の構文で、「Internet Explorer」のウインドウを作成しています
objIE.Navigate2 "https://ib.aozorabank.co.jp/AZIK/
BankIK?xtr=aulogon01000&NLS=AZIKP"
自動ログインしたい Web サイトの URL を指定します
Do Until objIE.Busy = False
    WScript.sleep(250)
Loop
指定サイトが開いたかどうかを250ミリセック(4分の1秒)間隔でチェックし、開くのを待ちます
objIE.Document.f1.UserID.value = "契約番号"
objIE.Document.f1.SoftKeyMode.checked = False
objIE.Document.f1.pass.value = "パスワード"
objIE.Document.f1.logon.Click
<ユーザID、パスワード等入力部分>
この部分は、実際にアクセスした Web ページの構成がどうなっているかを調べ、それに応じて書換える必要があります
Set WSHShell = WScript.CreateObject("WScript.Shell")
WSHShell.AppActivate "Explorer"
お約束の部分ですので、基本的にはこのままコピーして使用するということで問題ないかと思います
' コメント行 <コメント行>
行の先頭に、シングルクォーテーション「'」を付けると、その行はコメント行(説明等を記述するための実行されない行)となります




ユーザID、パスワード等入力部分作成の為の情報入手方法



この部分は、自動ログインしたい実際のログインページに合わせて作成する必要があります


自動ログインしたいページを 「Internet Explorer」 で開き、「Internet Explorer」 上部メニューバーから、「表示」 → 「ソース」をクリックして、自動ログインしたいページの 「HTML ソースコード」を取得します




自動ログインしたいページを 「Internet Explorer」 で開き、「Internet Explorer」 上部メニューバーから、「表示」 → 「ソース」をクリックして、自動ログインしたいページの 「HTML ソースコード」を取得します
例えば、こんな感じで「HTML ソースコード」が取得されます

例えば、こんな感じで「HTML ソースコード」が取得されます

このままでは使い辛いかと思いますので、使い慣れたエディター(さくらエディター等)がありましたら、内容をそのままコピーして、エディター上で操作した方が楽かと思います

必要な情報は、「フォーム名」、「項目名」、ページ送信(サブミット)の方法です

まずは、「name」で検索してみましょう


必要な個所に名前が付けられていれば、それで必要な情報 = 各「名前」が得られるのですが、「名前」の付けられていないページも少なくありませんので、その場合、下記の記述例を参考に試行錯誤してみる必要があります




ユーザID パスワード等 入力部分の簡単作成方法 (フォーム番号 項目番号 指定操作)



「name」で検索してみても、よく分からない場合、もしくは、そもそも名前が付けられていない場合、または、いちいち名前を探すなんて面倒くさいという場合、フォーム番号、項目番号指定入力、及び、クリックでまずは試してみましょう

それでログインできれば、それはそれで良しということで ・・・

※.フォームには名前が付けられていない事の方が多く、項目についても、名前が付けられていないことは、多々あります




フォーム番号 項目番号 それぞれの番号の求め方



フォーム番号、項目番号ともに、「0」からスタートして、順次実行してみて、エラーメッセージ(「オブジェクトでサポートされていないプロパティまたはメソッドです」等)、および、実際に開かれたWebページの動き、項目に値が入力されるかどうか、どこに入力されるか等を見て、番号を「1」づつ増やしていきます



フォーム番号 項目番号 指定の記述例



spaaqs 光.vbs
フォーム(Forms)、および、項目(Item)に名前が付けられていないため、それぞれの番号で入力、項目番号でクリック送信しています フォーム名 フォーム番号
項目名 項目番号
送信 項目番号.Click
objIE.Document.Forms(0).item(5).value = "お客様番号"
objIE.Document.Forms(0).item(6).value = "パスワード"
'objIE.Document.Forms(0).item(7).click




ユーザID、パスワード等入力部分の記述例



基本構文



ID、パスワード等の値の入力 objIE.Document.「フォーム名」.「項目名」.value = "「入力値」"
値入力後のページ送信(サブミット) objIE.Document.「フォーム名」.「項目名」.Click



記述例




じぶん銀行 (SMBC日興証券、JCB、au お客様サポート) 銀行編
フォーム(Forms)、項目(Item)ともに名前が付けられていて、フォーム自体をサブミット(送信)してログインするケースです フォーム名
項目名
送信 フォーム名.Submit
objIE.Document.frmLogon.fldLoginUserCRN1.value = "お客さま番号 上5桁"
objIE.Document.frmLogon.fldLoginUserCRN2.value = "お客さま番号 下5桁"
objIE.Document.frmLogon.fldPassword.value = "ログインパスワード"
objIE.Document.frmLogon.Submit
マネックス証券 証券会社編
フォーム(Forms)には名前が付けられていますが、項目(Item)には、名前が付けられていない為、フォーム内の先頭からの順番番号で、項目を特定 しています フォーム名
項目名 項目番号 ※
送信 フォーム名.Submit
objIE.Document.F1.Item(0).value = "ログインID"
objIE.Document.F1.Item(1).value = "パスワード"
objIE.Document.F1.Submit
※ 項目番号は、そのページ内で先頭から何番目の項目かを表し、Item(0)から数えます
カブドットコム証券 (楽天カード) 証券会社編
項目(Item)には名前が付けられていますが、フォーム(Forms)に名前が付けられてないため、フォームの順番番号で操作、サブミット(送信)するケースです フォーム名 フォーム番号 ※
項目名
送信 フォーム番号.Submit ※
objIE.Document.Forms(1).SsLogonUser.value = "口座番号"
objIE.Document.Forms(1).SsLogonPassword.value = "パスワード"
objIE.Document.Forms(1).Submit
※ フォーム(Forms)番号は、そのサイトへアクセスした際の先頭からの画面番号ですが、分かり難いことが多いため、Forms(0)から始め、数字を1づつ増やしながら総当たりしてみる必要が生じます
Oki Doki ランド カード編
フォーム(Forms)、および、項目(Item)に名前が付けられていないため、それぞれの番号で操作、サブミットしています フォーム名 フォーム番号
項目名 項目番号
送信 フォーム番号.Submit
objIE.Document.Forms(1).Item(2).value = "MyJCB ID"
objIE.Document.Forms(1).Item(3).value = "パスワード"
objIE.Document.Forms(1).Submit
三菱UFJ信託銀行 銀行編
フォーム(Forms)、入力用項目(Item)ともに名前が付けられていますが、送信用項目名が不明なため、フォーム内の先頭からの順番番号で click しています フォーム名
項目名
送信 項目番号.Click
objIE.Document.GLG01010101Form.userId.value = "会員番号"
objIE.Document.GLG01010101Form.SoftKeyMode.click
objIE.Document.GLG01010101Form.password1.value = "パスワード"
objIE.Document.GLG01010101Form.Item(7).click
三菱東京UFJ銀行 銀行編
フォーム(Forms)、入力用項目(Item)ともに名前が付けられていますが、送信用項目名が不明なため、画像ファイル(gif)を手掛かりに検索し、click しています フォーム名
項目名
送信 画像ファイル.Click ※
objIE.Document.MainForm.KEIYAKU_NO.value = "契約番号"
objIE.Document.MainForm.PASSWORD.value = "パスワード"
For n = 0 To objIE.Document.images.Length - 1
    Set objIMG = objIE.Document.images(n)
    If InStr(objIMG.src, "https://directg.s.bk.mufg.jp/refresh/imgs/_DIRECT_IMAGE/LOGINOUT/btn_login_off.gif") > 0 Then
    objIMG.Click
    Exit For
End If
Next
※ 「btn_login_off.gif」を手掛かりにループして検索して求めています
楽天銀行 銀行編
フォーム(Forms)には名前が付けられていますが、項目(Item)には名前が付けられていない為、フォーム内の先頭からの順番番号で、項目を特定 しています フォーム名
項目名 項目番号
送信 項目番号.Click
objIE.Document.LOGIN.Item(0).value = "ユーザID"
objIE.Document.LOGIN.Item(1).value = "パスワード"
objIE.Document.LOGIN.Item(2).Click
三菱UFJMS証券 証券会社編
フォーム(Forms)には名前が付けられていますが、項目(Item)ではなく、その要素(elements)番号で指定するケースです フォーム名
項目名 要素番号
送信 all("SUBMIT").Click
objIE.Document.forms("form").elements("ACCOUNTUID").value = "口座番号"
objIE.Document.forms("form").elements("PASSWORD").value = "パスワード"
objIE.Document.forms("form").all("SUBMIT").Click
toto その他編
フォーム(Forms)には名前が付けられていますが、項目(Item)ではなく、その要素(elements)番号で指定するケースで、アンカーテキスト「ログイン」リンクをClickしてログインします フォーム名
項目名 要素番号
送信 「ログイン」リンク.Click
objIE.Document.Forms("MPA01Form").elements("idOrNicknam").value = "会員ID"
objIE.Document.Forms("MPA01Form").elements("passwd").value= "パスワード"
For Each objLINK In objIE.Document.Links
    If objLINK.InnerText = "ログイン" Then
        objLINK.Click
        Exit For
    End If
Next
あおぞら銀行 (ジャパンネット銀行 年金) 銀行編
フォーム(Forms)、項目(Item)ともに名前が付けられていて、「ログイン」をクリックしてログインするケースです フォーム名 フォーム番号
項目名
送信 項目名.Click
objIE.Document.Forms(0).BTX0010.value = "契約番号"
objIE.Document.Forms(0).S.checked = False
objIE.Document.Forms(0).BPW0020.value = "パスワード"
objIE.Document.Forms(0).forward_BSM2010.Click
※ あおぞら銀行は、デフォルトで、「ソフトウェアキーボードを使用する 」にチェックが付いている為、「objIE.Document.Forms(0).S.checked = False」で、チェックをはずしています
ジャックス インターコムクラブ カード編
項目(Item)には名前が付けられていますが、フォーム(Forms)に名前が付けられてなく、input type="image" alt="ログイン"をクリックしてログインします フォーム名 フォーム番号
項目名
送信 input type="image".Click
objIE.Document.Forms(0).IUSERID.value = "ユーザID"
objIE.Document.Forms(0).IPASSWORD.value = "ログインパスワード"
set btn = objIE.document.getElementsByTagName("input")
for each i in btn
    if (lcase(i.type) = "image") and (i.alt = "ログイン") then
        i.onclick()
        exit for
    end if
next
spaaqs 光.vbs ネットワーク サービス編
フォーム(Forms)、および、項目(Item)に名前が付けられていないため、それぞれの番号で入力、項目番号でクリック送信しています フォーム名 フォーム番号
項目名 項目番号
送信 項目番号.Click
objIE.Document.Forms(0).item(5).value = "お客様番号"
objIE.Document.Forms(0).item(6).value = "パスワード"
'objIE.Document.Forms(0).item(7).click




ログイン失敗エラーメッセージ



構文に誤り、もしくは、指定誤りがある場合、左記のようなエラーメッセージが表示されますので、エラーの箇所(この例では、22行目の5文字目)を修正します 構文に誤り、もしくは、指定誤りがある場合、例えば、左記のようなエラーメッセージ(オブジェクトでサポートされていないプロパティまたはメソッドです)が表示されますので、エラーの箇所(この例では、22行目の5文字目)を修正します

目次 | 元のページ 前のページ | 次のページ サイトマップ | ページTOP
ホーム > IT > VBS > WSH VBScript (VBS) 書き方 構文 作り方
   

© 2014 abhp.net All Rights Reserved.
自動ログイン用 VBSサンプル集 目次
WSH VBScript とは 書き方 構文
WSH VBScript とは 前のページ
WSH VBScript (VBS) 書き方 構文 作り方 現在のページ
WSH VBScript (VBS) 自動ログイン用 サンプル集
銀行編 次のページ
証券会社編
カード編
官公庁編
ネットワーク サービス編
その他編

参考情報


WSH VBScript (VBS) 書き方 構文 作り方 - 自動ログイン用 VBSサンプル集 - Windows & IT Tips
VBScriptについて質問です。 下記のボタンを自動クリックしたい… - 人力検索はてな
SendKeysを利用して「ある程度」自動処理を実行するVBスクリプト http--pnpk.net
IEへのキー入力をVBScriptで再現する。 - Qiita
SendKeys (WshShell オブジェクト) - WSH@Workshop

コンテンツ一覧

ページTOP
ページTOP
ページTOP
ページTOP