こんにちはゲストさん。会員登録(無料)して質問・回答してみよう!

締切り済みの質問

[VBA] IEによる自動ログインについて

こちらの識者の方々にはいつもお世話になっています。
VBAの質問です。

環境は下記になります。
OS=windows7 pro 64bit
Office=Excel2007(12.0.6712.5000) SP3
IE=11.0.9600.17501(IE11)


・やりたいこと
VBAを使用してnanacoのサイトに自動ログオンする

・試したコード
Option Explicit

Sub test()
Dim objIE As Object
Dim obj As Object

Set objIE = CreateObject("InternetExplorer.Application")
objIE.Visible = True
objIE.Navigate "https://www.nanaco-net.jp/pc/emServlet"

Do While objIE.Busy = True Or objIE.readyState <> 4
DoEvents
Loop

'ID、pass入力
For Each obj In objIE.document.getElementsByTagName("input")
If obj.ID = "XCID" Then
obj.Value = "1234567890123456" 'nanaco番号
End If
If obj.ID = "SECURITY_CD" Then
obj.Value = "1234567" 'カード記載の番号
End If
Next

'ログインボタンをクリックする
For Each obj In objIE.document.getElementsByTagName("button")
If obj.ID = "Login" Then
obj.Click
End If
Next
Set objIE = Nothing

End Sub


・問題点
ログイン画面の「カード記載の番号でログインする」の項目の「nanaco番号」「カード記載の番号」にそれぞれ「1234567890123456」「1234567」を入力したいのですが、自分で調べて上記コードを試したところ、IEは立ち上がるものの、該当の箇所に文字列が入力されません。
コードの「ログインボタンをクリックする」部分についても動作していないと思います。

VBAでIEを制御すること自体慣れていないのですが、上記コードの問題点とできればコードをご教授いただけますでしょうか。

質問に不備不足等ございましたらご指摘ください。
ご面倒お掛けしますがよろしくお願いします。

投稿日時 - 2015-02-03 10:28:03

QNo.8910126

困ってます

このQ&Aは役に立ちましたか?

1人が「このQ&Aが役に立った」と投票しています

回答(1)

ANo.1

こんな感じで。
---
Option Explicit

Sub hoge()

Const url = "https://www.nanaco-net.jp/pc/emServlet"
Dim ie As Object
Set ie = CreateObject("InternetExplorer.Application")
ie.Visible = True
ie.Navigate url

While ie.busy Or ie.ReadyState <> 4
DoEvents
Wend

ie.document.forms(0).Item("XCID").Value = "ID"
ie.document.forms(0).Item("SECURITY_CD").Value = "PW"
ie.document.forms(0).all("ACT_ACBS_do_LOGIN2").Click

End Sub

投稿日時 - 2015-02-04 08:14:57

あなたにオススメの質問