如何将Excel VBA宏转换为EXE文件?

如何将Excel VBA宏转换为EXE文件?,excel,vba,exe,Excel,Vba,Exe,我用Excel宏准备了很多基于Excel的工具。在这些Excel表格中,用户通常在工具的指导下浏览Excel文件或输入数据,然后运行“我的宏”生成所需的输出。一切正常 但是,我是否可以将代码转换为exe文件并将其分发给可以在那里运行它的用户,而不是将这些工具作为Excel工作表分发 我在Excel上搜索了很多与exe相关的线程,但没有得到令人满意的答案,因此考虑启动一个新线程。这个答案可能也不令人满意,但事实是Excel不是生成独立应用程序(exe)的编程工具 因此,您需要使用VB.NET或C#

我用Excel宏准备了很多基于Excel的工具。在这些Excel表格中,用户通常在工具的指导下浏览Excel文件或输入数据,然后运行“我的宏”生成所需的输出。一切正常

但是,我是否可以将代码转换为exe文件并将其分发给可以在那里运行它的用户,而不是将这些工具作为Excel工作表分发


我在Excel上搜索了很多与exe相关的线程,但没有得到令人满意的答案,因此考虑启动一个新线程。

这个答案可能也不令人满意,但事实是Excel不是生成独立应用程序(exe)的编程工具

因此,您需要使用VB.NET或C#等真正的编程语言(和工具)重新编写项目。VBA(visualbasicforapplications)顾名思义是要在应用程序中运行(如Excel或其他Office应用程序),但不能单独运行

如果您计划在不使用Excel的情况下使用应用程序单机版(exe),则无法仅通过按下按钮或其他方式转换代码。您需要(手动)用另一种编程语言完全重新编写整个项目/工具


请注意,即使VBA和VB.NET使用类似的语法,也不能仅复制代码。这是两种完全不同的语言,代码需要重新编写。即使结果看起来很相似,也不一样。

只有在excel之外执行此操作,才能在Windows开发工具中编写一个能够在应用程序之间通信的程序。为此,您可以使用许多Microsoft开发平台,如f.e.C

您要做的是启动一个进程以干扰另一个进程

如何做到这一点在很大程度上取决于目标windows版本。这不是一个容易的话题,我不知道你是否真的想走这条路。但如果你这样做了,谷歌将在进程间通信和Windows上运行

这是一篇很好的概述文章:


您的解决方案不能满足您的需要。实际上,您需要的是一个可以分发给用户的加载项文件。此文件扩展了Excel并允许用户访问您的工具,但可以进行密码保护和隐藏,以便用户不会弄乱它。最简单的方法是将包含代码的工作簿保存为外接程序类型的文件,但您确实需要重写代码以明确使用的工作簿,因为代码中的此工作簿是外接程序,而ActiveWorkbook是用户在使用外接程序时打开的文件。您还需要开发菜单,让用户能够访问您的工具,因为他们看不到外接程序。

速度会慢得多。使用ane EXE意味着进程外激活,这比进程内激活慢得多。但是,您只需要重写它的一部分(现在需要实例化全局对象,常量需要输入数值)。欢迎使用SO。第一个答案:不,你不能。第二个答案是,不,你不能,但也许你可以用VB设计一些东西(注意VB不是VBA),因为语法是相似的(但它们确实不同)。如果您的代码并不复杂,并且可以选择Excel文件,那么您可以在VB中设计一个简单的,然后应用您的代码(您必须调整某些部分,但不是全部。尝试一下谢谢您的回复。不,我对使用我的代码生成exe的简单方法的误解已经消除…我将尝试使用visual studio重写我的代码