1

我有一个在 Word 2003 中运行的 VBA 宏。它是一个模块和附加到用户窗体的代码,它可以访问大约 30 个客户端站点。当我第一次推出它时,我派人到每个站点将一个 .dot 模板放置在 30 个框的每个框的 Word Startup 文件夹中,然后使宏在每个用户的工具栏上显示为一个按钮。

所有用户都已连接互联网。

.dot 模板的位置因机器而异,所以我认为“安装程序”会失效吗?

我预计宏需要不时更改。有什么方法可以让用户按下按钮来让宏自行更新?

无论是它的按钮还是自动运行检查更新,我大概需要知道如何确定宏从哪里运行(路径)而不必保存文档,以及如何找到启动文件夹工具>选项>的路径文件位置,但以编程方式。

4

2 回答 2

1

这是可以做到的。

  1. 创建 2 个 .dot 文件,loader.dot(检查更新)和 worker.dot(您正在使用并希望能够自动更新的主宏)。

  2. 第一个 loader.dot 应该进入 C:\Program Files\Microsoft Office\OFFICE11\STARTUP

这是一个受信任的位置,宏将被加载到任何 Word 文档中。使用 AutoExec() 子例程以确保它在加载 word 文档时运行。

worker.dot 可以放在任何固定的安装位置,例如 C:\yourapp\worker.dot

loader.dot 中的逻辑是删除对 worker.dot 的任何引用(我必须在宏安全设置中启用对 VBA 模型的信任)使用 http 调用检查更新,如果有新版本可用下载它覆盖 worker.dot,然后添加来自指定 worker.dot 的文件的引用

于 2011-06-22T14:47:24.557 回答
0

我不确定用户按下按钮模型是否理想。

我会考虑构建一个“加载器”模板。它的工作是在启动时运行并查找您已有的模板/宏的更新,并在它们更改时下载/安装/任何此类文件。然后加载本地安装的任何内容以供使用。

您还应该考虑如果更新可用但有人不使用它是否是一个问题(也许他们在上载更改之前启动了 Word,或者他们处于脱机状态)。另外,您是否需要知道人们使用的是什么版本?让您的加载程序通过 HTTP、电子邮件或其他方法(Twitter?)返回报告

任何这样的加载器都需要非常稳定(否则您只需将追逐替换目标模板替换为追逐替换加载器)或能够在必要时自行更新。

于 2011-03-18T09:50:05.823 回答