2011-11-17 126 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运行时并拥有自己的对象模型。

相关问题