我的一系列特定于文档的宏和快速构建块正在增长!我开始与员工分享这些内容,我希望能够只设置一次远程计算机。从那以后,更新网络路径上的集合。并且因为每台计算机都在寻找共享位置,所以每个人都应该使用最新的宏和快速部件等。
因此。我所知道的:
- 所需的宏保存在单独的模块中,可以共享/导出
- 宏本身偶尔会在我的计算机上引用本地路径
- 我需要引用具有通用代码的路径或使用Environ变量
- 构建块和快速部分保存在单独的模板文件中(当前位于Appdata中,以及默认的构建块文件)。
我不知道的事:
a)如何将Word指向网络路径以从自定义宏文件中检索宏。 (我是否只需要在每台PC上的每个重要更新中导入一个新的宏文件?)
b)从 CUSTOM 路径加载构建块项目的最佳方法是什么?
我的自定义BuildingBlock模板文件有时无法正确加载:
Dim objTemplate As Template
Dim objBB As BuildingBlock
'set template to store the building block
Set objTemplate = Templates("C:\Users\[USER]\AppData\Roaming\Microsoft_
\Document Building Blocks\1033\CustomBBlocks.dotx")
Set objBB = objTemplate.BuildingBlockEntries.Item("[EntryName]")
我知道这是因为代码会出现'CollectionDoesntExist'错误,除非我在第一次运行代码之前单击Quickparts库。所以就像Word不能打开模板文件并查看内部,除非我先从UI做到这一点。
当然,如果我首先从UI打开Quickparts库,在运行我的代码之前,Word似乎想出来了,并插入正确的Building Block条目而没有任何问题。
答案 0 :(得分:0)
过去我曾经开发过一款可以为Word构建块的产品。有些网站有数百个模板,可能有1.000个元素(参见Composition)。我们采取的方法是成功的,并且是不同的。
您正在尝试跨大量工作站部署软件元素(宏)。您可以尝试使用Microsoft Word和Windows的可能性来使其工作,但是当事情发生变化时,它会对问题敏感。例如,切换到Office 2013,将域拆分为两个,在没有VPN的情况下在家工作等等。
选项1 - DIY部署:最好将宏和其他内容放在网页,网络服务或类似内容之后。在每个工作站上部署一个通用程序,该程序可以提取所有内容并在本地部署它。您可能希望将一些参数移交给被调用的网页以限制数据量。您可能希望在本地缓存内容。
选项2 - 使用ClickOnce:编写clickonce部署脚本,包含必要的引用并将其放在共享网络驱动器或http地址上。 ClickOnce在找到新版本时自动升级您的软件。它甚至可以在互联网上运行。当没有新版本时,它什么都不做。
选项3 - 数据库:将元素集中放在数据库中,允许最终用户通过表单更改构建块。让Microsoft Word与ClickOnce程序结合使用。
对于作文,我们使用了选项2和3。