使用代码将VBA项目添加到Visio文档

时间:2014-04-15 01:08:14

标签: vba visio

我被要求创建一个宏来更新几百个Visio绘图,并保持更新。

更新涉及将特定类型的所有对象放在他们自己的图层上 - 简单。

现在,这很容易做到,但是当用户将来某个时间添加新对象时,它可能会在默认图层上。所以我希望能够包含一个由Save事件触发的VBA宏,以便将对象重新分配给它们的层。 这里的问题是我需要在每个文档中都包含这个宏,因为Visio没有应用程序级别的VBA项目。

有没有办法使用代码(VBA或其他方式)将VBA项目引入所有Visio文档?或者有没有我可能没有考虑的替代方案?不幸的是,由于可用资源,加载项实际上不是一种选择。

1 个答案:

答案 0 :(得分:0)

你有几个选择:

  1. 强制每个用户允许以编程方式访问其文档的VBA项目,并使用VBA自动化添加代码。当您具有编程访问权限时,这很有效,但这很难保证。
  2. 如果您没有使用Visio 2013,您实际上可以将文档另存为VDX(xml)并用您自己的文件替换VBA项目的数据(您可以手动将文档另存为VDX,并复制出来VBA项目的数据块)。正如我所说,这不适用于Visio 2013,因为它们似乎已经取消了VDX格式。你可能可以通过2013年的VSDX XML格式获得类似的东西。
  3. 您可以将每个人的文档“迁移”到您提供的新VST文件中。这只需要将文档中的所有内容复制并粘贴到包含代码的新文档中。你必须要小心,以确保所有的文档和页面级数据都出现(意味着DocumentSheet和PageSheet以及任何可能很重要的Document XML属性,以及作者,描述等属性......)< / LI>

    项目1是最简单的,除了可以编程访问VBA项目之外,除非您可以让人们向您发送要迁移的文档。