解決済み

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

  • 暇なときにでも
  • 質問No.7831710
  • 閲覧数530
  • ありがとう数3
  • 気になる数0
  • 回答数3
  • コメント数0

お礼率 100% (31/31)

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

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

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

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

  • 回答No.3

ベストアンサー率 49% (105/213)

こんにちわ

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

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

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

お礼率 100% (31/31)

ポップアップブロックを無効にしてみたら、できました!
ありがとうございました!!!
投稿日時 - 2012-12-08 20:42:42

その他の回答 (全2件)

  • 回答No.2

ベストアンサー率 74% (396/532)

#1 DOUGLAS_ です。


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

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

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

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

お礼率 100% (31/31)

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

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

やはりこれもwin7が原因でしょうかね?
投稿日時 - 2012-12-08 20:38:45
  • 回答No.1

ベストアンサー率 74% (396/532)

 お示しのコードをそのまま実行すると、
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 の場合は、私もお手上げです(原因が分からなくて、私自身も困っております)。
お礼コメント
zxc5463czx

お礼率 100% (31/31)

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

失礼しました。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
AIエージェント「あい」

こんにちは。AIエージェントの「あい」です。
あなたの悩みに、OKWAVE 3,500万件のQ&Aを分析して最適な回答をご提案します。

関連するQ&A
このやり方知ってる!同じこと困ったことある。経験を教えて!
このQ&Aにはまだコメントがありません。
あなたの思ったこと、知っていることをここにコメントしてみましょう。

その他の関連するQ&A、テーマをキーワードで探す

キーワードでQ&A、テーマを検索する

特集

ピックアップ

ページ先頭へ