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
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:
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