情况如下:
Macro Foo 在文件 foo.vss 中定义 Macro Bar 在文件 bar.vsd 中定义。
Bar() 在某些时候应该调用 Foo()。那可能吗?
如果有帮助:
foo.vss 是在 bar.vsd 中打开的模板文件。
仅供参考:
他们强迫我使用 Visio/vba。它是一个奇怪的旧系统,可以从图表中生成 SQL,真的很难看。
以前从未使用过 visio,但快速浏览后我得到了这些用于 excel vba 的内容;我不确定它是否适合你,但试试看:
http://www.vbaexpress.com/kb/getarticle.php?kb_id=279
http://www.xtremevbtalk.com/showthread.php?t=139135
这是可能的,在包含代码的文档上使用 ExecuteLine 方法。
因此,在您的示例中,它将类似于:
Visio.Documents("Foo.vss").ExecuteLine "Foo"
我已经多次使用它来从 Excel 调用 Visio 宏,并且效果很好。ExecuteLine 似乎它会执行几乎任何你可以从即时窗口执行的东西,所以你实际上是在传递一行有效的 VBA 代码......
希望有帮助