※ ChatGPTを利用し、要約された質問です(原文:VBA IE操作 ログイン後URLを取得したい)
VBAでYahooログイン後のURLを取得する方法
2012/05/17 22:49
このQ&Aのポイント
VBAを使用してYahooにログインする方法はわかりますが、ログインが成功したかどうかを判断する方法が知りたいです。ログイン後のURLを取得できれば、結果を確認できると思います。
ログインに成功した場合、http://www.yahoo.co.jp/へ移動し、ログインに失敗した場合、https://login.yahoo.co.jp/config/login?のURLが表示されます。
ログイン後の情報をエクセルに書き出す方法も考えましたが、処理に時間がかかるため断念しました。
yahooにログインするVBAコードはわかるのですが、
ログインが失敗なのか正常にログインできたのかをVBAで知りたいです。
結果を知るには、ログインボタン押下後のURLを取得できればいいと思うのですが
その方法がわかりません。
ログイン自体は、
---------------------------------------------------------
Sub ie_test()
Dim objIE As Object 'IEオブジェクト参照用
'インターネットエクスプローラーのオブジェクトを作る
Set objIE = CreateObject("InternetExplorer.application")
objIE.Visible = True '見えるようにする(お約束)
'文字列で指定したURLに飛ぶ
objIE.Navigate "https://login.yahoo.co.jp/config/login?.src=www&.done=http://www.yahoo.co.jp "
'表示終了まで待つ
Do While objIE.Busy = True
'何もしないループ(笑)
DoEvents
Loop
'項目名を指定して、データをセットする
objIE.document.all.UserName.Value = "UserName"
objIE.document.all.passwd.Value = "****"
objIE.document.Forms(0).submit
End Sub
---------------------------------------------------------
で、できました。
objIE.document.Forms(0).submitの後には、
ログインが出来ていたら
http://www.yahoo.co.jp/
のページへ行き、
ログイン失敗なら
https://login.yahoo.co.jp/config/login?
のURLが表示され、図のように
「Yahoo! JAPAN IDまたはパスワードが正しくありません。」
と表示されます。
objIE.document.Forms(0).submitの後に
MsgBox objIE.URL
を入れると
「オブジェクトは、このプロパティまたはメソッドをサポートしていません。(Error 438)」
になり、
MsgBox objIE.Navigate
を入れると
「引数の数が一致していません。または不正なプロパティを指定しています。(Error 450)」
になります。
ログイン後のソースをエクセルに書き出す方法も考えましたが、書き出しに時間がかかるのでやめました。
ご教授よろしくお願いします。
質問の原文を閉じる
質問の原文を表示する
お礼
MsgBox objIE.LocationURLでできました!ありがとうございました。大変参考になりました。