• 締切済み

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

宜しくお願い致します。 WebBrowserコントロールで表示されたページのボタンをクリック(自動)→ページ移動後→テキストボックスに自動で入力ができません。 コードはこのように書いています。 .Document.all.****.Click Do While .ReadyState <> 4: DoEvents: Loop .Document.all.********.Value = "*****" 以前はIEの表示タイミングとテキストボックスへの入力のタイミングがズレている為にエラーが発生してしまうと思っていましたが、“sleep”などを使って試した結果、仮説がハズレている事が分かりました。 ステップインで調べていくと“ボタンクリック”の後“Do~Loop”のところで停止してしまい“F8キー”を何度押してもそのままの状態で、コード部分をクリックしたり、表示されている“IE”の部分をクリックした後に再度“F8キー”を押すと続いて処理が行われる形となっています。 現状では“フォーカス”の関連かとも思ったのですが、見当が付かない状態です。 何かご存知の方がおられましたら、アドバイスをお願いできたらと思っております。 是非、宜しくお願い致します。

みんなの回答

  • korin_
  • ベストアンサー率69% (46/66)
回答No.3

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

  • tom11
  • ベストアンサー率53% (134/251)
回答No.2

レス書いて、気がついたのですが。 素朴な疑問なのですが。 >WebBrowserコントロールで表示されたページのボタンをクリック(自動)→ページ移動後→テキストボックスに自動で入力 そもそも、これって、可能なのですか。??? 何処かで、実際に、実現しているとか、 実現したことを見たことがあるとか???

  • tom11
  • ベストアンサー率53% (134/251)
回答No.1

>、“sleep”などを使って試した結果、仮説がハズレている事が分かりました。 そうなのですか。 >Do While .ReadyState <> 4: DoEvents: Loop ここまで、ヒントもらったのだから、後は、 検索したほうが、早いような ReadyStateで、ググっても、いろいろ書いてるところが 沢山ありますよ。 示されているコードを見ると、なんで、上記コードの前に Documentが、あるのか、不思議で、想像が出来ません。 一部のコードを示すのは、良いかもしれませんが、 見ている方は、前後がわかりません。 レスつきにくいのでは?????

関連するQ&A

  • Access VBAボタンでテキストボックスを入力

    access2010を使用しております。 フォームでボタンをクリックしたときに、テキストボックスを書換える コードを作りたいのですが、 Private Sub コマンド111_Click() ME!テキストボックス.value= "あああ" End Sub としても、テキストボックスは書き換わりません。 でも、ボタンをクリックした後にそのテキストボックスをクリックすると ちゃんと「あああ」と入力されています。 つまり、ボタンをクリックしても入力はされても表示がされず、 ただ、テキストボックスをクリックすると「あああ」と表示されると言った具合です。 また、テキストボックスをクリックする以外にも 違うレコードに移動してもとのレコードに戻ってもおなじように 表示されます。 これを押した時に表示を変更させるには どのようにすればよろしいでしょうか?

  • UWSCでのテキストボックス入力およびボタンクリック

    一昨日「超速!!Windowsマクロテクニック」という本を買い、UWSCの勉強を始めたばかりの初心者ですが、IE上でテキストボックスの入力やボタンのクリックについて本では理解ができず、壁に当たってしまいました。 たとえばyahooのトップ画面から  "オークション"をクリック (サイト移動)  "デジカメ"を入力  「検索」ボタンをクリック というような作業をしたい場合、 どのようにマクロをかけばよいのでしょうか? 上記の本の中ではテキストボックスへの入力について IE.document.forms[x].elements[y].value="zzz" というようなことが書いてありましたが、テキストボックスやリンク、ボタンがたくさんある場合、どうやってその場所を指定すればよいか(xやyをどうやって調べればよいか)がわかりません??? 初歩的な質問で申し訳ありませんが、何卒ご教授をお願いします。

  • VBScriptでMsgBoxのYesNoボックスを自動的にクリックしたい

    VBScriptであるボタンをクリックして表示された、MsgBoxの表示されたYes Noボックスを自動的にクリックしたいと考えています。 下記のように、VBScriptでボタンやコンボボックスを選んだりクリックした後にMsgBoxで”はい”、”いいえ”が表示されて、その表示されたMsgBoxで”はい”をクリックしたいのですが、コマンドが分からず困っています。 IEオブジェクト.Document.フォーム名.コンボボックス名.selectedIndex = 0からの番号

  • ブラウザのテキストボックスに自動入力

    ソフトの貼り付けボタンを押すと、ブラウザのテキストボックスに自動で入力してくれるっていうのよくありますよね。 このような動作はどのようなコードで行っているんでしょうか? ※.NET環境です。

  • VBAでサイトのsubmitボタンをクリックしたい

    とあるサイトに自動ログインするvbaを作っています。 (三流君を参考にしています) Sub ログイン() Set ObjIE = CreateObject("InternetExplorer.application") ObjIE.Visible = True '************************************************** ObjIE.navigate "https://www" Do While ObjIE.Busy = True '表示させるまで待つ DoEvents Loop Application.Wait (Now + TimeValue("00:00:03")) ObjIE.Document.all.UserId.Value = "ID" ObjIE.Document.all.submit_l貸出照会.Click ’ここでエラーになる End Sub 上記のようなコードを書いているのですが 該当サイトのソースを読み取り、 「INPUT TYPE="text" NAME="userid" VALUE=""」 の部分は ObjIE.Document.all.UserId.Value = "ID" で出来たのですが 「<INPUT TYPE="submit" VALUE="貸出照会">」 の部分をクリックしてログインしたいのですが ObjIE.Document.all.貸出照会.Click だとエラーになってしまいます。 ObjIE.Document.Forms(0).item("貸出照会").Click もダメでした。 ご教授よろしくお願い致します。 (エクセル2003)

  • VBAでWebページにセルの値を入力

    エクセルVBAを用いて指定したセルの値を 表示中のWebページにあるテキストエリア等(よくある入力フォーム)に入力する というものを作りたいのですが、 IEとの連携がよくわかりません。 似たようなもので、googleページを自動で開き、 テキストエリアに検索語句を入力し、ボタンを押す というもののソースがありました。 下記のページの3番です。 http://www.hatena.ne.jp/1137216805 これを応用できるかなと思ったのですが、 うまくいきません。 ・表示中のページに入力したいので ie.Navigate ("http://www.google.co.jp/") この部分が必要ありません。 呼び出したページではなく、表示中のページを ie.document.allの対象にするにはどうすればよいのでしょうか? また、他にも良いやり方がありましたら、教えてください。 よろしくお願いします。

  • コマンドボタンやテキストボックスの変数化(?)

    今、VB2005ExpressEditionでソフトを作っているのですが、 コマンドボタン(Button)を並べ、その隣にテキストボックス(Textbox)を並べ、 約80組のボタン・テキストの組を作りました。 そのボタンを隣に記載してある数字分だけクリックさせたいのですが、クリックさせる関数を public function clk(a1 as integer,a2 as integer) If a2 < 1 Then Exit Function Dim a3 As Integer = a2 Do If a1 = 1 Then Call Button1.PerformClick() If a1 = 2 Then Call Button2.PerformClick() ....... a3=a3-1 loop until a3<1 End function として、a1をクリックするボタンの添え字、a2=textbox(a1).text(a1の部分は毎回手打ち)としていますが、buttonやtextboxの名前を変数化して、読み込むことができれば、コードを省略できると思います。何かいいアイデアはないものでしょうか?

  • VBAテキストボックスについて

    こんばんは。 エクセルVBAのテキストボックスの使用方法で行き詰っています。 配列内のデータをテキストボックスへ表示してあります。 テキストボックスを、ダブルクリックして内容を変更し、 変更したデータを配列へ格納する仕組みにしようとしています。 問題は、ダブルクリックすると、テキストボックス内のデータが消えてしまう事です。変更せず他のテキストボックスをクリックすると、データが消えたままになってしまいます。 データは表示したままで、必要な箇所のみ変更する。 ダブルクリック後何もせず、他のテキストボックスをクリックしても 、データは残る仕組みにしたいのですが、可能でしょうか? ご教授お願いいたします。 ※仕事の関係でお礼が遅くなりましたら申し訳ございません。

  • テキストボックスの入力で困っています

    アクセス2010で請求書を作成しています 請求データベースの入力フォーム上の(商品コード)テキストボックス(非連結)に入力して、その値を使い、Dlookupで商品コードデータベースから商品名を入力フォーム上の(商品名)テキストボックスに表示させています 商品コードデータベース上で商品コードを長整数型で設定してあります 商品コードには、40011などの整数型の範囲を超えたデータがあります いろいろな理由から、商品コードは主キーに設定せず、インクリメント型でもありません 入力フォーム上の(商品コード)テキストボックスに整数型の範囲(-32768から32767)なら正常に動作します しかし整数型の範囲を超えて入力すると、「このフィールドに入力した値が正しくありません」が表示され、先に進めません 申し訳ありませんが、何か打開策をお知らせいただけると幸いです

  • IE等のブラウザにテキスト入力やボタンクリックを自動でプログラムで行いたい。

    IE等のブラウザや証券会社、懸賞等のブラウザのテキスト入力やボタン操作を自動でVB2008プログラムで行いたいのです。 例えば 住所 氏名 ID Password 等を自動的に入力し、最後にOKボタンをクリックすと等の動作を 自動で行いたいのです。 書店で探しても、ネットで検索しても見あたりません。 どなたかご教授下さい。 宜しく御願い致します。

専門家に質問してみよう