VBA代码可以在MS应用程序之外运行吗?

时间:2011-11-17 17:02:53

标签: excel vba compilation programming-languages

我刚开始学习VBA。据我所知,人们使用VBA在MS-Excel中编写宏。但我想知道它是否是VBA唯一的应用领域。它可以像许多其他标准语言一样使用 - 例如Python。

如果是这样,我该如何编译VBA程序?它应该编译吗?我该如何运行这样的VBA程序?

5 个答案:

答案 0 :(得分:6)

VBA被编译为p代码。 P代码是一种中间语言,需要额外的运行时才能执行。此运行时由大多数Microsoft Office应用程序(包括各种非Microsoft应用程序)托管。

简而言之,您无法编写仅编译为.EXE的VBA应用程序。

答案 1 :(得分:2)

要创建独立的类似VBA的程序,您需要使用Visual Basic 6或更早版本。当然,Visual Basic 6的继承者是VB.NET,它是一种非常不同的动物。

答案 2 :(得分:2)

VBA可以获得许可,办公室外有很多使用VBA的产品。 MS不再签发新许可证。有来自Summit软件的非MS VBA实现。无论如何,您需要拥有自己的产品来托管VBA。

答案 3 :(得分:0)

支持VBA的值得注意的应用是AutoDesk AutoCAD。它授权VBA运行时并拥有自己的对象模型。

答案 4 :(得分:-2)

如果您没有提前编译程序(在Visual Basic编辑器中单击Debug - > Compile),则Microsoft Office会在运行时编译它。你真的应该经常编译,因为这是你发现编译错误的方法。

如何运行VBA应用程序完全取决于您如何设置它来运行。例如,在Excel中,您可以让Workbook_Open事件在打开工作簿时启动代码,或者创建用户单击以运行代码的自定义菜单。在Access中,您可以设置要在数据库打开时显示的表单,也可以创建将在数据库打开时运行的autoexec宏。等等。

就像上面说的其他人一样,你无法创建VBA的.exe文件。代码必须在Microsoft Office应用程序中运行。