• 締切済み

VBAのWebBrowserコントロールで、ページが確実に表示された後に次の作業が行われるようにしたいです。

宜しくお願い致します。 VBAでWebBrowserコントロールを使用していますが、ページが確実に表示された後に次の作業が行われるようにしたいのですがどのようにしたらよろしいでしょうか? 現状では With ActiveSheet.WebBrowser1 .Navigate url .Document.All.****.Click と記述しております。 上記の状態ですと、"実行時エラー'438' オブジェクトは、このプロパティまたはメソッドをサポートしていません。"と表示され途中で停止してしまいます。 素人なりの予測ですが、このエラーが発生するのはページが表示されきっていないにもかかわらず次の命令を使用としているがためにおきているのではないかと思っております。 ですから、“.Navigate url”の後、ページが表示されきるまで待機するようなプログラムを入れればいいのではと考えてます。 しかし、どのように“画面が表示されるまで待機”という命令を書いたら良いのかが分かりませんので、ご存知の方がおられましたら御教授いただけたらと思っております。 宜しくお願い致します。

みんなの回答

回答No.1

.Navigate url の下に Do While .ReadyState <> 4: DoEvents: Loop の1行を入れてみてください。

関連するQ&A

  • webbrowserに表示させたページのリンクをクリックしたい。

    お世話になります。 vb2005でウェブブラウザにページを表示させて webbrowser1.navigate("http://yahoo.co.jp") 5番目のURLをクリックさせるのはどうすればいいでしょうか? 教えてください。お願いします。

  • WebBrowserコントロールがおかしい

    アクセスなのですが、 Sub test() DoCmd.OpenForm "FWebBrowser", acNormal Forms("FWebBrowser").WebBrowser0.Navigate "http://www.yahoo.co.jp/" End Sub を標準モジュールからすると 実行時エラー -2146500594 'item' メソッドは失敗しました'Forms'オブジェクト が発生します。 WebBrowserコントロールは参照設定は要らないですよね? どちらにしろ参照不可になってるものはありません。 アクセスのバージョンは2010です。

  • WebBrowserに映されたページのhtml文獲得方法

    WebBrowserでナビゲートしたページのHTML文(ソース)をtextボックスに表示させたいのですが、出来なくて困っています。 text1.Text = inet1.OpenURL (★)  ★=表示させたいURL という事まではわかったのですが、WebBrowser1のURLの引渡し方法がわかりません! 教えてください!!おねがいします。

  • vb2005 webbrowserでリンクをクリックした後の表示待ちの方法

    VB2005を勉強中の者です。 WebBrowser1.Navigateを使ってwebページを開いた際は下記while文での表示待ちが機能するのですが、ページ表示後、さらにInvokeMemberを使って先のページにクリックで進んだ後では同一の表示待ち部分がうまく機能せずにそのまま次の処理へと進んでしまいいます。 どこに問題があるのか分からず困っております。どなたか助けていただけませんでしょうか? WebBrowser1.Navigate("https://yahoo.co.jp") '↓ここは機能します While WebBrowser1.IsBusy Or WebBrowser1.ReadyState <> WebBrowserReadyState.Complete Application.DoEvents() End While WebBrowser1.Document.GetElementsByTagName("a").Item(15).InvokeMember("click") '↓これが機能しなくて困っています! While WebBrowser1.IsBusy Or WebBrowser1.ReadyState <> WebBrowserReadyState.Complete Application.DoEvents() End While '↓目的 TextBox1.Text = WebBrowser1.Document.Body.InnerText

  • Webbrowserで完全にHPを表示させるまで待機したい。

    VB6.0を使っています。 Webbrowserを使いまして HPの表示を完了するまで待機するようにしようと思いました。 しかし表示前に”読み取り終了”になってしまいます。 表示するまで待機させるにはどうすればいいのでしょうか? どうかお願いいたします。 Label1.Caption = "読み取り中" WebBrowser1.Navigate "http://www.yahoo.co.jp" Do While WebBrowser1.Busy = True DoEvents Loop Do While WebBrowser1.Document.ReadyState <> "complete" DoEvents Loop Label1.Caption = "読み取り終了" あと、基本的な操作なのですが プロジェクトを読み込んだすぐにはコードもオブジェクトも表示されません。 一度実行してからコードを出さざるを得ないのですが これはどうすればいいのでしょうか?

  • WebBrowserコントロール(続き)

    昨日質問したものです。(VB6.0) 出来たと思ったらエラーが出てやっぱり出来ませんでした。 もう3時間挑戦してますがダメです。 例えば a = "<html><body>あいうえおかきく</body></html>" と入ってる場合 コマンドをクリックすれば WebBrowserにaを表示する方法なのですが、、 Private Sub Command1_Click() WebBrowser1.Navigate2 "about:blank" WebBrowser1.Document.Body.Innerhtml = a End Sub これだとエラーが出ます。 何がいけないんでしょう(T_T;;

  • WebBrowserコントロールでExplorerのようなものを作りたいのですが困っています

    VB.NET2008にて、開発中です。 WebBrowserコントロールを使用してExplorerを作っているのですが、たとえば WebBrowser1.Navigate("C:\Users\" + Environment.UserName + "\Desktop") とすることによってコントロール上にデスクトップにあるファイルが表示されますよね? そこで、表示されたファイルのうち1つをを選択し、そのファイル(もしくはディレクトリ)のフルネームを取得したいのですが、どうもやり方がわかりません。 どなたかこの方法を知っている方、いらっしゃいませんでしょうか?

  • WebBrowserでPDF表示でのトラブル

    WindowsXP、VB6.0にてWebBrowserを使用してPDFファイルを画面に表示 していますが、画面にはしっかり表示され問題は無いのでですが、 プログラムを終了しても、タスクマネージャーに「AcroRd32.exe」が 残ったままになっています。 WebBrowserの使用方法がおかしいのでしょうか? WebBrowser.Navigateで表示指定しています。 どなたかわかる方教えて下さい。

  • WebBrowser コントロールでフレームを操作したり...

    お世話になります。 以下のWebBrowserコントロールの使用法について、ご教授をお願いしますm(_ _)m ■ハイパーリンクがクリックされた場合や、JavaScript等によるページの移動が行われる際に、ページを表示せずに .LocationURL を使ってリンク先を知る方法について ■フレームページの場合に、フレームのHTMLのURLが値が返されてしまい、フレーム内に表示されているページを取得する方法について ■表示しているHTMLの、フレームを指定してページを移動する方法について(WebBrowserコントロールによって、フレームを操作する方法について) 以上、1つでも構いませんので、知識をお持ちの方はご指導の程お願いしますm(_ _)m なお・・・ 開発環境は・・・ Visual Studio.NET(VB7/.NET Framework1.0)で開発しています。 ※.NET Framework 2.0環境は対応していません。ですので、.NET Framework 2.0等の命令は使えないです;;

  • WebBrowserでOfficeファイル等を表示する事ができません・・・

    VB.net2008Expressを使用しています。 タイトルの通り、ExcelやWord、PDFファイル等をWebBrowserで表示したいと考えているのですが、行き詰りましたので質問させていただきます。 AxWebBrowser1.Navigate("c:\a.xlsx") このように記述し、c:\a.xlsxをAxWebBrowser1に表示させようと考えているのですが、「ファイルのダウンロード」ウィンドウが開いてしまい、表示ができません。 また、このウィンドウの「開く」ボタンを押しても、別枠でExcelが開き、肝心のAxWebBrowser1は"Webページへのナビゲーションは取り消されました"と表示されるだけでした。 また、AxWebBrowserコントロールではなく、WebBrowserコントロールで WebBrowser1.Url=New Uri("c:\a.xlsx") と試してみても結果は同じでした。 いろいろと調べてみても、これで表示されるはずなのですが、ダウンロードのウィンドウが邪魔して開いてくれません。 どのようなことが原因で表示がうまくいかないのでしょうか? また、解決策はあるのでしょうか・・? どうか皆さんの力をお借りしたいと思います。 よろしくお願いします

専門家に質問してみよう