繁体   English   中英

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

[英]Add VBA Project to Visio Document by Using Code

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

更新涉及将某种类型的所有对象放在自己的层上-简单。

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

有什么方法可以使用代码(VBA或其他方式)将VBA项目引入所有Visio文档中? 还是我可能没有考虑过的替代方案? 不幸的是,由于可用资源,加载项并不是真正的选择。

您在这里有几个选择:

  1. 强制每个用户允许以编程方式访问其文档的VBA项目,并使用VBA自动化来添加代码。 当您具有编程访问权限时,这很好用,但是可能很难保证。
  2. 如果您不使用Visio 2013,则实际上可以将文档另存为VDX(xml),并用自己的文档替换VBA项目的数据(您可以手动将文档另存为VDX,然后复制数据块用于VBA项目)。 就像我说的那样,这在Visio 2013中不起作用,因为他们似乎已经淘汰了VDX格式。 您可能可以摆脱2013年VSDX XML格式的类似限制。
  3. 您可以将每个人的文档“迁移”到您提供的新VST文件中。 这仅涉及将文档中的所有内容复制并粘贴到包含您的代码的新文档中。 不过,您还必须小心,以确保所有文档级和页面级数据也随之出现(这意味着DocumentSheet和PageSheet以及任何可能很重要的Document XML属性,以及诸如Author,Description等属性)。

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

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM