VB6.0用掲示板の過去のログ(No.1)−VBレスキュー(花ちゃん)
[記事リスト] [新規投稿] [新着記事] [ワード検索] [過去ログ] [管理用]

投稿日: 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

ネット検索でも調べてみますが、何かお気づきの点があったら教えて下さい。


- 関連一覧ツリー (★ をクリックするとツリー全体を一括表示します)

- 返信フォーム (この記事に返信する場合は下記フォームから投稿して下さい)

- Web Forum -