使用VBA编辑器创建DLL

使用VBA编辑器创建DLL,vba,dll,Vba,Dll,我的工作是全职编写Visual Basic宏,以支持公司的许多部门。我做得很好,学到了很多,也很享受我的职位 我们正在为未来制定计划,虽然我很擅长搜索这些项目所需的信息(堆栈溢出是其中一个很好的资源),但我已经完成了一些我一直在尝试做的事情 这是土地的情况。我们通过网络驱动器分发附加到各种其他程序的宏,公司中的每个人都可以访问该网络驱动器。这些宏还与我们公司使用的专有系统进行接口并实现自动化。因此,当对该系统进行轻微更改时,我们必须对大量宏进行更改以保持最新状态 因此,我们想尝试做的是制作一个D

我的工作是全职编写Visual Basic宏,以支持公司的许多部门。我做得很好,学到了很多,也很享受我的职位

我们正在为未来制定计划,虽然我很擅长搜索这些项目所需的信息(堆栈溢出是其中一个很好的资源),但我已经完成了一些我一直在尝试做的事情

这是土地的情况。我们通过网络驱动器分发附加到各种其他程序的宏,公司中的每个人都可以访问该网络驱动器。这些宏还与我们公司使用的专有系统进行接口并实现自动化。因此,当对该系统进行轻微更改时,我们必须对大量宏进行更改以保持最新状态

因此,我们想尝试做的是制作一个DLL,其中包含与我们的专有系统交互的方法。我们希望将该DLL放在网络驱动器上,并在那里设置所有宏的引用。不幸的是,我们至少目前还没有访问VisualStudio的权限。就开发环境而言,我们所能访问的只是随office打包的Visual Basic 6.5。我们正在努力获得更多,但在大公司工作的任何人都知道这是怎么回事

因此,我想知道是否有可能使用VisualBasic编辑器创建DLL,以及是否会出现可能同时有数十个宏访问DLL的问题


提前感谢您提供的任何帮助或建议。

我猜您正在使用Office 2007产品。VBA是一种脚本语言,用于构建宏。DLL是经过编译的程序集。VBA编辑器不允许您创建DLL

您可以使用Visual Basic(不是应用程序的Visual Basic)创建DLL,然后在宏中引用它们

您还可以使用.NET创建一个宏,然后在宏中引用它。虽然没有必要,但我建议使用VisualStudio构建DLL

我将陈述一个显而易见的问题——为什么不投资于构建一个.NET应用程序(或Java或更具企业精神的东西),而不是维护宏?您可以构建灵活的配置,以便在专有系统发生更改时,应用程序也可以智能地更改其参数。这可能需要时间,但会通过宏减少维护


你可能别无选择。在这种情况下,我建议您以只需更改一两个宏而不必更改多个宏的方式拆分宏。适当减少依赖关系,所有易于更改的宏都可以放在一个位置。同样,这可能不可行。在这种情况下,将所有宏合并到web服务中(如果Visual Studio/.NET不可用,可以使用开源PHP/Python等),然后将office产品更改为调用web服务。关于的帖子。

虽然不能用VBA构建DLL,但可以用共享宏构建Excel加载项(.xla),并将其存储在网络驱动器上。

实际上是Office 2010。似乎在过去,您可以创建一个外接程序,然后使用某种方法将其修改为启用com的DLL。如果情况不再如此,那么我想这对我们来说是一条死胡同。正如我上面所说的,我们希望在将来的某个时候进入.Net、C#或VB。这只是说服高层购买VisualStudio的问题。我将研究web服务方法。它可能很有用。我很确定,只要不是用来创收的,VisualStudio Express对拥有Office许可证的公司是免费的。在你的情况下,它似乎是好的。