エクセルVBAで IE読み込み完了まで、というサンプルは有るのですが
時間来ても、読み込め無い時 中止の処理ですが、
下記で如何でしょうか(実験が出来ないので、お知恵拝借)
さらに、もっと、スマートな方法が有ればご教示ください。
Set IE = CreateObject("internetExplorer.application")
url = yobiurl ' "http://admin.blog.fc2.com/control.php?mode=edito …
With IE
.Navigate url
.Visible = True
i = 1
Do While .Busy = True
Call Sleep(50) '0.05sec * 400 =20秒
DoEvents
i = i + 1
If i > 399 Then
.Quit
' End With
Set IE = Nothing
Exit Sub
End If
Loop
i = 1
Do While .document.ReadyState <> "complete"
Call Sleep(50)
DoEvents
i = i + 1
If i > 399 Then
.Quit
' End With
Set IE = Nothing
Exit Sub
End If
Loop
No.1ベストアンサー
- 回答日時:
イベントドリブンでやるのはいかがでしょうか。
イベントを捕捉するためにクラスモジュールに記述する必要があります。
簡便にクラスモジュールである、シートモジュールに記述して試してみました。
'Microsoft Internet Control
'Microsoft HTML Object Library
'に参照設定
Public WithEvents ie As WebBrowser
Sub test()
Set ie = CreateObject("InternetExplorer.Application")
ie.Visible = True
ie.navigate "http://www.hoge^3.jp/" 'ありそうもないURL
End Sub
'下記でエラーがトラップできます
'但しGoogle Tool Bar アドインが有効だと、検索画面に移ってしまってNavigateErrorになりませんでした。
Private Sub ie_NavigateError(ByVal pDisp As Object, URL As Variant, Frame As Variant, StatusCode As Variant, Cancel As Boolean)
Debug.Print pDisp.Name
Debug.Print URL
Debug.Print Frame
Debug.Print StatusCode
Cancel = True
End Sub
'NavigateErrorと、エラーコードについてはこちら
'http://msdn.microsoft.com/en-us/library/bb268221 …
'http://msdn.microsoft.com/en-us/library/bb268233 …
首尾良く読込完了のイベントDocumentComplete、NavigateComplete2等は下記をご参照下さい。
http://d.hatena.ne.jp/dayflower/20070926/1190787 …
こちらもご参考まで。
http://okwave.jp/qa/q8434979.html
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- Excel(エクセル) フォルダ内のワードファイルをPDFに一括変換するVBA 3 2023/06/09 16:51
- Visual Basic(VBA) 【追加】ファイルを閉じてダイアログで保存した時だけ処理の実行をする 3 2022/03/23 15:43
- Visual Basic(VBA) 実行時エラー´5854´ 文字列型パラメーターが長すぎます。 3 2023/06/08 21:17
- Visual Basic(VBA) 【VBA】写真の貼り付けコードがうまく機能しません。 5 2022/09/01 18:43
- Excel(エクセル) VBAについて 3 2022/06/19 18:19
- Visual Basic(VBA) データベースから絞り込んでデータを読み込み 1 2023/02/21 19:51
- Visual Basic(VBA) オブジェクトが見つかりません 1 2023/06/24 19:43
- Visual Basic(VBA) VBAでoutlook365が起動しません。 4 2022/08/25 13:31
- Visual Basic(VBA) VBAのユーザーフォームのテキストボックスに入力制限をしたい 6 2022/11/15 08:28
- Visual Basic(VBA) 【VBAエラー】Nextに対するForがありません 対策について 5 2022/11/21 21:26
関連するカテゴリからQ&Aを探す
おすすめ情報
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
ArduinoのジャイロモジュールMP...
-
ユーザー定義関数に#NAME?が返...
-
Excel VBAでリンク切れをチェッ...
-
モジュールの最大数はいくつな...
-
Excel VBA 定義されたプロージ...
-
VBAで別モジュールへの変数の受...
-
VBのフォームモジュールと標準...
-
Workbook.BeforeSave イベント...
-
【vba】フォームに書いてあ...
-
Excel VBA 『Call』で呼び出す...
-
Form間の値の渡し方
-
グラフのX,Y座標を取得したい
-
現在アクティブなフォーム名を...
-
ユーザー定義関数をEXCELに常駐...
-
シートモジュールで使う変数を...
-
Excelで時刻になったら知らせて...
-
Visual Basicプログラムのエラ...
-
エクセルVBAでシートモジュール...
-
標準モジュール Public mOnTime...
-
モジュールとは何ですか
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
Excel VBAでリンク切れをチェッ...
-
ユーザー定義関数に#NAME?が返...
-
VBAで別モジュールへの変数の受...
-
VBでグローバル変数を宣言するには
-
エクセルVBAでシートモジュール...
-
VBA This Workbookモジュール...
-
モジュールの最大数はいくつな...
-
Excel VBAで、ユーザーフォーム...
-
VBAで旧字体を異字体に一括で変...
-
Access VBA標準モジュールにつ...
-
VBA モジュールで共通に使う変...
-
'Range'メソッドは失敗しました
-
グラフのX,Y座標を取得したい
-
モジュールとは何ですか
-
Excel VBA 『Call』で呼び出す...
-
プラグイン、ライブラリ、コン...
-
【vba】フォームに書いてあ...
-
モジュールからフォームのボタ...
-
モジュールとクラスの違いって...
-
acwzlibとは?
おすすめ情報