現在 objIE.document (Document.Forms)を使用して、フォームにデータを入力し、ページにログインしようと考えています。
ログインしようと考えているのはヤフオクのページで
https://login.yahoo.co.jp/config/login?.src=auc&.intl=jp&.pd=&.partner=&.protoctl=&.done=http%3A//auctions.yahoo.co.jp/jp
になります。
objIE.document.all.login.Value = "自分のID"
objIE.document.all.passwd.Value = "自分のPW"
objIE.document.all.login_form.Click
として、ログインしようとしたのですが、出来ませんでした。
多分、問題はSubmitの所のnameがわからない為、ボタンを押すことが出来ないようになっているからだと思うのですが、
お手数をおかけしますが、ヤフオクのログインページでIDとPWを入力した後のログインボタン処理をするにはどうすればいいかを知っている方おりましたらご回答いただけないでしょうか?
お手数をおかけしますがよろしくお願いいたします。
再回答ですみません。
最初の回答はめんどくさいのと好みで型指定なしとしましたが、
できれば参照設定から、
「Microsoft Internet Controls」と
「Microsoft HTML Object Library」
をチェックして、
型指定で開発しることをお勧めします。
理由は、objIE.
とかしたときに、インテリセンス(入力候補)が機能し、スペルミスを防止できたり、
そのオブジェクトがどのようなメソッド、プロパティを持っているか知ることが
できるからです。
Option Explicit Dim objIE As InternetExplorer Const READYSTATE_COMPLETE = 4 Private Declare Sub Sleep Lib "kernel32" (ByVal dwMilliseconds As Long) Sub LoginTest() Set objIE = CreateObject("InternetExplorer.Application") objIE.Visible = True objIE.Navigate2 "https://login.yahoo.co.jp/config/login?.lg=jp&.intl=jp&.src=auc&.done=http://auctions.yahoo.co.jp/jp" While objIE.ReadyState <> READYSTATE_COMPLETE Or objIE.Busy = True Sleep 200 Wend Dim objDoc As HTMLDocument Set objDoc = objIE.Document 'ドキュメントのオブジェクトに一旦入れてみたり、 objDoc.getElementById("username").Value = "xxxxxx" Dim pwd As HTMLInputElement Set pwd = objDoc.getElementById("passwd") 'INPUT要素のオブジェクトに入れてみたり、 pwd.Value = "zzzzzzz" objDoc.login_form.submit Set pwd = Nothing Set objDoc = Nothing End Sub
ボタンを押さなくても、フォームをサブミットさせればできそうです。
objIE.document.login_form.Submit
Option Explicit Const READYSTATE_COMPLETE = 4 Dim objIE Private Declare Sub Sleep Lib "kernel32" (ByVal dwMilliseconds As Long) Sub LoginTest() Set objIE = CreateObject("InternetExplorer.Application") objIE.Visible = True objIE.Navigate2 "https://login.yahoo.co.jp/config/login?.lg=jp&.intl=jp&.src=auc&.done=http://auctions.yahoo.co.jp/jp" While objIE.readyState <> READYSTATE_COMPLETE Or objIE.Busy = True Sleep 200 Wend objIE.document.getElementById("username").Value = "xxxxxxxxxxx" objIE.document.getElementById("passwd").Value = "zzzzzzzzzzzz" objIE.document.login_form.Submit End Sub
ご回答ありがとうございます。
再回答ですみません。
最初の回答はめんどくさいのと好みで型指定なしとしましたが、
できれば参照設定から、
「Microsoft Internet Controls」と
「Microsoft HTML Object Library」
をチェックして、
型指定で開発しることをお勧めします。
理由は、objIE.
とかしたときに、インテリセンス(入力候補)が機能し、スペルミスを防止できたり、
そのオブジェクトがどのようなメソッド、プロパティを持っているか知ることが
できるからです。
Option Explicit Dim objIE As InternetExplorer Const READYSTATE_COMPLETE = 4 Private Declare Sub Sleep Lib "kernel32" (ByVal dwMilliseconds As Long) Sub LoginTest() Set objIE = CreateObject("InternetExplorer.Application") objIE.Visible = True objIE.Navigate2 "https://login.yahoo.co.jp/config/login?.lg=jp&.intl=jp&.src=auc&.done=http://auctions.yahoo.co.jp/jp" While objIE.ReadyState <> READYSTATE_COMPLETE Or objIE.Busy = True Sleep 200 Wend Dim objDoc As HTMLDocument Set objDoc = objIE.Document 'ドキュメントのオブジェクトに一旦入れてみたり、 objDoc.getElementById("username").Value = "xxxxxx" Dim pwd As HTMLInputElement Set pwd = objDoc.getElementById("passwd") 'INPUT要素のオブジェクトに入れてみたり、 pwd.Value = "zzzzzzz" objDoc.login_form.submit Set pwd = Nothing Set objDoc = Nothing End Sub
ご回答ありがとうございます。
ご回答ありがとうございます。