投稿日 | : 2004/08/06(Fri) 17:54 |
投稿者 | : ももたろう |
Eメール | : |
URL | : |
タイトル | : Re6:WebBrowser1・・・ |
アドバイス頂いたように試してみましたが、HTMLのコードを取得できていない状態で、
次の処理へ移ってしまってるみたいです。(花ちゃん、魔界の仮面弁士さん両方とも)
何か根本的に書き方がおかしいのでしょうか?
ソースの修正箇所の確認です。
---修正前---
WebBrowser1.Navigate sURL1 'ホームページ表示
Do Until (WebBrowser1.ReadyState = READYSTATE_COMPLETE And Not WebBrowser1.Busy)
DoEvents
Loop
---修正後---
WebBrowser1.Navigate sURL1 'ホームページ表示
Do While WebBrowser1.Busy
Loop
Do While WebBrowser1.Document.ReadyState <> "complete"
Loop
※Do Loopを修正するだけで、他はさわらないですよね?
ちなみに、Do Loopの後はコールで下記を呼び出して、リンク切れか判断しています。
花ちゃん、魔界の仮面弁士さんの場合、リンク切れでなくても、●●●印の処理を通ってきて
しまっています。また、処理速度も"修正前"と比較すると一瞬にして終わります。
Call check(i)
Private Sub check(i)
Text1.Text = WebBrowser1.Document.body.innerHTML 'HTMLソースを文字列として取出す
If InStr(Text1.Text, "ファイルが見つかりません") <> 0 _
Or InStr(Text1.Text, "ページを表示できません") <> 0 _
Or InStr(Text1.Text, "ページが見つかりません") <> 0 _
Or InStr(Text1.Text, "Object not found") <> 0 _
Or InStr(Text1.Text, "Not Found") <> 0 _
Or InStr(Text1.Text, "The page cannot be found") <> 0 Then
xlSheet.Range("D" & i).Interior.ColorIndex = 3 '赤●●●
ElseIf InStr(Text1.Text, "URLが変わりました") <> 0 _
Or InStr(Text1.Text, "URL変更") <> 0 _
Or InStr(Text1.Text, "URLが変更") <> 0 _
Or InStr(Text1.Text, "ページは移動") <> 0 _
Or InStr(Text1.Text, "移動しました") <> 0 _
Or InStr(Text1.Text, "移動いたしました") <> 0 _
Or InStr(Text1.Text, "ホームページ移転") <> 0 _
Or InStr(Text1.Text, "URLに移動") <> 0 Then
xlSheet.Range("D" & i).Interior.ColorIndex = 5 '青
End If
End Sub
ネット検索でも調べてみますが、何かお気づきの点があったら教えて下さい。