You may have heard about this topic from other sources but I thought it was worth discussing here in a bit more detail.
Autodesk has begun the transition from VBA (Visual Basic for Applications) to VB .NET technology. VBA has not seen significant improvements from Microsoft in years and they still offer no 64-bit version of VBA. In July of 2007, Microsoft stopped offering VBA distribution licenses to new customers. They are investing their resources in Visual Studio® Tools for Applications (VSTA) and are recommending that people move away from VBA for new application development.
For now, VBA is still supported in Autodesk products however, starting with the 2010 product releases, VBA is no longer part of the default installation. This applies to all products except Inventor 2010 and Civil 3D 2010; these products relied too heavily on VBA for core functionality to remove it from the installer. For all other products, VBA must be downloaded and installed separately. If you use VBA macros in your work environment, they will no longer work unless the VBA modules have been installed on your system.
Installation
When you run a command that requires VBA, a message dialog box will direct you to this location on our web site where you can download the VBA Enabler. The installer is English-only however the VBA components posted at this link will be available for all languages that AutoCAD and industry-specific versions of AutoCAD support. After the VBA Enabler has been downloaded and extracted, it should automatically launch the installer. If not, you can launch it manually by running the setup.exe command from the extraction folder.
If you plan to install multiple 2010 products on your computer, the VBA Enabler should be installed last so that it gets installed on all supported products. For example: if AutoCAD and AutoCAD Map 3D were installed prior to installing the VBA Enabler, then VBA will install into both products and both will have VBA enabled. On the other hand, if you installed the VBA Enabler prior to installing AutoCAD Map 3D, you would need to uninstall the VBA Enabler, install AutoCAD Map 3D, and then install VBA enabler again to ensure it is available in both AutoCAD and AutoCAD Map 3D.
Deployment
To deploy the VBA download in an enterprise environment, you must download and extract the VBA Enabler and then run the following script (after substituting your source path to the VBA Enabler folder):
'
' Scripted installation for VBA Enabler
option explicit
' define variables
dim shell
dim productType
dim strInstallLevel
dim strSourcePath
' Script initialization
Set shell = CreateObject("WScript.Shell")
productType = "BonusPack"
strInstallLevel=5 ' 5 installs everything, 3 installs typical
'
' Source to install from (e.g. Z:\install\Autodesk\ AcVbaInstallerInstall \CDROM1)
strSourcePath = "C:\Autodesk\AutoCAD_2010_VBA_Enabler_Install_Image\CDROM1"
'
RunStandaloneInstall()
Wscript.quit()
'
Function RunStandaloneInstall
shell.run DefaultCommand(),2,1
end function
'
Function DefaultCommand
dim retString
' /q for silent install ' /c [key] override parameters for the key
retString = """" & strSourcePath & "\setup.exe " & """" & " /t /q /c " & productType & ": "
retString = retString & "InstallLevel=" & strInstallLevel
DefaultCommand = retString
end function
'
' ----------------------------------------------------------------
Looking Ahead
Autodesk is currently evaluating how long VBA will be supported in Autodesk products in the future. Though supported in the AutoCAD 2010-based products, it may or may not be supported in future releases.
Despite the fact that Microsoft does not provide or support 64-bit VBA, Autodesk included a way to run VBA in AutoCAD x64. This was done purely as a convenience to customers who needed it but was an imperfect solution because it must run out-of-proc and those interprocess communications cause it to run slower than it would in AutoCAD x86. This was an interim measure to provide some VBA functionality in AutoCAD x64 but Autodesk has no plans for further development or fixes in this area.
We are strongly recommending that VB developers migrate to using VB .NET. Kean Walmsley posted a very nice presentation called DevTV: AutoCAD VBA to .NET Migration Basics. For more information on this topic, you can also refer to our Microsoft Visual Basic for Applications Module FAQ.
Comments