人力検索はてな
モバイル版を表示しています。PC版はこちら
i-mobile

VBAについて質問です。

現在 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を入力した後のログインボタン処理をするにはどうすればいいかを知っている方おりましたらご回答いただけないでしょうか?

お手数をおかけしますがよろしくお願いいたします。


●質問者: aiomock
●カテゴリ:コンピュータ インターネット
✍キーワード:ALL Click LOGiN name VBA
○ 状態 :終了
└ 回答数 : 2/2件

▽最新の回答へ

1 ● HALSPECIAL
●35ポイント

ボタンを押さなくても、フォームをサブミットさせればできそうです。

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
◎質問者からの返答

ご回答ありがとうございます。


2 ● HALSPECIAL
●100ポイント ベストアンサー

再回答ですみません。

最初の回答はめんどくさいのと好みで型指定なしとしましたが、

できれば参照設定から、

「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
◎質問者からの返答

ご回答ありがとうございます。

関連質問


●質問をもっと探す●



0.人力検索はてなトップ
8.このページを友達に紹介
9.このページの先頭へ
対応機種一覧
お問い合わせ
ヘルプ/お知らせ
ログイン
無料ユーザー登録
はてなトップ