2012-10-06 175 views
0

我不知道如何將Excel VBA上編寫的VBA代碼分配給某種程序/程序,或者可能是dos相關的文件路徑,您可以直接打開excel。換句話說,我想要一個桌面圖標,我可以激發我分配的vba代碼。無需打開excel即可運行宏

+1

不能運行Excel的VBA宏'without'打開包含宏文件。如果你想要,你可以在隱藏模式下啓動excel應用程序,然後在從VBS文件以隱藏模式打開文件後運行宏。 –

+1

我認爲更好的方法是嘗試VB.Net。我發現從VBA學習曲線到**簡單** VB.Net無痛苦。 Express版本是免費的,如果您只想生產桌面工具,則限制不太可能成爲問題。 –

+0

@Tony:這並不總是可能的。例如,在我的部門,我們爲內部客戶開發Excel工具,但我們無法訪問VS許可證。 – ApplePie

回答

1

如果我的理解是正確的,你可以簡單地寫在一個文本文件VBS代碼,並重新命名爲.vbs的 (確保文件結尾可見在Windows)。雙擊該文件由Windows腳本主機執行。 VBS缺乏VBA的某些功能,但您可以使用CreateObject/GetObject進行很多操作。

+0

我對這種快捷方式的解決方案非常興奮,但它給錯誤 – serhat

1

如果Excel宏中的VBA沒有引用Excel對象,則可以將代碼複製到文本文件中並將擴展名更改爲.VBS。但是,VB腳本在使用類型時不喜歡它,只需從Dim語句中刪除「AS something」。

我經常這樣做以獲得Intellisense的好處,我不會使用記事本。

如果我的假設是正確的,那麼您可能希望將標籤更改爲VB腳本而不是Excel,以獲得適當的幫助。

0

儘管學習曲線可能有點陡峭,但您可以考慮使用AutoHotKey。這允許您創建自己的腳本,並且如果需要的話將它們轉換爲(相當大的).exe文件。 AutoHotKey是免費的!

0

編寫一個打開excel的cmd或ps1,並在該excel的啓動運行您的宏...然後完成關閉它。

這可能是一個解決方案,但你可能正在做一些在正確的計劃環境中不必要的東西。

1

你可以很容易地做到這一點。

將以下內容添加到VBS文件(例如example.vbs)中。這是唯一可以使用記事本編寫的文本文件:

'Code should be placed in a .vbs file 
Set objExcel = CreateObject("Excel.Application") 
objExcel.Application.Run "'C:\path\to\my\excel\file\myExcelMacroFile.xlsm'!MyModule.MyFunctionName" 
objExcel.DisplayAlerts = False 
objExcel.Application.Quit 
Set objExcel = Nothing 

然後你就可以在VBS文件來執行它的兩倍集團公司。

來源:http://wellsr.com/vba/2015/excel/run-macro-without-opening-excel-using-vbscript/