- ベストアンサー
vbaでyahooにログインする方法とは?
- vbaを使用してyahooにログインする際、コードの一部をダブルコーテーションでくくるとエラーが発生します。
- これまでは objIE.Document.all("UserName").Value = MyUserName という形式でログインしていたが、この方法ではエラーが発生するようになった。
- 代わりに objIE.Document.all.UserName.Value = MyUserName という形式でコードを書けば、問題なくログインできるようになる。
- みんなの回答 (3)
- 専門家の回答
質問者が選んだベストアンサー
#2 DOUGLAS_ です。たびたび失礼いたします。 肝心なことを書き忘れておりました。 >("UserName").Value だけ失敗するようになりました。 #2 のようなことでしたら、 On Error Resume Next objIE.Document.all("UserName").Value = MyUserName On Error GoTo 0 objIE.Document.all("Passwd").Value = PW とすればログインできました。
その他の回答 (2)
- DOUGLAS_
- ベストアンサー率74% (397/534)
>今までは・・・問題なくログインできていたのに >("UserName").Value だけ失敗するようになりました。 こちらで、お示しのコードを試してみましたが、添付画像左側のログイン画面になり、問題なくログインできました。 ただし、既にログインしている状態で、コードを走らせると、添付画像右側のログイン画面になりますので、「Yahoo! JAPAN ID」の入力欄がありませんから、やはり objIE.Document.all("UserName").Value = MyUserName のところで止まってしまいます。 ただし、エラーメッセージは、「実行時エラー '438': オブジェクトは、このプロパティまたはメソッドをサポートしていません。」でした。
お礼
既にログインしている状態!!! ココ重要ですね!うっかりしてました。 しかしエラーメッセージが違うとは、これいかに。
- teketon
- ベストアンサー率65% (141/215)
yahooのログインを見てみると https://login.yahoo.co.jp/config/login?.src=www&.done=http://www.yahoo.co.jp > <input name="login" id="username" value="" class="yreg_ipt yjM" type="text"> ということです。 以下はname属性を指定し、値を設定する方法 > objIE.Document.all("UserName").Value = MyUserName > objIE.Document.all("Passwd").Value = PW 以下はid属性を指定し、値を設定する方法 > objIE.Document.all.UserName.Value = MyUserName > objIE.Document.all.Passwd.Value = PW おそらく、以下なら動くんじゃないかな? > objIE.Document.all("login").Value = MyUserName > objIE.Document.all("Passwd").Value = PW めっちゃ勘です。
お礼
あ・・・ もしかして、objIE.Document.all("")にすると、勝手にnameタグを指定しちゃうのかもしれないですね。 objIE.Document.all()にすると、IDタグを指定かもしれない・・・ ありがとうございました。
お礼
エラーを無視&解除しちゃえばいいですね。 ありがとうございました。