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
No comments:
Post a Comment