GetObject Error with Internet Explorer

How to get active Internet Explorer Object using Getobject in VBA

Set IEBrowser = GetObject(, "InternetExplorer.Application")

Using GetObject for Internet Explorer in VBA throws Runtime error 429 - ActiveX can't create object. The  solution for this is to use ShellWindows

Runtime error 429 - ActiveX can't create object - GetObject for Internet Explorer
Public Function IENavigate(ByRef IEBrowser) As Boolean

Dim theSHD As SHDocVw.ShellWindows
Dim IE As SHDocVw.InternetExplorer
Dim i As Long
Dim bIEFound As Boolean

On Error GoTo Err_IE

Set theSHD = New SHDocVw.ShellWindows
For i = 0 To theSHD.Count - 1
Set IE = theSHD.Item(i)
If Not IE Is Nothing Then
If InStr(1, IE.LocationURL, "file://", vbTextCompare) = 0 And Len(IE.LocationURL) <> 0 Then
If IE.Visible = True Then bIEFound = True: Exit For

End If
End If
Next

If bIEFound = True Then
Set IEBrowser = IE
IENavigate = True
Else
IENavigate = False
End If

' -------------------------------------
' Error Handling
' -------------------------------------
Err_IE:
If Err <> 0 Then
Err.Clear
Resume Next
End If
End Function

The above code uses Microsoft Internet controls reference:

Microsoft Internet controls reference
without which the following error might occur

---------------------------
Microsoft Visual Basic for Applications
---------------------------
Compile error:

User-defined type not defined
---------------------------
OK Help
---------------------------


Once you get the Internet Explorer object, you can use it as shown below:

Sub GEt_IE()

  Dim IEBrowser As InternetExplorer
  IENavigate IEBrowser
  If Not IEBrowser Is Nothing Then
    MsgBox IEBrowser.Document.Title
  End If