打开 EXCEL VBA 编辑,工具>>>>引用>>>>>把 autoCAD2025(我的是 2025)引用钩上点确定。然后就定义一些对象变量来连接 CAD 了具体的如下:Sub text() Dim acadApp As AcadApplication Dim acaddocs As AcadDocuments Dim acaddoc As AcadDocument On Error Resume Next Set acadApp = GetObject(, "AutoCAD.Application") If Err Then Err.Clear Set acadApp = CreateObject("AutoCAD.Application") If Err Then MsgBox Err.Description Exit Sub End If End If ‘上面的意思大概是假如没有创建连接就创建一个连接 _假如有一个连接就获得该连接 (PS:我也刚学 VBA 不是太清楚,有错误就原谅下,大家一起来学习!哈哈) Set acaddoc = acadApp.ActiveDocument acadApp.Visible = True 'CAD 可见,如没有这句 CAD 在后台运行,在进程中可以找到 acadApp.WindowState = acMax '最大化 要在 CAD 画图的话可以这样: Dim lineobj As AcadLine Set lineobj = acaddoc.ModelSpace.AddLine(Spoint, Epoint) 这是在模型空间中画一条直线,这跟 CAD 的 VBA 有一点不一样。以上可以满足楼主的要求吗?有了上面的连接,其他的就像在 CAD 中的 VBA 操作了,只是 thisdrawing 这里变成了 acaddoc 了,可以利用 acaddocs.open 来打开一个 CAD 文件。第一种方法: '创建图层 Dim layerObj1 As AcadLayer Dim layerObj2 As AcadLayer Dim layerObj3 As AcadLayer Set layerObj1 = acaddoc.Layers.Add("标注") '创建标注图层 "标注"为图层名 Set layerObj2 = acaddoc.Layers.Add("地面线") '同上 Set layerObj3 = acaddoc.Layers.Add("网格线") '同上 layerObj1.Color = acRed '设定颜色 layerObj2.Color = acBlue layerObj3.Color = acGreen layerObj1.Lineweight = acLnWt000 '设定线宽了 layerObj2.Lineweight = acLnWt005 layerObj3.Lineweight = acLnWt009 假设你画了一条直线,用楼上的方法是要定义一个叫 lineobj(举个例子)变量,这样只要lineobj 直线指定到不同的图层,如: lineobj.layer="标注" 这时这条线就有了图层上的所有属性了。 第二种方法就不要创建图层了(看个人爱好了)直接用: lineobj.Lineweight =acLnWt005 个人推举第一种方法,这样方便管理和修改,假如仅仅指定一两条线就有第二种吧!不知楼主想编一个什么程序,可以说说你的想法。这样可以提供比较好的建议。呵呵我也才学 CAD,如有错误还请指出啊!