• 締切
  • すぐに回答を!

VBA・WebBrowserコントロールで全て自動の話ですが、ボタンをクリック→ページ移動→テキストボックスに入力ができません。

  • 質問No.5620753
  • 閲覧数552
  • ありがとう数2
  • 回答数3

お礼率 9% (13/139)

宜しくお願い致します。
WebBrowserコントロールで表示されたページのボタンをクリック(自動)→ページ移動後→テキストボックスに自動で入力ができません。
コードはこのように書いています。

.Document.all.****.Click
Do While .ReadyState <> 4: DoEvents: Loop
.Document.all.********.Value = "*****"

以前はIEの表示タイミングとテキストボックスへの入力のタイミングがズレている為にエラーが発生してしまうと思っていましたが、“sleep”などを使って試した結果、仮説がハズレている事が分かりました。
ステップインで調べていくと“ボタンクリック”の後“Do~Loop”のところで停止してしまい“F8キー”を何度押してもそのままの状態で、コード部分をクリックしたり、表示されている“IE”の部分をクリックした後に再度“F8キー”を押すと続いて処理が行われる形となっています。
現状では“フォーカス”の関連かとも思ったのですが、見当が付かない状態です。

何かご存知の方がおられましたら、アドバイスをお願いできたらと思っております。
是非、宜しくお願い致します。

回答 (全3件)

  • 回答No.3

ベストアンサー率 69% (46/66)

.Document.all.****.Click
の後に DoEvents を加えてみるとどうですか?
  • 回答No.2

ベストアンサー率 53% (134/251)

レス書いて、気がついたのですが。
素朴な疑問なのですが。

>WebBrowserコントロールで表示されたページのボタンをクリック(自動)→ページ移動後→テキストボックスに自動で入力

そもそも、これって、可能なのですか。???
何処かで、実際に、実現しているとか、
実現したことを見たことがあるとか???
  • 回答No.1

ベストアンサー率 53% (134/251)

>、“sleep”などを使って試した結果、仮説がハズレている事が分かりました。

そうなのですか。

>Do While .ReadyState <> 4: DoEvents: Loop

ここまで、ヒントもらったのだから、後は、
検索したほうが、早いような

ReadyStateで、ググっても、いろいろ書いてるところが
沢山ありますよ。

示されているコードを見ると、なんで、上記コードの前に
Documentが、あるのか、不思議で、想像が出来ません。

一部のコードを示すのは、良いかもしれませんが、
見ている方は、前後がわかりません。

レスつきにくいのでは?????
関連するQ&A

ピックアップ

ページ先頭へ