- 締切済み
VBA・WebBrowserコントロールで全て自動の話ですが、ボタンをクリック→ページ移動→テキストボックスに入力ができません。
宜しくお願い致します。 WebBrowserコントロールで表示されたページのボタンをクリック(自動)→ページ移動後→テキストボックスに自動で入力ができません。 コードはこのように書いています。 .Document.all.****.Click Do While .ReadyState <> 4: DoEvents: Loop .Document.all.********.Value = "*****" 以前はIEの表示タイミングとテキストボックスへの入力のタイミングがズレている為にエラーが発生してしまうと思っていましたが、“sleep”などを使って試した結果、仮説がハズレている事が分かりました。 ステップインで調べていくと“ボタンクリック”の後“Do~Loop”のところで停止してしまい“F8キー”を何度押してもそのままの状態で、コード部分をクリックしたり、表示されている“IE”の部分をクリックした後に再度“F8キー”を押すと続いて処理が行われる形となっています。 現状では“フォーカス”の関連かとも思ったのですが、見当が付かない状態です。 何かご存知の方がおられましたら、アドバイスをお願いできたらと思っております。 是非、宜しくお願い致します。
- みんなの回答 (3)
- 専門家の回答
みんなの回答
- korin_
- ベストアンサー率69% (46/66)
.Document.all.****.Click の後に DoEvents を加えてみるとどうですか?
- tom11
- ベストアンサー率53% (134/251)
レス書いて、気がついたのですが。 素朴な疑問なのですが。 >WebBrowserコントロールで表示されたページのボタンをクリック(自動)→ページ移動後→テキストボックスに自動で入力 そもそも、これって、可能なのですか。??? 何処かで、実際に、実現しているとか、 実現したことを見たことがあるとか???
- tom11
- ベストアンサー率53% (134/251)
>、“sleep”などを使って試した結果、仮説がハズレている事が分かりました。 そうなのですか。 >Do While .ReadyState <> 4: DoEvents: Loop ここまで、ヒントもらったのだから、後は、 検索したほうが、早いような ReadyStateで、ググっても、いろいろ書いてるところが 沢山ありますよ。 示されているコードを見ると、なんで、上記コードの前に Documentが、あるのか、不思議で、想像が出来ません。 一部のコードを示すのは、良いかもしれませんが、 見ている方は、前後がわかりません。 レスつきにくいのでは?????