在VBA GUI程序中包含可执行脚本

时间:2013-09-25 18:47:52

标签: vba user-interface executable

我在这个伟大的Q& A网站上的第一篇文章,我希望有人可以帮助我。

有一个在DOS下运行的exe格式的脚本(script.exe)。这个脚本需要一个输入文件来处理,所以在DOS中 我需要做“Script.exe inputfile> ouputfile.txt”。

可以在VBA中创建一个带有几个按钮的简单GUI,并在VBA应用程序内部“插入” script.exe?

可以将script.exe文件放在可执行的VBA GUI中吗?

我想要实现的是一个带有文本的GUI,询问输入文件和一个按钮来选择要处理的文件 并且VBA应用程序运行script.exe。

1 个答案:

答案 0 :(得分:1)

您无法使用VBA创建独立的.exe文件。您可能会考虑而不是

您必须在Office应用程序(通常是Excel / Word / Access / Powerpoint / Outlook)中制作VBA程序。

要做到这一点:

  1. 使用提交按钮创建用户表单
  2. 将提交按钮命名为“cbSubmit”
  3. 将以下代码添加到与userform

    关联的代码中
    Private Sub cbSubmit_Click()
    
    Dim myCommand As String
    Dim myInputArg As String
    Dim myFile As Office.FileDialog
    Set myFile = Application.FileDialog(msoFileDialogFilePicker)
    
    With myFile
    
       .AllowMultiSelect = False
    
       ' Set the title of the dialog box.
       .Title = "Please select the file."
    
       ' Clear out the current filters, and add our own.
       .Filters.Clear
       .Filters.Add "All Files", "*.*"
    
       ' Show the dialog box. If the .Show method returns True, the
       ' user picked at least one file. If the .Show method returns
       ' False, the user clicked Cancel.
       If .Show = True Then
         myInputArg = .SelectedItems(1) 'replace txtFileName with your textbox
    
       End If
    End With
    
    'don't continue if user doesn't select something
    If myInputArg = "" Then Exit Sub
    'construct shell command
    myCommand = "Script.exe" & myInputArg & " > ouputfile.txt"
    
    'run shell command
    Dim returnVal As Double
    returnVal = Shell(myCommand, vbHide)
    
    End Sub