ExcelのVBAマクロからIE操作:「オートメーションエラーです。 システムのシャットダウンは既にスケジュールされています。」対処法

何度も 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


ネタ元