将.xlsm文件转换为exe

时间:2018-01-14 13:06:18

标签: excel vba excel-vba software-distribution

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

知道最好的方法是什么?

非常感谢!

2 个答案:

答案 0 :(得分:1)

如果您只能在Excel中进行开发,则可以尝试使用 VB脚本来启动Excel。
你是怎么做到的?

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

    enter image description here

  2. 然后编写代码以打开并启动Excel。你可以看看what brettdj has to say here
    请注意大卫的评论。如果需要在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中有表单。
    如果我的假设是正确的,您可以使用事件来关闭和终止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
    

答案 1 :(得分:0)

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

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

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