何度も Nothing -> CreateObject しようとするとエラーになることがある。
Set oIE = Nothing
での処理がすぐ完結しないときがあるようで、その後に実行される
Set oIE = CreateObject("InternetExplorer.Application")
のところでこのエラーが出るといった具合です。
対策として「IEを利用するときに、既にIEがいるならそれをバインドして利用する。ないなら生成する。」の場合、
' IEオブジェクトを取得するなければ作成する
Public Function getIE() As Object
Dim objSh As Object
Dim objW As Object
Dim i As Integer
'IEがすでに立ち上がっている場合はそれを活用する
Set objSh = CreateObject("Shell.Application")
For i = objSh.Windows.Count To 1 Step -1
Set objW = objSh.Windows(i - 1)
If objW.FullName Like "*iexplore.exe" Then
Set getIE = objW
Exit Function
End If
Next
'見つからなかった場合は新規作成する
Set getIE = CreateObject("InternetExplorer.Application")
getIE.Visible = True
End Function
ネタ元