从visio检测IE上的事件

时间:2011-09-12 13:10:38

标签: vba visio

我可以在IE页面上的按钮和visio事件之间建立链接吗? (例如:只需单击IE页面上的按钮即可更改形状的颜色)

2 个答案:

答案 0 :(得分:0)

是的,您应该查看jquery

的入门文档

html:

<button id="mybutton" />
<div id="myshape">blabla</div>

javascript:

$('#mybutton').click(function() {
    $('#myshape').css('background-color', '#555555');
});

答案 1 :(得分:0)

除非您也可以访问IE中的HTML内容,否则不是很容易,但您可以使用VBA类来实现“withevents”私有变量来捕获对页面上特定元素的引用,并且一个事件处理程序,用于响应基于浏览器的事件。例如。在“clsHTML”课程中:

Private WithEvents el As MSHTML.HTMLInputElement

Public Sub SetElement(t As MSHTML.HTMLInputElement)
    Set el = t
End Sub

Private Function el_onchange() As Boolean
    Debug.Print "captured change: value = " & el.Value
End Function 

在其他代码中,创建一个类的实例,并使用对IE中页面元素的引用来调用“SetElement”:

Dim objHTML As clsHTML  'global variable


Sub TestEvents()
   Dim IE As Object

    'set up your IE reference....

  Set objHTML = New clsHTML
  objHTML.SetElement IE.document.getElementById("tester2")
  Debug.Print "set capture"
End Sub

在这种情况下,您正在捕获文本框中的“更改”事件,但其他元素将公开不同的事件....

编辑:我在Excel中对此进行了测试,但我假设类似的内容也适用于Visio。

Edit2:你可能要比在Visio中创建一个表单来处理这个问题要好,而不是坚持自动化IE。