Los sistemas operativos de 64 bits pueden ejecutar aplicaciones de 32 y 64 bits, pero no pueden mezclar estos tipos en un proceso. Por ejemplo, no es posible cargar archivos DLL de 32 bits en un proceso de 64 bits ni viceversa. Todos los componentes ejecutables (archivos EXE y DLL) que se cargan en un proceso deben coincidir en el tipo binario del proceso. Los componentes en proceso de las aplicaciones de 64 bits deben cambiarse a procesos de 64 bits siempre que sea posible.
Puede producirse un error al intentar crear un objeto nuevo. El teclado New de VB intentará cargar los archivos DLL COM de AutoCAD de 64 bits. Puesto que VBA es una aplicación de 32 bits, no puede cargar archivos DLL de 64 bits. Por ejemplo, un código del tipo
Dim color As AcadAcCmColor
Set color = New AcadAcCmColor
or
Dim color As New AcadAcCmColor
color.SomeMethod()
necesita modificarse o cambiarse a
Dim color As AcadAcCmColor
Set color = AcadApplication.GetInterfaceObject(“Autocad.AcCmColor.17”).
El problema anterior debe solucionarse mediante AcadApplication.GetInterfaceObject(“ProgIdOfAcAnyObject”) para cualquier objeto derivado de IDispatch. No se espera que las clases derivadas de IUnknown (por ejemplo, AcSmSheetSet, AcSmSheetMgr, etc.) migren a VBA de 64 bits. Es recomendable cambiar estos procesos a VB .Net.