2013-07-10 47 views
2

我想弄清楚在Microsoft Office中運行的VBA代碼是否正在編譯(對於像MSIL這樣的中間語言)還是它是解釋VBA本身的基於解釋器的語言。Office VBA宏正在編譯?

我試圖在網上找到一個直接的答案,並可以找到任何明確的。我試圖找到一個「編譯」VBA的API,但我確實發現了任何(並不意味着代碼沒有被編譯)。

有沒有人知道內部發生了什麼事,或者至少有一個關於如何檢查它的想法?

回答

3

我不知道如果這是你明確地尋找,但我設法找到這個......

「VBA編寫的代碼被編譯成稱爲專有的中間語言P-代碼(打包代碼),主機應用程序(Access,Excel,Word,Outlook和PowerPoint)作爲單獨的流存儲在獨立於文檔流的COM結構化存儲文件(例如.doc或.xls)中。然後由虛擬機執行[1](託管應用程序託管)。「

從下面的wiki頁面..

http://en.wikipedia.org/wiki/Visual_Basic_for_Applications

上的P代碼更多信息..

http://en.wikipedia.org/wiki/Microsoft_P-Code

希望這有助於!

+0

謝謝! :-)看起來很有希望! – TCS

+0

當我查看P-Code維基頁面時,它確實表示P代碼通常已經被CIL(通用中間語言)淘汰,但從我的上述說法看,它仍然在Office中使用。 – Conquistador

+0

@TCS,是的,我同意。無論如何,我會檢查出來。再次感謝。 – TCS