将 .xlsm 文件转换为 exe

Converting .xlsm file into exe

我已经使用 VBA (.xlsm) 构建了一个工具,并想将其转换为 .exe 文件。我希望 excel 图标在转换为 .exe 文件(作为自定义应用程序)后不显示。我知道您可以创建快捷方式并更改图标,但希望完全删除 excel 图标,或者至少在文件夹中的某处仍然有 excel 文件,但可以通过 .exe 图标访问。

知道最好的方法是什么吗?

非常感谢!

您可以使用 Visual Studio 轻松创建 .exe 文件。我从来没有听说过有人使用 Excel 创建 .exe 文件。

https://www.youtube.com/watch?v=CEpiZqSlPGg

使用 Visual Studio 有很大的好处!任何使用托管环境的东西(包括用 C# 和 VB.NET 编写的任何东西)都需要 .NET 框架。在这种情况下,您可以简单地重新分发您的 .EXE,但如果他们还没有合适的框架,他们将需要安装它。

如果您仅限于在 Excel 中开发,您可以尝试使用 VB 脚本 启动 Excel。
你是怎么做到的?

  1. 使用记事本创建一个 .vbs 文件。你如何创建一个?
    只需保存文件,然后在文件另存为对话框中select所有文件(*)
    创建一个有用的名称并使用 .vbs 扩展名。
    就是这样,你现在有一个 Vb Script 可执行文件。

  2. 然后编写代码来打开并启动您的 Excel。
    您可以查看
    不过请注意 David 的评论。如果你需要在Readonly(不需要保存工作簿,它是一个模板)或ReadWrite(需要在运行宏之后保存工作簿)模式下打开工作簿。最简单的代码看起来像 brettdj 写的。我们只要注意打开工作簿为ReadOnly.

    xlFilePath = "C:\User\Username\myexelfile.xlsm"
    Set xlWb = xlApp.Workbooks.Open(xlFilePath, 0, True) '/* opens as ReadOnly */
    

    True 更改为 False 使其成为 ReadWrite。保存并完成您的 exe 文件。

  3. 既然你想要一个可执行文件,我假设你在Excel中有表格。
    如果我的假设是正确的,那么你可以使用Events 关闭并终止 Excel.
    关闭 Userform.

    后类似下面的内容关闭工作簿
    Private Sub UserForm_QueryClose(Cancel As Integer, CloseMode As Integer)
        ThisWorkbook.Close False '/* do not save changes */    
    End Sub
    
  4. 您将不得不在工作簿本身上使用另一个 事件 来关闭 Excel 应用程序 .
    应该如下所示:

    Private Sub Workbook_BeforeClose(Cancel As Boolean)
        Application.Quit '/* quits Excel before actually closing the workbook */
    End Sub