frswataru
@frswataru (本石 渉)

Are you sure you want to delete the question?

Leaving a resolved question undeleted may help others!

リモート サーバー コンピューターが存在しないか、利用できません (エラー 462)

Q&A

Closed

解決したいこと

ここに解決したい内容を記載してください。
VBAを使ってウェブスクレイピングを行います。
ソースコードの Do While objIE.Busy = True Or objIE.ReadyState <> 4で下記のエラーが発生します。解決策をご教授お願い致します。
リモート サーバー コンピューターが存在しないか、利用できません (エラー 462)

発生している問題・エラー

リモート サーバー コンピューターが存在しないか、利用できません (エラー 462)

該当するソースコード

Sub ieCheck(objIE As InternetExplorer)

  Dim timeOut As Date

  '完全にページが表示されるまで待機する
  timeOut = Now + TimeSerial(0, 0, 20)

  Do While objIE.Busy = True Or objIE.ReadyState <> 4
    DoEvents
    Sleep 1
    If Now > timeOut Then
      objIE.Refresh
      timeOut = Now + TimeSerial(0, 0, 20)
    End If
  Loop

  timeOut = Now + TimeSerial(0, 0, 20)

  Do While objIE.Document.ReadyState <> "complete"
    DoEvents
    Sleep 1
    If Now > timeOut Then
      objIE.Refresh
      timeOut = Now + TimeSerial(0, 0, 20)
    End If
   Loop
End Sub
0

2Answer

Comments

  1. @frswataru

    Questioner

    確認します。ありがとうございます。

記載されたコードだけでは ieCheck() を Call する前の
objIE の状態がどうなっているのか分からないので
参考先(?)にならって書くなら以下のようになります

長めのコードなので折りたたみ
#If VBA7 Then
Private Declare PtrSafe Sub Sleep Lib "kernel32" (ByVal ms As LongPtr)
#Else
Private Declare Sub Sleep Lib "kernel32" (ByVal ms As Long)
#End If

Sub ieCheck(objIE As InternetExplorer)

  Dim timeOut As Date

  '完全にページが表示されるまで待機する
  timeOut = Now + TimeSerial(0, 0, 20)

  Do While objIE.Busy = True Or objIE.readyState <> 4
    DoEvents
    Sleep 1
    If Now > timeOut Then
      objIE.Refresh
      timeOut = Now + TimeSerial(0, 0, 20)
    End If
  Loop

  timeOut = Now + TimeSerial(0, 0, 20)

  Do While objIE.document.readyState <> "complete"
    DoEvents
    Sleep 1
    If Now > timeOut Then
      objIE.Refresh
      timeOut = Now + TimeSerial(0, 0, 20)
    End If
   Loop

End Sub

Sub sample()

  Dim objIE  As InternetExplorer

  'IE(InternetExplorer)のオブジェクトを作成する
  Set objIE = CreateObject("InternetExplorer.Application")

  'IE(InternetExplorer)を起動する
  objIE.Visible = True

  '本サイトを起動する
  objIE.navigate "http://www.vba-ie.net/"


  Call ieCheck(objIE)


End Sub
1Like

Your answer might help someone💌