我有大量用 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
之类的事情非常方便。 , FileSystemObject
和TextStream
.
问题是,VB6 于 1998 年某个时候发布,多年来 Microsoft 一直不提供或支持。似乎有相当多的下载网站提供该软件包 - 我无法提供有关使用它们可能遇到的合法性或安全问题的任何建议...
可耻的是,微软几年前就放弃了 VBA - 看起来他们最希望它消失。
关于vba - 跨 MS Office 应用程序共享 VBA 模块,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27012946/