如何存储 Office 2007 的 VBA 宏以使它们始终可用并与他人共享?

如何存储 Office 2007 的 VBA 宏以使它们始终可用并与他人共享?

我为 Word、Excel Outlook 和 PowerPoint 2007 创建了一些有用的 VBA 宏。

现在我想

  • 让它们始终在相应的应用程序中可用键盘快捷键或者要点击的图标
  • 还可以轻松地与同事共享,因此如果有任何更新,他们可以轻松使用新版本。
  • 对变化有一个概述(版本控制)

对我来说,在 Office 2007 的“功能区”中创建自定义命令似乎已经非常困难,而且我遇到的问题是,当我将宏存储在某个文件中时,必须打开该文件才能使宏工作 - 我希望在后台打开该文件。有谁知道涵盖该内容的优秀教程或书籍吗?

我可以创建自己的插件吗?如果我没记错的话,插件不能再直接修改了,所以如果代码不断增长,我需要将源代码保存在一个地方,将插件保存在另一个地方 - 是这样的吗?

答案1

恕我直言,Luiz 错了。您不需要 Visual Studio 来创建插件,尽管您当然可以使用它来实现这一点。

在 PowerPoint 中,您可以编写 VBA 代码并将其保存在 PPT 或 PPTM 文件中,具体取决于您的 PowerPoint 版本。代码可以使用旧的 CommandBars 对象模型来创建命令栏和按钮(它们出现在 2007/2010/2015 中的加载项选项卡上)。

然后,您可以将其另存为 PowerPoint 插件(根据版本和兼容性需求,再次保存为 PPA 或 PPAM)。最终用户可以像安装其他插件一样安装该插件,或者您可以创建安装程序或通过组策略或其他方式将必要的注册表设置推送给多个用户。通过注册表安装插件仅涉及两三个设置。

安装后,插件的工具栏/功能将可用在应用程序中以及其中打开的任何文件,不限于任何特定的文档文件。

更新?复制一个新的 PPA/PPAM 文件来替换已有文件。唯一的限制是执行此操作时 PowerPoint 不能运行。

回到对 Luiz 的应有敬意...他是对的,第三方工具对于版本控制是必要的。如果不需要高度精细的控制,我们中的许多人都会这样做;在进行任何更改之前,将源文件保存到新文件中;每个文件的名称都包含创建日期。包含设置为相同日期的常量也很有用。然后,加载项中的“关于”命令可以显示版本或日期或任何你喜欢的内容,以便你可以验证用户是否拥有正确的版本。

我在 Powerpoint 常见问题解答网站上有关于此问题的更多详细信息:

创建和安装插件、工具栏、按钮 http://www.pptfaq.com/index.html#name_Creating_and_Installing_Add-ins-_Toolbars-_Buttons

答案2

对于 Excel,您的宏应存储在个人宏工作簿 (PERSONAL.XLSB) 中,默认情况下该工作簿是隐藏的。Word 有一个 Normal 模板,(如果我没记错的话)可以存储宏。Outlook 有一个类似的东西,但我不记得它叫什么了。PowerPoint 是个例外,据我记得,它似乎没有地方存储全局宏。

我使用 SyncBackSE 在计算机之间同步我的 Excel 宏工作簿。我更新 Outlook 宏的频率并不高,因此不需要同步它们,但您可能可以做类似的事情。只有在 Excel 关闭时才能进行同步,因为它会锁定工作簿。我不知道您如何实现版本控制。

答案3

如果我没记错的话,您需要 Visual Studio(和 Visual Studio Tools for Office)来创建 AddIns。

如果您希望命令始终可用,您可以尝试将它们导入到启用宏的模型并覆盖 Normal.dotm(至少在 Word 中)。只需在执行此操作之前提醒他们即可。

您的同事是谁?他们在同一家公司吗?您与他们共享网络吗?如果是,请创建一个将覆盖用户的 Normal.dotm 的启动脚本。

如果您不在同一网络上,请尝试 Dropbox 等服务。与他们共享一个文件夹。在该文件夹中,创建启用宏的文件和批处理以覆盖用户的 Normal.dotm。

另一种选择是保留 normal.dotm 并创建简单的模型文档,使其在网络/云上可用,并指导您的同事在想要使用您的增强版本时使用这些文件。

现在...版本控制?您必须使用第三方工具来实现。

相关内容