![](https://img.51dongshi.com/20250108/wz/18368677352.jpg)
操作步驟:一、創建一個ACTIVEX DLL項目cadPro。二、添加一個模塊,命名為ModCad。代碼如下:```vbPublic acadApp As ObjectPublic acadDoc As Object ' 這里建立一個新模塊主要是為了以后在多個窗體、類或者多個工程中調用```三、添加一個類ClsTest,代碼如下:```vbPublic Function MenuMain(MenuIndex As Integer)' 下面的判斷在VB中測試時可以用到,在生成DLL后VBA調用時可注釋If ModCad.acadApp Is Nothing Or ModCad.acadDoc Is Nothing ThenConnectToAcad()End IfSelect Case MenuIndexCase 1AutoCADTest()Case 2' 添加其他選項End SelectEnd FunctionPublic Function ConnectToAcad()On Error Resume NextSet ModCad.acadApp = GetObject(, "AutoCAD.Application.16.2") ' 16.2是CAD的版本If Err ThenErr.ClearSet ModCad.acadApp = CreateObject("AutoCAD.Application.16.2")End IfIf Err ThenErr.ClearSet ModCad.acadApp = GetObject(, "AutoCAD.Application")End IfIf Err ThenErr.ClearSet ModCad.acadApp = CreateObject("AutoCAD.Application")End IfIf Err ThenUnload MeEnd IfModCad.acadApp.Visible = TrueSet ModCad.acadDoc = ModCad.acadApp.ActiveDocumentEnd FunctionPublic Function setApps(acadObj As AcadApplication)Set ModCad.acadApp = acadObjSet ModCad.acadDoc = acadApp.ActiveDocumentEnd Function' VB中要在CAD中實現的功能Private Function AutoCADTest()Dim cadLine As AcadLineDim cadPoint As VariantcadPoint = ModCad.acadDoc.Utility.GetPoint(, "請選取一個插入點:")ModCad.acadDoc.ModelSpace.AddCircle(cadPoint, 5)End Function```四、如果要在VB中調試,添加一個EXE工程,引用ACTIVEX工程,并添加一個窗體。在窗體上添加一個按鈕,代碼如下:```vbPrivate Sub Command1_Click()Dim Rec As New cadPro.MenuMainRec.MenuMain(1)End Sub```五、生成DLL文件,并在VBA中調用。在“工具”->“設定引用”項目中加入生成的DLL。代碼如下:```vbOption ExplicitPrivate clsGre As New cadPro.ClsTestPublic Sub cadtest()On Error Resume NextclsGre.setApp(ThisDrawing.Application)clsGre.MenuMain(1)End Sub```按照以上步驟,就可以實現VB與AutoCAD的連接。以上程序在本機測試通過。操作系統:Windows XP SP2AutoCAD版本:AutoCAD 2006