ngeqt521 发表于 2006-12-7 21:40:00

[求助]谁可以帮我把如下VBA代码转成VB代码

结贴,此贴在乐筑天下坛友的帮助下已完成代码转换,
THANKS!

kaixinmao 发表于 2006-12-20 09:41:00

怎么转化?
你需要在VB中加载Autocad VBA控件。
在autocad外部进行图形处理需要有对文档操作。
比如打开ACAD文件、打开处理后关闭。
假设你有程序打开了这个ACAD文件,定义DOCUMENT对象。
你需要在VB中重新定义窗体,以使其与VBA源文件代码一致。
这个程序其他就很简单了,把"ThisDrawing"改成你定义的那个ACAD 的DOCUMENT对象。
这个程序就移植的差不多了。
不过这个程序用VB的话还应该至少增加些容错能力的说。否则,出错几次可能就要重新启动了。

兰州人 发表于 2006-12-23 10:45:00

UserForm16.Hide 在VB中可以不用,采用透明窗口效果更好.
ThisDrawing.ModelSpace必须改
通用的VB起动Autocad程序
Public Sub AutoCADConnect()      '连接AutoCAD
On Error Resume Next
Set obj_Acad = GetObject(, "autocad.application")
If Err Then
   Err.Clear
   On Error Resume Next
   Set obj_Acad = CreateObject("autocad.application")
   If Err Then
      Err.Clear
      MsgBox "不能运行AutoCAD,请检查是否安装!", vbOKCancel, "警告!"
      Exit Sub
      End If
End If
obj_Acad.Visible = True
Set obj_Doc = obj_Acad.ActiveDocument
Set obj_ModelSpace = obj_Doc.ModelSpace
MsgBox "运行结束!", vbOKOnly, "工程1!"
boo = True
End Sub
因此,
ThisDrawing.ModelSpace改为obj_obj_ModelSpace.

ngeqt521 发表于 2006-12-23 14:11:00

没办法了,搞不定,附档为源码与窗口文件那位仁兄帮帮忙,给转下。

mccad 发表于 2006-12-23 14:31:00

克习惯把
Set obj_Doc = obj_Acad.ActiveDocument
改成
Set ThisDrawing = obj_Acad.ActiveDocument
呵呵,这样,VBA程序并不需要改多少东西。

ngeqt521 发表于 2006-12-23 15:02:00

那们大哥哥帮下忙呀!!!

mccad 发表于 2006-12-23 16:17:00

你需要看看,在窗体操作上,VBA和VB会有些不同。如控件的名称以及部分属性。这需要自己调试记录,然后更改。

ngeqt521 发表于 2006-12-23 16:31:00

还有没有高手支招呀!

兰州人 发表于 2006-12-24 18:20:00

试了一下你发的程序有如下两个问题
1 发帖子是VBA程序,控件比较多,无法调试
2 arj文件,没有关联vb起动autocad程序,无法运行
结论,没有运转正常的参照程序,无法调试,更谈不上改了
要求:你将能正常运转的VBA程序发到网上,试着给你改一下.工作量不是很大

ngeqt521 发表于 2006-12-25 16:47:00

附档就是了,兰大哥帮看下,在家里弄了几天在公司也弄了几天没有搞定,有点丢人呀!
页: [1]
查看完整版本: [求助]谁可以帮我把如下VBA代码转成VB代码