如何调用在不同文件中定义的VBA宏?

时间:2009-11-03 18:46:20

标签: vba visio

情况如下:

Macro Foo在File foo.vss中定义 宏栏在文件bar.vsd。

中定义

Bar()在某个时候应该调用Foo()。 这可能吗?

如果有帮助:
foo.vss是一个在bar.vsd中打开的模板文件。

供参考:
他们迫使我使用Visio / vba。它是一个奇怪的旧系统,从图中生成SQL,真的很难看。

2 个答案:

答案 0 :(得分:1)

以前从未使用过visio,但快速浏览了这些excel vba;我不确定它是否适合你,但试试看:

http://www.vbaexpress.com/kb/getarticle.php?kb_id=279
http://www.xtremevbtalk.com/showthread.php?t=139135

答案 1 :(得分:1)

这可以在包含代码的文档上使用ExecuteLine方法。

因此,在您的示例中,它将类似于:

Visio.Documents(“Foo.vss”)。ExecuteLine“Foo”

我已经使用了很多这个来从Excel调用Visio宏,它的工作非常好。 ExecuteLine似乎会执行你可以从立即窗口执行的任何事情,所以你实际上传递了一行有效的VBA代码......

希望有所帮助