GetObject Equivalent for Internet Explorer?

S

spaceman

Is there anyway/alternative method of using GetObject for Internet Explorer?

Is there a workaround for GetObject? I saw some things yesterday but it
seemed to involve downloading something, which doesn't work for me at work
(we're not supposed to use downloaded things etc). And IE doesn't add
itself to the existing applications listing (or whatever it's called) like
programs that are associated to file extensions - excel, word, adobe etc.

Basically, I want to target an existing IE window, the name of it will be
unique, and then from there, either copy the contents of that web page into
a cell, or be able to target a textbox on that page called xxfundsxx (for
example) to return the contents of that textbox into a variable.

Navigating to the page and then getting the data (which I can do, but is not
possible in this situation) won't work due to it being an IE based
application that is always the same web page, but it extracts data for
different accounts etc when it is opened. Has to be from an existing window.

Cheers.
 
B

Bob Phillips

Not sure I get the question, but have you tried

getobject(,"InternetExplorer.Application")

--
HTH

Bob Phillips

(remove nothere from email address if mailing direct)
 
S

spaceman

Yes, but because Internet Explorer doesn't have any program associations
like .xls (has .url, .htm, but they aren't programs) getobject won't work.

Scenario.

I have an IE window open. I want to grab a value from a textbox in that
window from Excel. The window title will always be unique, so that is how I
will be identifying the window, I presume.

I either want to grab a value in a textbox, or copy the contents of the web
page into a cell.

Using createobject and navigating to the URL is not an option.

Cheers.
 
J

Jake Marx

Hi spaceman,
I have an IE window open. I want to grab a value from a textbox in
that window from Excel. The window title will always be unique, so
that is how I will be identifying the window, I presume.

I either want to grab a value in a textbox, or copy the contents of
the web page into a cell.

Using createobject and navigating to the URL is not an option.

There is no straightforward way to do this AFAIK. If you were able to use
CreateObject, you could do it easily. If the window is already open, you'll
probably have to use the API. I'm not sure about getting the value of a
particular textbox housed by that window, but I suppose it's possible.
Here's an example of how to get the URL of all active IE windows:

http://www.mvps.org/access/api/api0051.htm

--
Regards,

Jake Marx
www.longhead.com


[please keep replies in the newsgroup - email address unmonitored]
 
S

spaceman

Thanks for the thoughts, but no :(

A web page is opened, and an account number is entered. We press tab and
the relevant account screen opens. The URL is always the same for all
accounts, so I can't navigate to the web page. It has to be by using an
existing window.

I've seen posts on getting data from other applications, but IE is
different.

If I could navigate to the web page I could do it in a sinch, as I've done
that before, but createobject is no help here.
 
T

Tim Williams

'Find an IE window with matching location and get a reference
' to the document object from the loaded page. Assumes no frames.
Function GetHTMLDocument(sAddress As String) As Object

Dim objShell As Object, objShellWindows As Object, o As Object
Dim retVal As Object, sURL As String


Set retVal = Nothing
Set objShell = CreateObject("Shell.Applicatio­n")
Set objShellWindows = objShell.Windows


'see if IE is already open
For Each o In objShellWindows
sURL = ""
On Error Resume Next
sURL = o.Document.Location
On Error GoTo 0
If sURL <> "" Then
If sURL Like sAddress & "*" Then
Set retVal = o.Document
Exit For
End If
End If
Next o


Set GetHTMLDocument = retVal
End Function


Tim
 
S

spaceman

Thanks Tim.

Do I use this like below:

Sub Button4_Click()
a = GetHTMLDocument("removed")
b = a.Document.body.innerText
End Sub

??(cos that doesn't work :) )

or do I need to set something up first? Not exactly au fait with this side
of things.

Cheers.
 
T

Tim Williams

The function returns a reference to the HTML document from the first IE
instance with an open page whose URL matches (begins with) the one passed to
the function.

Once you have the document reference then everything on the page should be
accessible via the HTML Document Object Model.

Eg: assuming your textbox actually has an "id" of "xxfundsxx".
'************************************************
dim a as object
dim b as string

set a=GetHTMLDocument("http://www.someserver.com/somepage.asp")

Msgbox a.getElementById("xxfundsxx").value
'************************************************


Tim
 

Ask a Question

Want to reply to this thread or ask your own question?

You'll need to choose a username for the site, which only take a couple of moments. After that, you can post your question and our members will help you out.

Ask a Question

Top