View Single Post
  #2   Report Post  
Posted to microsoft.public.excel.programming
Chip Pearson Chip Pearson is offline
external usenet poster
 
Posts: 7,247
Default How to Show Existing IE Instance if Already Exists, Else Open One

You need to add a reference to the "Microsoft Internet Controls"
library. In VBA, go to the Tools menu, and choose References. In
that dialog, scroll down to "Microsoft Internet Controls" and put
a check next to it. This is the DLL that contains the definitions
of the objects you are trying to use.



Dim IE As SHDocVw.InternetExplorer

On Error Resume Next
Set IE = GetObject(, "InternetExplorer.Application")
Debug.Print Err.Description
On Error GoTo 0

If IE Is Nothing Then
Set IE = CreateObject("InternetExplorer.Application")
If IE Is Nothing Then
Debug.Print "error getting IE"
End If

End If


--
Cordially,
Chip Pearson
Microsoft MVP - Excel
Pearson Software Consulting, LLC
www.cpearson.com


wrote in message
oups.com...
Hi folks,
I'm trying to do the following:

Test to see if Internet Explorer already has an instance open
to address "www.mypage.com", for instance.
If it is already open, then change focus to that existing
window.
If it is not already open, then start a new instance of IE
with that URL.


I've got many years as a programmer, but new to this language.
I did
find the following code that looks close to what I want, but I
get an
error msg that reads: "User-defined type not defined" -
referencing the

variable "objSW As SHDocVw.ShellWindows"

Here is the code I found:


Dim objSW As SHDocVw.ShellWindows
Dim objIE As SHDocVw.InternetExplorer
Dim objDoc As Object


Set objSW = New SHDocVw.ShellWindows
If objSW.Count Then ' new
For Each objIE In objSW
If InStr(1, objIE.FullName, "mypage") Then
Set objIE = objSW.Item
fAppRunning = True
Exit For
Else
Set objIE =
CreateObject("InternetExplorer.Application")
End If
Next objIE
Else ' new
Set objIE = CreateObject("InternetExplorer.Application")
' new
End If


objIE.Visible = True


objIE.Navigate "www.mypage.com"


Set objDoc = Nothing
Set objIE = Nothing
Set objSW = Nothing


THANK YOU in advance for your help. GREATLY APPRECIATED!
Kind regards,
Cole