Visio VBA:如何使用VB代码在形状上注册鼠标双击事件

时间:2019-03-14 08:13:15

标签: visio-vba

我有两个问题:

  1. 是否可以通过VBA代码更改形状的ShapeSheet(电子表格)参数?更准确地说,我需要在形状的ShapeSheet中更改EventDblClick参数值。

  2. 是否存在另一种将鼠标双击事件处理程序注册到Visio形状的方法?我希望每次双击形状并获取形状对象作为参数时,都会调用我提供的子例程。

到目前为止,我知道要做的就是注册以添加如下所示的形状事件​​:

Private Sub Document_ShapeAdded(按Visio.IVShape格式的ByVal vsoShape)

 'Do something with the shape object.

结束子

每次将新形状添加到Visio页面时,都会调用此子例程。

1 个答案:

答案 0 :(得分:1)

使用this link作为指导:

您为子例程设置是好的,在这种情况下,将其保留为Private是有效的,因为在同一文档中已对其进行了引用。如果您的图形正在调用另一个文档或Office产品中的子例程,则需要创建引用的子例程Public

放下新形状时,先定义并命名。然后,您可以像这样设置双击子例程:

shpYourShapeName.CellsSRC(visSectionObject, _
    visRowEvent, visEvtCellDblClick).FormulaU = _
    "CALLTHIS(""ThisDocument.SubRoutineName"")"

其中“ SubRoutineName”是图形的VBA代码中包含的公共子例程。