電子書籍の厳選無料作品が豊富!

こんばんは。度々すいません。

またまたIE操作で詰んでしまいました。

以前、http://hiroba.chintai.net/qa7798169.htmlで質問してご回答いただいたのですが
違うサイトにも応用しようとしたところ、うまくいきませんでした。

https://www.jaccs.co.jp/icmclub/icm_login.htmlのログインボタンを押下したいのですが

Sub test()
Dim objIE As InternetExplorer
Dim myObj As Object

Set objIE = CreateObject("InternetExplorer.Application")

objIE.navigate "https://www.jaccs.co.jp/icmclub/icm_login.html"
objIE.Visible = True

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

For Each myObj In objIE.document.forms(0).all
If TypeName(myObj) = "HTMLInputElement" Then
If myObj.alt = "ログイン" Then
Debug.Print myObj.alt
myObj.Click
Exit For
End If
End If
Next

Set objIE = Nothing
End Sub

をするとエラーにもならないけどボタンも押せません。
でもmyObj.Clickは通過しているようです。

なぜボタンを押せないのでしょうか?
ご教授よろしくお願いします。

A 回答 (3件)

こんにちわ



DOUGLAS_さんの回答にもあるとおり
IEのポップアップブロックの設定を変えたら、どうなります。

私のところは、IE8ですけど、ポップアップブロックを無効にしたら
ボタンを押せました。

設定は、ツール→インターネットオプション→プライバシー
のところで変更できます。
    • good
    • 0
この回答へのお礼

ポップアップブロックを無効にしてみたら、できました!
ありがとうございました!!!

お礼日時:2012/12/08 20:42

#1 DOUGLAS_ です。




>以外の方法でログインボタンを押下する方法はありますでしょうか?

 普通は、
objIE.Document.forms(0).submit
でイケます。

For ~~ Next
の9行を
objIE.Document.forms(0).submit
に置き換えてみてください。

 ポップアップの警告が出たら、「常にOK」とすればよいかと存じます。
    • good
    • 0
この回答へのお礼

DOUGLAS_様いつもありがとうございます。

実は、
objIE.Document.forms(0).submit
にすると、
https://www.jaccs.co.jp/Service?_TRANID=JXIF0300 …
のページが開き、ログインエラーになってしまうのです。

やはりこれもwin7が原因でしょうかね?

お礼日時:2012/12/08 20:38

 お示しのコードをそのまま実行すると、


https://www.jaccs.co.jp/icmclub/icm_login.html
のウィンドウとは別に、
https://www.jaccs.co.jp/Service?_TRANID=JXIF0300 …
のウィンドウが開いて、「お客様のIDが入力されていません。」と表示されました。

 ということで、普通にボタンを押せているようですが。。。


 VBAによる IEオブジェクト の操作の場合は、OS が Windows7 の場合には、ちゃんと動いてくれないこともあります。
 このようなご質問の場合は、お使いのパソコンの OS や IE・エクセルのバージョンなどを書いておかれた方がよいかと存じます。

 なお、OS が Windows7 の場合は、私もお手上げです(原因が分からなくて、私自身も困っております)。
    • good
    • 0
この回答へのお礼

さっそくのご回答ありがとうございます。

失礼しました。OSはwin7で、オフィスは2007です。

win7なのが原因のようですね。
試していただきありがとうございます。
OSを変える事を検討します。

ちなみに、
For Each myObj In objIE.document.forms(0).all
If TypeName(myObj) = "HTMLInputElement" Then
If myObj.alt = "ログイン" Then
Debug.Print myObj.alt
myObj.Click
Exit For
End If
End If
Next


以外の方法でログインボタンを押下する方法はありますでしょうか?
再度ご回答いただければ助かります。

お礼日時:2012/12/06 21:35

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!