我试图弄清楚在Microsoft Office中运行的VBA代码是否正在编译(对于像MSIL这样的中间语言),还是基于解释器的语言解释VBA本身。
我试图在网上找到一个直接的答案,可以找到任何清楚的答案。我试图找到一个“编译”VBA的API,但我确实找到了(这并不意味着代码没有被编译)。
有没有人知道内幕发生了什么,或者至少知道如何检查它?
答案 0 :(得分:5)
我不确定这是不是你明确要找的,但我设法找到了......
“用VBA编写的代码编译为专有的中间语言,称为P代码(打包代码),托管应用程序(Access,Excel,Word,Outlook和PowerPoint)作为COM结构化存储文件中的单独流存储(例如,.doc或.xls)独立于文档流。然后由虚拟机(由托管应用程序托管)执行[1]中间代码。“
来自以下维基页面..
http://en.wikipedia.org/wiki/Visual_Basic_for_Applications
有关P-Code的更多信息..
http://en.wikipedia.org/wiki/Microsoft_P-Code
希望这有帮助!