Microsoft® Visual Basic® for Applications (VBA) 软件提供了与其他支持 VBA 的应用程序之间的应用程序集成功能。
基于 AutoCAD 的产品可以用作其他应用程序(例如 Microsoft Word 或 Excel)的 Automation 控制器。
注: 默认情况下,不再安装 VBA。有关详细信息,请访问 https://www.autodesk.com/vba-download。
VBA 使用 AutoCAD ActiveX Automation 接口发送消息。AutoCAD VBA 允许 Visual Basic 环境与 AutoCAD 同时运行,并通过 ActiveX Automation 接口提供 AutoCAD 的编程控制。这样就把 AutoCAD、ActiveX Automation 和 VBA 链接在一起,提供了一个功能非常强大的接口。它不仅能控制 AutoCAD 对象,也能向其他应用程序发送数据或从中检索数据。
在可以从 VBA 工程编辑或运行宏之前,必须先将其加载到 AutoCAD 中。VBA 工程存储在单独文件中并使用 .dvb 扩展名,由代码和类模块以及窗体组成。由于 VBA 工程存储在单独文件中,因此 VBA 工程可以在任务期间打开和关闭不同的 AutoCAD 图形,而在 AutoLISP 中无法执行此操作。
注: VBA 工程与使用 Visual Studio 创建的 Visual Basic 工程 (VBPROJ) 文件不是二进制兼容的。
AutoCAD VBA 的基本要素
AutoCAD 中的 VBA 编程由三个要素定义。
- AutoCAD - 提供了全面的对象,包括 AutoCAD 图元、数据和命令。AutoCAD 的可编程性是非常必要的。但是,VBA 的基于对象的方法和 AutoLISP 的大不一样。
- AutoCAD ActiveX Automation 接口 - 与 AutoCAD 对象进行消息传递(通讯)。用 VBA 编程需要对 ActiveX Automation 有基本的了解。
- VBA - 提供它自己的一套对象、关键字和常量的集合,用于提供程序流、控制、调试和执行。AutoCAD VBA 中包括 Microsoft 关于 VBA 的扩展帮助系统。
使用 VBA 的优点
AutoCAD ActiveX/VBA 接口的优点多于其他 AutoCAD API 环境的优点:
-
速度。用 VBA 在进程内运行,ActiveX 应用程序的速度比 AutoLISP 应用程序快。
-
易用。编程语言和开发环境易于使用并且与 AutoCAD 集成(在安装 AutoCAD 后)。
-
Windows 互操作性。ActiveX 和 VBA 是为与其他 Windows 应用程序一起使用而设计的,为应用程序之间的信息交流提供了绝佳的途径。
-
快速生成原型。VBA 的快速接口开发为原型应用程序提供了优良的环境,即使最终使用另一种语言开发那些应用程序。
-
程序员基础。程序员通常都知道 Visual Basic .NET (VB.NET)。VBA 类似于 VB.NET,并向这些程序员以及愿意学习除 AutoLISP 之外的编程语言的人员开放 AutoCAD 自定义和应用程序开发。