VBA是指在Excel之類的運行的程式碼嗎?
你說cmd是什麼意思?是按個按鈕就會執行的嗎?
如果是這樣的話是可以的。
visual studio 可以轉成exe檔案阿
但是vba excel 跟 visual studio 不一樣
每個介面開發工具 轉出來的檔案就是不一樣
請問您的需求是否為 定時/排程 執行?
如果是的話,有幾種方式:
可以在Excel中的ThisWorkbook位置寫開啟後會檢查的項目,例如晚上定時執行時,檢查時間是否一致,一致就執行指定的作業,沒有一致就跳過自動執行
以上幾種方向給您參考,有問題再詢問
請問可以帶參數給VBA去執行嗎,只要可以呼叫都可以
VBS本身就可以帶參數,然後再轉帶到VBA中執行,但VBS我就不是很熟了,您可以上網找些範例試試。
3透過命令列模式的方式開啟Excel,於Excel 2000可以透過程式取得參數,但2003與之後的版本,似乎就取消這個方法,只能從命令列字串看出是由命令列開啟Excel,或者GUI點開Excel,可以試著開新的Excel檔案,添加以下的程式到特定的位置:
ThisWorkbook:
Private Sub Workbook_Open()
MsgBox CommandLine
End Sub
Function CommandLine() As String
Dim length As Long, pstr As Long
pstr = GetCommandLine()
length = lstrlen(pstr)
CommandLine = String(length + 1, 0)
lstrcpy CommandLine, pstr
End Function
Module1:
Public Declare Function GetCommandLine Lib "kernel32" Alias "GetCommandLineA" () As Long
Public Declare Function lstrlen Lib "kernel32" Alias "lstrlenA" (ByVal lpString As Long) As Long
Public Declare Function lstrcpy Lib "kernel32" Alias "lstrcpyA" (ByVal lpString1 As String, ByVal lpString2 As Long) As Long
然後試著開啟該Excel,由GUI點開,與由命令列方式開啟,查看MsgBox帶出的字串差異。
由於2003開始無法用此方式處理,所以會建議先把參數字串寫入到某個文字檔中,再由以上程式判斷是透過GUI開啟,還是命令列開啟,命令列開啟,則讀取該文字檔,並解析出參數使用,如果是GUI開啟,則跳過這作業,因為不是透過排程執行。
以上方向給您參考。