Advantages of Using VBA with AutoCAD (Developing a Simple VBA Application)

In this topic, you will learn how to create a simple VBA application through a series of tutorials. You will learn how to employ visual tools to create the graphical user interface, and write code to execute simple commands. You will also explore the basics of the Visual Basic environment by using its features to create practical code that you can reuse for repetitive tasks.

If you consider yourself an intermediate user of AutoCAD VBA and have already written some successful VBA code, you may want to skip this topic—or even just skim over the entire Part I, depending on your experience.

Visual Basic for Applications ( VBA) is a programming environment created by Microsoft that is built into applications to automate operations. It provides tools that you can drag and drop to build a graphical user interface (GUI), and a programming language that you can use to interact with AutoCAD objects. Using VBA with AutoCAD allows you to customize your AutoCAD application in seemingly unlimited ways. In this topic, you’ll see how simple it is to automate repetitive tasks. With the time saved, you’ll be free to concentrate on applying your artistic talents and engineering skills to make your drawings more intricate.

Once you start writing VBA code, you’ll quickly realize just how easy it is to access objects from the AutoCAD and VBA object libraries. You’ll soon be able to call on the power of these objects while gaining a deeper insight into AutoCAD’s features. As you start to see the benefits that VBA macros and applications can provide, you’ll want to spend your extra time customizing even more tasks. Before you know it, you’ll have a whole library of reusable macros and applications at your fingertips!


A macro is a group of code statements, usually not very long or complicated, that is useful in automating a repetitive task. In your work at the computer, most likely you’ve used them already without realizing it. An application is a program that has been created to perform a specific task. This can be something very simple, such as prompting the user for their name and password, or something very substantial and complex such as AutoCAD itself.

Another not-so-obvious advantage of learning AutoCAD VBA is that your skills are transferable to a growing number of other applications that have VBA capability. These applications include all those in the Microsoft Office family of applications, such as Access, Word, and Excel, in addition to Microsoft Visual Basic itself and about two hundred other licensees.

VBA interfaces with applications by communicating and controlling objects through the application’s object libraries, rather than by having any special connection to the application’s inner workings. All you need to know are the names of the objects involved, and you can access their functionality with VBA code. As you enter the names of objects in your code, the editing features of VBA’s Integrated Development Environment (IDE) offer you drop-down lists of elements particular to the type of object you’ve entered.

You can use a macro to automate just about anything, but it is probably most productive to start with the tasks you have to do time and time again. Why not think about those boring, uninspiring jobs you hate doing the most, and start with them! These are probably tasks that are time consuming and error prone, so implementing them in macros or applications will not only increase your productivity but lift your spirits by removing some of the tedious tasks that make you yawn just by thinking about them. (Such as adding all the required bits and pieces of information for starting a new drawing; or perhaps you’ve found that you regularly draw the same items over and over again.)

After you’ve successfully developed VBA code that works in the ways you want it to, it’s guaranteed to perform correctly and reliably each time you run it. Now there’s an incentive to learn VBA! So let’s begin by examining the interface where you will write your code—the Visual Basic Editor.

Next post:

Previous post: