使宏可用于任何Visio文档

时间:2011-08-27 18:59:00

标签: macros visio

我想创建许多宏,并且能够在任何Visio文档中使用它们。我知道使用“记录宏功能”创建宏的基本原理,但看起来这样记录的宏只能用于该Visio文件。我一直在寻找如何做到这一点,但没有成功如何做到这一点。任何帮助将不胜感激。

2 个答案:

答案 0 :(得分:1)

我的解决方案是将我的宏保存在模板中。只要您打开模板,代码就可用于活动图形。现在,如果我只是弄清楚如何放置"按钮"在模板中激活特定的宏......

答案 1 :(得分:0)

我假设您的意思是要在Visio文档中编写代码来调用另一个Visio文档中编写的代码。我知道有两种方法可以使用VBA。

第一种方法是在Document对象上使用ExecuteLine方法。您只需将要在该文档中调用的一行VBA作为字符串参数传入,然后调用代码。这实际上只适用于调用不带参数的宏,或者只调用字符串/数字参数。

第二种方法是保存文档(通常是vss *模板文件,如果您使用宏提供模板形状),在任何其他文档中,您只需设置对代码文件的引用。这允许VB编辑器具有智能感知并查看您可以在宏文件中调用的所有方法,并且可以传递您的方法可以采用的任何类型的参数。

现在,如果您只对通过UI操作在中央文件中调用/调用简单方法感兴趣,则有许多不同的方法可以执行此操作。您可以将代码分配给不同的形状,即每当该形状移动时,或者双击时。这可以在ShapeSheet窗口中为“事件”部分中的形状指定。

您还可以在Visio页面上直接绘制命令按钮或任何其他VBA控件,并将宏指定给这些按钮。

或者你可以转到Tools-> Macros->(你的文档名称),你的代码文件中的每个模块都有更多的下拉列表,你可以调用任何没有参数的公共子。

或者您可以使用调用代码的按钮构建工具栏(在Visio 2010之前的版本中)或功能区界面。根据我的经验,为VBA解决方案构建工具栏有点糟糕。工具栏按钮必须调用您希望代码处理的文档中包含的代码。因此,假设您已将所有代码编写并保存在VSS文件中,无论何时打开新文档,都会调用为新文档添加工具栏的方法。将代码分配给该工具栏上的按钮时,工具栏会假定您分配的代码驻留在您打开的新文档中,而不是VSS文件中。因此,要使按钮调用VSS文件,必须在新文档中使用ExecuteLine方法在VSS文件中调用实际代码。这很痛苦,因为现在您的用户必须使用您提供的VST模板文件,而不是理论上在您想要的任何绘图上使用您的工具。

对于咆哮很抱歉,但Visio在如何调用代码方面非常灵活,所以你可以做任何你想要的事情。

相关问题