vba - 跨 MS Office 应用程序共享 VBA 模块

标签 vba excel ms-office ms-word

我有大量用 Excel 2010 加载项编写的 VBA 模块。其中一些是特定于 Excel 的,但许多是更通用的。例如,获取零件编号并重新格式化;另一个包含案例选择功能,用于在网络驱动器中查找文件。

我想使用Word和Outlook中的常用功能。我可以从 Excel 复制并粘贴到 Word 加载项,但这使得我的代码很难保持最新 - 当我在一个应用程序中进行编辑时,我必须记住复制到所有其他应用程序。

我的问题是,是否有任何方法可以在一个地方(例如在 Excel 加载项或其他一些公共(public)位置)编写通用代码,以便所有 MS Office 应用程序都可以访问它,就像它只是另一个模块一样?

最佳答案

过去的做法是使用 Visual Basic 6 将代码编译成 COM(或 ActiveX)DLL。然后,您可以使用 VBA 编辑器的“工具...引用”对话框添加该 DLL ,从任何支持 VBA 的 Office(或其他)产品,就像您使用 Microsoft Scripting Runtime 一样,这对于 Dictionary 之类的事情非常方便。 , FileSystemObjectTextStream .

问题是,VB6 于 1998 年某个时候发布,多年来 Microsoft 一直不提供或支持。似乎有相当多的下载网站提供该软件包 - 我无法提供有关使用它们可能遇到的合法性或安全问题的任何建议...

可耻的是,微软几年前就放弃了 VBA - 看起来他们最希望它消失。

关于vba - 跨 MS Office 应用程序共享 VBA 模块,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27012946/

相关文章:

ms-access - 带有 "With"语句的 VBA 错误处理程序

vba - 错误 - 无效请求。要选择一个形状,它的 View 必须处于事件状态

vba - 在 Microsoft Word 文档中存储任意元数据

hyperlink - 查询字符串已从超链接 URL 中删除(互操作)

c# - 如何添加 "MS Visual Studio 20xx Tools for Office Runtime"?

vba - 如何在VBA(Excel)中从字符串中提取第一个单词?

vba - 如何在 excel-vba 中添加 'Stop Macro'?

excel - Excel中一维变体数组中的元素数量

excel - 不带引号显示前导零

excel - 在单独的 Google Chrome 浏览器窗口中打开多个 URL