繁体   English   中英

部署VBA宏

[英]Deploying a VBA-macro

我创建了一个VBA宏,它将被我公司内部的一些word文档使用。 宏检测标记并从文档中删除章节。 本文档由另一个程序创建。 因此宏应该是可单独分发的。

是否可以生成一个可执行文件,将宏添加到运行可执行文件的用户?

是否有另一种方法来打包宏并将其安装在用户的计算机上?

谢谢

部署宏的最简单方法是通过模板。 创建宏并将文件另存为.dotm(启用宏的模板)。 我想你会得到一个建议,保存你的.dotm文件。

任何想要使用你的模板的同事都必须把它放在那个目录里(我认为它是C:\\ Users \\ [UserName] \\ AppData \\ Roaming \\ Microsoft \\ Templates)。 之后,他应该能够在处理任何word文档时使用宏。

基本上有五种方法可以做到这一点:

1)向每个人发送一个带有宏的文本文件,它们可以粘贴到自己的Normal模板中。 这对于非常简单的宏来说很好,这些宏不太可能与用户自己创建的宏有任何名称冲突,但它确实需要VB编辑器的基本知识。

2)通过导出包含宏的模块向每个人发送您创建的.bas文件。 这为您提供了更多控制,避免了复制/粘贴错误。 仍然需要对VB编辑器的基本理解(或者你的体面指令)。

3)将宏打包在一个模板(.dotm文件)中,该模板位于Templates文件夹中。 用户可以将该模板应用于他们正在创建的任何文档,并获得对宏的访问权限。 不需要VB知识; 这是通过标准的Word新文件过程完成的。 如果需要,还允许您包含样式或其他内容。

4)将宏打包为一个位于Startup文件夹中的全局模板(.dotm文件)。 用户可以访问他们处理的每个文件中的宏,无需应用模板。 如果您正在做的事情对您团队的工作流程至关重要,并且不要求您在宏中包含样式,那么这很好。 您还可以构建UI元素。 (在Word 2011中,此方法可能存在问题;用户可能无法立即访问全局模板,但很容易返回。)

3和4都要求用户最初将.dotm文件放在正确的位置。 您可以帮助他们(一种方法是使用另一个Word文档作为“设置”文件,在运行时,将模板放在假定的正确文件夹中)。 显然,您需要做更多的工作,所以您希望在多大程度上取决于您和您的业务需求。

5)此外,如果您可以控制文档本身的创建(而不仅仅是宏),则可以在文档中嵌入宏。 您可以将宏本身放在文档的ThisDocument模块中(在Project Explorer中找到您的文档,然后打开Microsoft Word对象)。 然后将文档另存为.docm(启用宏的文档)。 应该指示用户在打开文档时启用宏(不同版本的Word使用稍微不同的界面来提示用户这一点,但它总是非常明显)。

在过去的7年中,我一直以不同的方式部署Word VBA。 该软件是一个Word插件,可以让教师更轻松地提供有关作业的反馈。 它作为一个30天的试用版进行分发,如果用户购买它们,它们将获得一个密钥,使他们可以使用eMarking Assistant一年。 您可以在http://eMarkingAssistant.com上测试部署系统

部署和许可机制如下:

  1. 将vba保存在启用宏的文档中,即.docm文件
  2. 在Windows中将文件重命名为.doc文件
  3. 使用来自http://orlando.mvps.org/VBADecompilerMore.asp的 Orlando优秀的“VBA反编译器和压缩器”,从.doc中删除已编译的代码和对特定Office版本的引用,并压缩文档
  4. 要求用户下载.doc文件
  5. 要求用户打开.doc文件并确保已启用宏
  6. 让用户在文档中试用该软件
  7. 如果他们想在任何文档中使用该软件,他们单击文档中的“安装”按钮将vba代码复制到其Word启动文件夹中的.dotm文件(因此它是自动加载的)
  8. 如果他们想购买订阅以使用该软件,他们使用paypal付款,我发送一个密钥,解锁软件直到订阅结束

这个过程的优点是:

  1. 从Office 97到Office 2016(32位和64位)的所有Office for Windows版本都可以使用单个文档。
  2. 安装和卸载都发生在Office中,因此suer不需要对其计算机具有管理权限
  3. 用户在文档中使用该软件之前无需安装该软件
  4. 用户无需使用其他程序解压缩或安装软件

彼得埃文斯

暂无
暂无

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

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