VBA IE automation, To do events like displaying message,etc in excel when a link in webpage is clicked

StackOverflow https://stackoverflow.com/questions/13070382

  •  14-07-2021
  •  | 
  •  

Question

My requirement is i need to have a VBA code in excel which runs to do some action in excel when a link in webpage is clicked.For example when i click a link "login" in webpage my VBA code should press printscreen button in keyboard(like we use sendkeys). I have been searching for this solution since two weeks over google but failed to get one.This is urgent project requirement, please save my day,thank you very much in advance.

Was it helpful?

Solution

Here's an edited version of an answer I gave to a similar question (http://stackoverflow.com/questions/12877872/possible-to-intercept-onchange-event/12927960#12927960).

Project references set for "Microsoft HTML object library" and "Microsoft internet controls"

In a class module "clsEvents":

Option Explicit

Public WithEvents href As MSHTML.HTMLAnchorElement

'Note that having defined "href" as "WithEvents", if you choose "href"
'  from the left-hand dropdown at the top of the class code module
'  then the right-hand dropdown will populate with events you can select
'  from to create an event-handling procedure in the class

Private Function href_onclick() As Boolean
    Debug.Print "link clicked"
    href_onclick = False 'cancels the navigation
End Function

In a regular module:

Option Explicit

Dim evt As clsEvents

Sub Setup()

    Dim IE As New InternetExplorer
    Dim el2 As Object

    Set evt = New clsEvents

    IE.Visible = True
    IE.navigate "http://www.csee.wvu.edu/~riggs/html/select_example.html"

    Do While IE.Busy
    Loop

    Set el2 = IE.document.getElementsByTagName("a")(1)

    If Not el2 Is Nothing Then
        Debug.Print "setting event capture on link:" & el2.innerText
        Set evt.href = el2
    End If

End Sub

If you run the Setup sub and then click the "Javascript" link on the page in IE you should see output in the Immediate window of the VB editor.

Hope that helps get you started.

OTHER TIPS

There is nothing native you can do inside Internet Explorer to enable this functionality.

You would need to write an ActiveX control (using C#, C++, VB6, etc.), which would perform the Excel automation.

A few useful links:

Licensed under: CC-BY-SA with attribution
Not affiliated with StackOverflow
scroll top