こんにちはゲストさん。会員登録(無料)して質問・回答してみよう!

解決済みの質問

vba ie操作 ボタンを押したい

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

またまた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は通過しているようです。

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

投稿日時 - 2012-12-05 23:45:14

QNo.7831710

暇なときに回答ください

質問者が選んだベストアンサー

こんにちわ

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

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

設定は、ツール→インターネットオプション→プライバシー
のところで変更できます。

投稿日時 - 2012-12-06 23:43:28

お礼

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

投稿日時 - 2012-12-08 20:42:42

ANo.3

このQ&Aは役に立ちましたか?

0人が「このQ&Aが役に立った」と投票しています

回答(3)

ANo.2

#1 DOUGLAS_ です。


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

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

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

 ポップアップの警告が出たら、「常にOK」とすればよいかと存じます。

投稿日時 - 2012-12-06 23:30:22

お礼

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

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

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

投稿日時 - 2012-12-08 20:38:45

ANo.1

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

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


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

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

投稿日時 - 2012-12-06 09:42:22

お礼

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

失礼しました。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:15

あなたにオススメの質問