Using an IE browser with Visual Basic
You could try something like this, drawing heavily on reusing Internet Explorer COM Automation Object to identify an instance of IE with then specific web page active that you are looking for.
Change
strURL = "http://www.theage.com.au/"
to
"My Page Title - Windows Internet Explorer" as necessary
VBA
Sub Test()
Dim ShellApp As Object
Dim ShellWindows As Object
Dim IEObject As Object
Dim strURL As String
strURL = "http://www.theage.com.au/"
Set ShellApp = CreateObject("Shell.Application")
Set ShellWindows = ShellApp.Windows()
Dim i
For i = 0 To ShellWindows.Count - 1
If InStr(ShellWindows.Item(i).FullName, "iexplore.exe") <> 0 Then
If ShellWindows.Item(i).LocationURL = strURL Then
Set IEObject = ShellWindows.Item(i)
MsgBox "IE instance with " & strURL & " found"
Exit For
End If
End If
Next
End Sub
paj
Updated on March 31, 2020Comments
-
paj about 4 years
Struggling to find a solution to this one. From Visual Basic (VBA in Excel more specifically) I'm able to call an Internet Explorer window by title using
AppActivate ("My Page Title - Windows Internet Explorer")
And it works great each time.
I can open a new window and send a url to it using..
Dim ie As Object Set ie = New InternetExplorer ie.Visible = True ie.Navigate "http://websiteurl"
And that also works okay But it opens a new browser each time and I want it to always calls the same window.
So can i Set
ie
to equal the same page each time. So instead ofSet ie = New InternetExplorer
It does something like
Set ie = ACTIVE InternetExplorer
(though that doesn't seem to exist). Is there some way of setting
ie
to be the same asAppActivate ("My Page Title - Internet Explorer")
?Thanks
Full Code here:
Sub Find_Recordings() Dim MyAppID, ReturnValue AppActivate ("My Page Title - Windows Internet Explorer") SendKeys ("^a") Application.Wait (Now + TimeValue("0:00:01")) SendKeys ("^c") Application.Wait (Now + TimeValue("0:00:01")) AppActivate ("Microsoft Excel") Sheets("DataSearcher").Select Range("K1").Select ActiveSheet.PasteSpecial Format:="Text", Link:=False, DisplayAsIcon: = False Range("A1").Select Dim ie As Object Set ie = New InternetExplorer ie.Visible = True ie.Navigate "http://wwwmyurl" Do Until ie.ReadyState = READYSTATE_COMPLETE Loop ie.Document.getElementById("searchdata1").Value = Range("J1") ie.Document.getElementById("library").Value = "RECORDINGS" ie.Document.searchform.Submit End Sub
-
paj about 12 yearsThanks BrettDJ. I tried this and adjusted the URL as you suggested. Doesn't seem to work though. I'm not sure where it sits and what it replaces in my current code. I've added the full code of the sub in my original question. Further help would be most welcome. Thanks
-
Gaffi about 12 years@brettdj Did you mean to say change
strURL
to another URL, and not"My Page..."
? -
brettdj about 12 years@paj yes, I meant change
StrURL
to the url that you wanted to locate as being open in IE -
Julien Kronegg over 11 yearsYou can find a variant at: mrexcel.com/forum/excel-questions/…