You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Visio中如何用CALLTHIS调用带调用者名称参数的子程序?

Visio中使用CALLTHIS调用带参数子程序的可行示例

步骤1:编写正确的VBA代码

打开Visio后按Alt+F11进入VBA编辑器,双击项目窗口中的ThisDocument模块,粘贴以下代码:

Public Sub Shape_DoubleClick(ByVal shapeName As String)
    Debug.Print "Shape_DoubleClick called for: " & shapeName
    MsgBox "触发双击事件的形状:" & shapeName ' 弹窗直观反馈,可按需保留或删除
End Sub

若将代码放在新建的标准模块(如Module1)中,后续CALLTHIS调用时需指定对应模块名。

步骤2:配置ShapeSheet事件单元格

  1. 回到Visio界面,选中目标形状,右键选择显示ShapeSheet
  2. 在ShapeSheet中找到EventDblClick单元格,输入以下公式:
    CALLTHIS("ThisDocument.Shape_DoubleClick", Shape.Name)

若代码在标准模块Module1中,公式改为CALLTHIS("Module1.Shape_DoubleClick", Shape.Name)

步骤3:关键设置与验证

  1. 将文档保存为启用宏的Visio格式(.vsdm或.vssm)
  2. 关闭并重新打开文档,打开时选择启用宏
  3. 双击目标形状,此时会弹出提示弹窗,同时在VBA编辑器的立即窗口(按Ctrl+G打开)可看到Debug.Print的输出内容

常见问题排查

  • 宏安全级别:若宏被阻止,需在Visio选项中调整宏安全设置,信任当前文档或降低安全级别
  • 语法错误:确保CALLTHIS的子程序路径(模块名.子程序名)拼写正确,参数类型与子程序定义匹配
  • 未重新加载文档:Visio有时需要重新打开文档才能识别新添加的宏

内容的提问来源于stack exchange,提问作者Norsak

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.01 22:49:56