Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/silverlight/4.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
部署VBA宏_Vba_Deployment_Ms Word - Fatal编程技术网

部署VBA宏

部署VBA宏,vba,deployment,ms-word,Vba,Deployment,Ms Word,我创建了一个VBA宏,公司内的一些word文档将使用该宏。宏检测标记并从文档中删除章节。此文档由另一个程序创建。因此,宏应该是可单独分发的 是否可以生成一个可执行文件,将宏添加到运行该可执行文件的用户 是否有其他方法可以将宏打包并安装到用户的计算机上 谢谢部署宏的最简单方法是通过模板。创建宏并将文件另存为.dotm(启用宏的模板)。我想你会得到一个保存.dotm文件的建议 任何想使用您的模板的同事只需将其放在该目录中(我认为它是C:\Users\[UserName]\AppData\Roamin

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

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

是否有其他方法可以将宏打包并安装到用户的计算机上


谢谢

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


任何想使用您的模板的同事只需将其放在该目录中(我认为它是C:\Users\[UserName]\AppData\Roaming\Microsoft\Templates)。之后,他应该能够在处理任何word文档时使用宏。

基本上有五种方法:

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

2) 通过导出包含宏的模块,向每个人发送您创建的.bas文件。这使您可以进行更多的控制,并避免复制/粘贴错误。仍然需要对VB编辑器有基本的了解(或者需要您提供适当的说明)

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

4) 将宏打包为位于启动文件夹中的全局模板(.dotm文件)。用户可以访问他们处理的每个文件中的宏,无需应用模板。如果您所做的工作是团队工作流程的核心,并且不需要在宏中包含样式,那么这是很好的。您还可以内置UI元素。(Word 2011中的这种方法可能存在问题;用户可能无法立即访问全局模板,但很容易恢复。)

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


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

在过去7年中,我一直以不同的方式部署Word VBA。该软件是一个单词外接程序,使教师更容易对作业提供反馈。它是作为30天的试用期分发的,如果用户购买了它,他们将获得一个密钥,可以使用eMarking助手一年。您可以在以下位置测试部署系统:

部署和许可机制如下所示:

  • 将vba保存在启用宏的文档中,即.docm文件
  • 在Windows中,将文件重命名为.doc文件
  • 使用Orlando的优秀“VBA反编译器和压缩程序”从.doc中删除编译代码和对特定Office版本的引用,并压缩文档
  • 请用户下载.doc文件
  • 要求用户打开.doc文件并确保启用了宏
  • 让用户在文档中试用软件
  • 如果他们想在任何文档中使用该软件,他们会单击文档中的“安装”按钮,将vba代码复制到Word启动文件夹中的.dotm文件中(因此会自动加载)
  • 如果他们想购买订阅使用该软件,他们会使用paypal支付,我会给他们发送一个密钥,解锁该软件,直到订阅结束
  • 这一过程的优点是:

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

  • Peter Evans

    创建并分发外接程序(
    dotm
    用于Word,
    xlam
    用于Excel)。您还可以创建一个
    exe
    ,将宏添加到文件中,但是分发外接程序并让他们打开它会更容易,考虑到这一点,但我希望有一种更简单的方法(因为我不希望用户必须复制和粘贴内容)用户不必复制粘贴文件,他可以直接在原始位置(共享文件夹、下载等)引用它。当然,自动化没有限制,您可以准备一个VBScript将文件移动到其他地方,但我认为这不值得:这是我们通常分发VBA代码的方式。网络路径是一个很好的方法,但您必须为此设置一些注册表值(更改word中的受信任位置)。您可以通过命令行文件(.cmd)实现这一点,因此同事只需执行该文件,然后就可以使用.cm设置它们