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

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

.dot模板的位置因计算机而异,所以我认为“安装程序”将无法使用吗?

我期望宏需要不时更改。有什么办法可以让用户按下按钮来使宏进行自我更新?

无论是通过按钮还是自动运行检查更新,我大概都需要知道如何确定在没有必须保存文档的情况下从(路径)运行宏的位置,以及如何找到“启动”文件夹工具的路径> options>文件位置,但以编程方式。

有帮助吗?

解决方案

这可以做到。

  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 的文件中添加引用

其他提示

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

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

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

任何这样的加载器都需要非常稳定(否则,您只需在替换目标模板的同时替换在替换目标模板的跟踪中),或者在必要时能够进行自身更新即可。

许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top