Sub DrawCircleInModelSpace() Dim acadApp As Object Dim acadDoc As Object Dim centerPoint(2) As Double Dim radius As DoubleSet acadApp = GetObject(, "AutoCAD.Application") Set acadDoc = acadApp.ActiveDocument centerPoint(0) = 0#: centerPoint(1) = 0#: centerPoint(2) = 0# radius = 5# acadDoc.ModelSpace.AddCircle centerPoint, radius acadDoc.Regen (True)
End Sub
This works identically in 32-bit and 64-bit AutoCAD 2015 because it uses AutoCAD’s object model, not Windows API.
Visual Basic for Applications (VBA) served as the primary customization and automation language for AutoCAD for nearly two decades. However, Microsoft ceased further development of VBA around 2007, leading Autodesk to transition towards .NET API and Microsoft Visual Studio as the primary development platform. autocad 2015 vba module 64-bit
Despite this shift, a vast library of legacy VBA macros remains in use across the AEC (Architecture, Engineering, and Construction) and manufacturing industries. To support this legacy ecosystem while adhering to modern 64-bit security and memory standards, Autodesk releases the VBA Enabler (or Module) as a separate download. For AutoCAD 2015 running on 64-bit operating systems, this module is not merely an add-on but a compatibility bridge requiring specific architectural considerations.
| Legacy 32-bit | 64-bit Replacement |
| :--- | :--- |
| Declare Function FindWindow | Add PtrSafe, change Long to LongPtr |
| Declare Sub CopyMemory (RtlMoveMemory) | Use LongPtr for source/dest pointers |
| Declare Function SendMessage | wParam and lParam become LongPtr |
Warning: If you do not use any Windows API calls and only use the AutoCAD Object Model (e.g., ThisDrawing.ModelSpace), you likely do not need to change your code at all—provided you recompile it. End Sub
| Issue | Solution |
|-------|----------|
| "VBA module not installed" even after running installer | Re-run installer as Administrator. Check that antivirus didn't block DLL registration. |
| "Compile error: The code in this project must be updated for use on 64-bit systems" | Add PtrSafe to all API Declares and replace Long handles with LongPtr. |
| VBAIDE opens but macros crash | Ensure no 32-bit OCX references are in the project. Recompile the VBA project. |
As of today, AutoCAD 2015 is long out of mainstream support (support ended in 2018). However, many manufacturing, engineering, and architecture firms still run it due to certified hardware or legacy vertical products (e.g., Civil 3D 2015, AutoCAD Electrical 2015).
The AutoCAD 2015 VBA Module 64-bit is a bridge—a way to keep legacy automation alive on modern Windows 10/11 64-bit systems. It works reliably once you update your Declare statements and purge 32-bit dependencies. This works identically in 32-bit and 64-bit AutoCAD
The AutoCAD 2015 VBA module is a separate downloadable installer (since AutoCAD 2010, VBA is no longer included by default) that enables support for VBA macros in the 64-bit version of AutoCAD 2015. It allows automation of repetitive tasks, customization, and integration with other Office applications.
| Technology | Language | 64-bit Support | Learning Curve |
| :--- | :--- | :--- | :--- |
| AutoLISP | Lisp | Native (via VLX) | Moderate |
| Visual LISP | Lisp | Native | Moderate |
| .NET (C#/VB.NET) | C#, VB | Full, using AcMgd.dll | Steep |
| ObjectARX | C++ | Full, max performance | Very Steep |
| ScriptPro | Script | Limited | Low |
For most users migrating from 32-bit VBA, AutoLISP is the path of least resistance. You can call AutoLISP functions from VBA using ThisDrawing.SendCommand as a bridge, then gradually rewrite routines.