首页 > 解决方案 > Visio VBA:如何在 VB 代码中注册到形状上的鼠标双击事件

问题描述

我有两个问题:

  1. 有没有办法通过 VBA 代码更改形状的 ShapeSheet(电子表格)参数?更准确地说,我需要更改形状的 ShapeSheet 中的 EventDblClick 参数值。

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

到目前为止我知道要做的是注册以添加这样的形状事件​​:

Private Sub Document_ShapeAdded(ByVal vsoShape As Visio.IVShape)

 'Do something with the shape object.

结束子

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

标签: vbavisio

解决方案


使用此链接作为指南:

您对子例程的设置很好,在这种情况下离开它Private会起作用,因为它在同一个文档中被引用。如果您的形状正在调用另一个文档或 Office 产品中的子例程,则您需要创建引用的子例程Public

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

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

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


推荐阅读