部署 VBA-宏
Deploying a VBA-macro
我创建了一个 VBA-macro,我公司的一些 word 文档将使用它。该宏检测标签并从文档中删除章节。此文档是由另一个程序创建的。所以宏应该是单独分发的。
是否可以生成将宏添加到用户的可执行文件运行可执行文件?
是否有其他方法可以将宏打包并安装到用户的计算机上?
谢谢
部署宏最简单的方法是通过模板。创建宏并将文件另存为 .dotm(启用宏的模板)。我想您会得到将 .dotm 文件保存在何处的建议。
任何想要使用您的模板的同事只需将其放在该目录中即可(我认为是 C:\Users\[UserName]\AppData\Roaming\Microsoft\Templates)。之后,他应该能够在处理任何 Word 文档时使用宏。
基本上有五种方法可以做到这一点:
1) 向每个人发送一个包含您的宏的文本文件,他们可以将其粘贴到自己的 Normal 模板中。这对于不太可能与用户自己创建的宏有任何名称冲突的非常简单的宏来说很好,但它确实需要 VB 编辑器的基本知识。
2) 向所有人发送您通过导出包含您的宏的模块创建的 .bas 文件。这为您提供了更多控制并避免了 copy/paste 错误。仍然需要对 VB 编辑器有基本的了解(或您的正确指导)。
3) 将您的宏打包到位于 Templates 文件夹中的模板(.dotm 文件)中。用户可以将该模板应用于他们正在创建的任何文档并获得对您的宏的访问权限。不需要 VB 知识;这是通过标准的 Word 新建文件过程完成的。如果需要,还允许您包含样式或其他内容。
4) 将您的宏打包为一个位于启动文件夹中的全局模板(.dotm 文件)。用户将可以在他们处理的每个文件中访问您的宏,无需应用您的模板。如果您正在做的事情是您团队工作流程的核心并且不需要您在宏中包含样式,那么这很好。您还可以构建 UI 元素。 (此方法在 Word 2011 中可能存在问题;用户可能无法立即访问全局模板,但很容易取回。)
3 和 4 都要求用户最初将 .dotm 文件放在正确的位置。您可以帮助他们解决这个问题(一种方法是使用另一个 Word 文档作为 "setup" 文件,当 运行 时,将模板放在假定的正确文件夹中)。显然,这需要您做更多的工作,因此您想要走多远取决于您和您的业务需求。
5) 此外,如果您可以控制文档本身(而不仅仅是宏)的创建,则可以在文档中嵌入宏。您可以将宏本身放在文档的 ThisDocument 模块中(在项目资源管理器中找到您的文档,然后打开 Microsoft Word 对象)。然后将文档另存为 .docm(启用宏的文档)。应该指示用户在打开文档时启用宏(不同版本的 Word 使用略有不同的界面来提示用户,但它总是很明显)。
在过去的 7 年里,我一直在以不同的方式部署我的 Word VBA。该软件是一个 Word 插件,可以让教师更轻松地提供作业反馈。它以 30 天的试用期分发,如果用户购买它,他们将获得一个密钥,使他们能够使用 eMarking Assistant 一年。您可以在 http://eMarkingAssistant.com
测试部署系统
部署和许可机制如下:
- 将 vba 保存在启用宏的文档中,即 .docm 文件
- 在 Windows 中将文件重命名为 .doc 文件
- 使用 http://orlando.mvps.org/VBADecompilerMore.asp 中 Orlando 的优秀 "VBA decompiler and compacter" 从 .doc 中删除编译代码和对特定 Office 版本的引用并压缩文档
- 要求用户下载 .doc 文件
- 要求用户打开 .doc 文件并确保宏已启用
- 让用户试用文档中的软件
- 如果他们想在任何文档中使用该软件,他们可以单击文档中的 "install" 按钮将 vba 代码复制到其 Word 启动文件夹中的 .dotm 文件(因此它自动加载)
- 如果他们想购买订阅以使用该软件,他们会使用 paypal 付款,我会向他们发送一个解锁软件的密钥,直到订阅结束
这个过程的优点是:
- 单个文档可用于 Windows 从 Office 97 到 Office 2016(32 位和 64 位)的所有 Office 版本。
- 安装和卸载都在 Office 中进行,因此用户不需要对其计算机的管理员权限
- 用户在文档中使用过软件后无需安装
- 用户无需使用其他程序解压或安装软件
彼得·埃文斯
我创建了一个 VBA-macro,我公司的一些 word 文档将使用它。该宏检测标签并从文档中删除章节。此文档是由另一个程序创建的。所以宏应该是单独分发的。
是否可以生成将宏添加到用户的可执行文件运行可执行文件?
是否有其他方法可以将宏打包并安装到用户的计算机上?
谢谢
部署宏最简单的方法是通过模板。创建宏并将文件另存为 .dotm(启用宏的模板)。我想您会得到将 .dotm 文件保存在何处的建议。
任何想要使用您的模板的同事只需将其放在该目录中即可(我认为是 C:\Users\[UserName]\AppData\Roaming\Microsoft\Templates)。之后,他应该能够在处理任何 Word 文档时使用宏。
基本上有五种方法可以做到这一点:
1) 向每个人发送一个包含您的宏的文本文件,他们可以将其粘贴到自己的 Normal 模板中。这对于不太可能与用户自己创建的宏有任何名称冲突的非常简单的宏来说很好,但它确实需要 VB 编辑器的基本知识。
2) 向所有人发送您通过导出包含您的宏的模块创建的 .bas 文件。这为您提供了更多控制并避免了 copy/paste 错误。仍然需要对 VB 编辑器有基本的了解(或您的正确指导)。
3) 将您的宏打包到位于 Templates 文件夹中的模板(.dotm 文件)中。用户可以将该模板应用于他们正在创建的任何文档并获得对您的宏的访问权限。不需要 VB 知识;这是通过标准的 Word 新建文件过程完成的。如果需要,还允许您包含样式或其他内容。
4) 将您的宏打包为一个位于启动文件夹中的全局模板(.dotm 文件)。用户将可以在他们处理的每个文件中访问您的宏,无需应用您的模板。如果您正在做的事情是您团队工作流程的核心并且不需要您在宏中包含样式,那么这很好。您还可以构建 UI 元素。 (此方法在 Word 2011 中可能存在问题;用户可能无法立即访问全局模板,但很容易取回。)
3 和 4 都要求用户最初将 .dotm 文件放在正确的位置。您可以帮助他们解决这个问题(一种方法是使用另一个 Word 文档作为 "setup" 文件,当 运行 时,将模板放在假定的正确文件夹中)。显然,这需要您做更多的工作,因此您想要走多远取决于您和您的业务需求。
5) 此外,如果您可以控制文档本身(而不仅仅是宏)的创建,则可以在文档中嵌入宏。您可以将宏本身放在文档的 ThisDocument 模块中(在项目资源管理器中找到您的文档,然后打开 Microsoft Word 对象)。然后将文档另存为 .docm(启用宏的文档)。应该指示用户在打开文档时启用宏(不同版本的 Word 使用略有不同的界面来提示用户,但它总是很明显)。
在过去的 7 年里,我一直在以不同的方式部署我的 Word VBA。该软件是一个 Word 插件,可以让教师更轻松地提供作业反馈。它以 30 天的试用期分发,如果用户购买它,他们将获得一个密钥,使他们能够使用 eMarking Assistant 一年。您可以在 http://eMarkingAssistant.com
测试部署系统部署和许可机制如下:
- 将 vba 保存在启用宏的文档中,即 .docm 文件
- 在 Windows 中将文件重命名为 .doc 文件
- 使用 http://orlando.mvps.org/VBADecompilerMore.asp 中 Orlando 的优秀 "VBA decompiler and compacter" 从 .doc 中删除编译代码和对特定 Office 版本的引用并压缩文档
- 要求用户下载 .doc 文件
- 要求用户打开 .doc 文件并确保宏已启用
- 让用户试用文档中的软件
- 如果他们想在任何文档中使用该软件,他们可以单击文档中的 "install" 按钮将 vba 代码复制到其 Word 启动文件夹中的 .dotm 文件(因此它自动加载)
- 如果他们想购买订阅以使用该软件,他们会使用 paypal 付款,我会向他们发送一个解锁软件的密钥,直到订阅结束
这个过程的优点是:
- 单个文档可用于 Windows 从 Office 97 到 Office 2016(32 位和 64 位)的所有 Office 版本。
- 安装和卸载都在 Office 中进行,因此用户不需要对其计算机的管理员权限
- 用户在文档中使用过软件后无需安装
- 用户无需使用其他程序解压或安装软件
彼得·埃文斯