2013-09-25 50 views
0

我的第一篇文章在這個偉大的Q &一個網站,我希望有人能幫助我。在VBA GUI程序中包含可執行腳本

以DOS格式(script.exe)運行的exe格式的腳本。這個腳本需要一個輸入文件來處理,所以在DOS 我需要做「Script.exe輸入文件> ouputfile.txt」。

可以在VBA中用幾個按鈕創建一個簡單的GUI,並在VBA應用程序中插入 script.exe?

在可執行的VBA GUI中可以有script.exe文件嗎?

我想什麼來實現的是有一個文本,要求輸入文件和一個按鈕來選擇要處理 的文件,並且VBA程序運行script.exe的GUI。

+1

VBA不會創建獨立的應用程序。 VBA只能在Office包內運行,並且不會創建任何可執行文件。您需要下載VS2012 Express for Desktop(免費)並構建Windows窗體應用程序以實現您想要的功能。 – 2013-09-26 07:51:40

回答

1

您無法使用VBA創建獨立的.exe文件。你可能會想到而不是

您必須在Office應用程序(通常爲Excel/Word/Access/Powerpoint/Outlook)中製作VBA程序。

要做到這一點:

  1. 創建一個提交按鈕
  2. 名稱提交按鈕「cbSubmit」
  3. 下面的代碼添加到與用戶窗體

    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 
    
    相關的代碼一個用戶窗體
+0

謝謝你的幫助。我會嘗試你分享我的代碼。 一旦我能夠創建GUI界面並使用代碼,在VB程序的編譯 的時刻使其可執行,script.exe文件將駐留在創建的exe程序 通過VBA?我的意思是script.exe將成爲由VBA生成的最終.exe文件的一部分? 或者我該怎麼做,我的目標是提供一個GUI到script.exe程序,但最終的應用程序在 單個.exe。 再次感謝您的幫助。 – Zurix

+0

@Zurix VBA不會生成可執行文件,所以你建議不會工作。我建議研究一下VBA來澄清你所問的問題。 – enderland

+0

你好恩德蘭,那麼,以Visual Studio爲例,我可以將VBA項目轉換爲可執行文件?分辯? 也許我做了錯誤的問題。我的意思是,如何在單個exe程序中包含VBA代碼和script.exe?再次感謝 – Zurix