我想弄清楚在Microsoft Office中運行的VBA代碼是否正在編譯(對於像MSIL這樣的中間語言)還是它是解釋VBA本身的基於解釋器的語言。Office VBA宏正在編譯?
我試圖在網上找到一個直接的答案,並可以找到任何明確的。我試圖找到一個「編譯」VBA的API,但我確實發現了任何(並不意味着代碼沒有被編譯)。
有沒有人知道內部發生了什麼事,或者至少有一個關於如何檢查它的想法?
我想弄清楚在Microsoft Office中運行的VBA代碼是否正在編譯(對於像MSIL這樣的中間語言)還是它是解釋VBA本身的基於解釋器的語言。Office VBA宏正在編譯?
我試圖在網上找到一個直接的答案,並可以找到任何明確的。我試圖找到一個「編譯」VBA的API,但我確實發現了任何(並不意味着代碼沒有被編譯)。
有沒有人知道內部發生了什麼事,或者至少有一個關於如何檢查它的想法?
我不知道如果這是你明確地尋找,但我設法找到這個......
「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
希望這有助於!
謝謝! :-)看起來很有希望! – TCS
當我查看P-Code維基頁面時,它確實表示P代碼通常已經被CIL(通用中間語言)淘汰,但從我的上述說法看,它仍然在Office中使用。 – Conquistador
@TCS,是的,我同意。無論如何,我會檢查出來。再次感謝。 – TCS