2011-11-17 22 views
4

我剛開始學習VBA。據我所知,人們使用VBA在MS-Excel中編寫宏。但我想知道它是否是VBA的唯一應用領域。例如,它是否也可以像許多其他標準語言一樣使用 - 比如Python。VBA代碼是否可以在MS應用程序之外運行?

如果是這樣的話,我該如何編譯一個VBA程序?它應該被編譯?我如何運行這樣的VBA程序?

回答

6

VBA編譯爲p代碼。 P代碼是一種中間語言,需要額外的運行時才能執行。此運行時由大多數Microsoft Office應用程序(包括各種非Microsoft應用程序)託管。

簡而言之,您不能編寫一個編譯爲.EXE的僅VBA應用程序。

+1

你知道這些VBA p代碼在執行過程中存儲在哪裏嗎?我們可以訪問它嗎? – Qbik

1

要創建獨立的類VBA程序,您需要使用Visual Basic 6或更早版本。 Visual Basic 6的繼承者當然是VB.NET,它是一種非常不同的動物。

-1

如果您未提前編譯該程序(在Visual Basic編輯器中單擊調試 - >編譯),則Microsoft Office會在運行時對其進行編譯。你真的應該經常編譯,因爲這是你如何發現編譯錯誤。

運行VBA應用程序的方式完全取決於您如何設置運行。例如,在Excel中,可以讓Workbook_Open事件在打開工作簿時啓動代碼,或者創建用戶點擊運行代碼的自定義菜單。在Access中,您可以設置一個窗體在數據庫打開時顯示或創建一個在數據庫打開時運行的自動執行宏。等等。

像上面說的其他人一樣,您不能創建VBA的.exe文件。代碼必須在Microsoft Office應用程序中運行。

1

VBA可以獲得許可,並且在辦公室以外有相當多的使用VBA的產品。 MS不再頒發新許可證。有一些非MS VBA實現,如Summit軟件。無論如何,您需要擁有可以託管VBA的自己的產品。

1

支持VBA的值得注意的應用程序是AutoDesk AutoCAD。它授權VBA運行時並擁有自己的對象模型。

相關問題