VbaProject.OTM部署

标签 vba outlook outlook-addin

我来自this page 并正在考虑将我的 VbaProject.OTM 文件(位于 %appdata%\Microsoft\Outlook\)分发给大约 30 个人的最佳方法我办公室的用户。是否最好简单地将 OTM 文件复制/粘贴到网络上,然后将其复制/粘贴回所有用户的计算机(手动或使用 .bat)或者使用该方法会更好吗上面的链接中描述了如何生成 OPS 文件并使用 Proflwiz.exe 将其导入回来?有什么区别?

实际上,我们都在使用 Microsoft Office Outlook 2003,我们可能有一天会升级到 2007,但还需要几年时间。

最佳答案

最终提出了一些部署 Outlook VBA 项目的元素。有很多方法可以做到这一点,但最简单的方法是直接从服务器运行 OTM 文件,而无需安装任何东西并保持相同的方法。我发现进程outlook.exe有一个参数altvba,允许指定另一个路径来运行OTM文件。这是一个例子:

outlook.exe/altvba“\\myServer\myFolder\myFile.otm”

这允许我只更新一个文件来更新所有计算机。显然,如果文件很大并且服务器的 ping 值偏高,则可能会延迟 Outlook 的启动。此方法的另一个问题是,如果您想更新服务器上的 OTM 文件,每个人都必须关闭 Office(如果您在每个人都使用 Outlook 的办公室工作,您确实知道这是不可能的) 让每个人同时关闭它,除非你最终编写了一个宏来这样做)。为了防止这两个问题,我可以设置一个批处理文件,以便每次有新版本时都在客户端复制服务器 OTM 文件(只需检查 NTFS 最后修改属性)。这样,Outlook 将使用本地文件启动,如果需要,批处理文件需要 2-3 秒来复制文件(或将立即启动 Outlook),并且更新服务器上的 OTM 文件不会出现问题。用户必须使用批处理文件启动 Outlook(或使用带有 altvba 参数的稍微不同的 Outlook.exe 路径,因此无论哪种方式,他们都需要不同的快捷方式/文件才能第一次启动)。 altvba 的另一个优点是,用户在没有它的情况下仍然可以轻松运行 Outlook(在 Outlook 运行缓慢的情况下查看 VBA 是否有问题),并且文件在运行一段时间后将保持不变。 Outlook 重新初始化。

其他解决方案包括 COM 补充,可以在包括 VB6 在内的多种语言上进行开发(无需从 VBA 进行转换)。 Microsoft Office XP Developer 中还包含一堆可以帮助完成工作的工具(但是不是免费的,特别是当您需要最新版本时)。

关于VbaProject.OTM部署,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14460036/

相关文章:

excel - 在 VBA 中编码多行图(循环)

python - 使用python在outlook 2010中创建文件夹

c# - 微软图形API : $filter & $search not working together

c# - 以中等 UAC 完整性级别运行 CLR 应用程序?

asp.net - 使用 .NET 开发 MS Outlook 插件

vba - Vba Selenium 代码从Li类获取数据

vba - 如何使用单元格的内容作为我的代码的输入?

vba - 将数据从 Web 插入 Excel 工作表 - VBA

outlook-addin - 使用 JavaScript API for Office 获取邮件正文

outlook-addin - 发出附件提醒后,OnSend被触发了两次