vba - Visio VBA:如何在 VB 代码中注册到形状上的鼠标双击事件
问题描述
我有两个问题:
有没有办法通过 VBA 代码更改形状的 ShapeSheet(电子表格)参数?更准确地说,我需要更改形状的 ShapeSheet 中的 EventDblClick 参数值。
是否有另一种方法可以将鼠标双击事件处理程序注册到 Visio 形状?我希望每次双击形状时都会调用我提供的子例程并将形状对象作为参数。
到目前为止我知道要做的是注册以添加这样的形状事件:
Private Sub Document_ShapeAdded(ByVal vsoShape As Visio.IVShape)
'Do something with the shape object.
结束子
每次将新形状添加到 Visio 页面时都会调用此子例程。
解决方案
使用此链接作为指南:
您对子例程的设置很好,在这种情况下离开它Private
会起作用,因为它在同一个文档中被引用。如果您的形状正在调用另一个文档或 Office 产品中的子例程,则您需要创建引用的子例程Public
。
放下新形状时,先定义它并命名。然后,您可以像这样设置双击子程序:
shpYourShapeName.CellsSRC(visSectionObject, _
visRowEvent, visEvtCellDblClick).FormulaU = _
"CALLTHIS(""ThisDocument.SubRoutineName"")"
其中“SubRoutineName”是绘图的 VBA 代码中包含的公共子例程。
推荐阅读
- rust - 如何为不采用生命周期参数的特征内的类型实现命名生命周期?
- r - zoo::rollapply 没有给出滚动相关的整个运行
- python - 递归 - 具有不同计数约束的两个字母的所有组合列表
- node.js - 如何在 MongoDB 中以 Catgepory > Sub Catgeory > Product 使用 nodejs 获取数据
- node.js - 更新模式而不删除 mongodb 中的集合
- python - 绘制多个数据框不起作用
- android - 有没有办法确定处于活动状态的 workRequest 的标签?
- firebase - firebase 云功能对数据库负载有影响吗?
- java - 使用 GLFW (LWJGL) 创建窗口的问题
- java - Spring Boot - 在将war文件部署到tomcat时自动生成context.xml