y1982_0 发表于 2005-7-20 14:36:00

如何把vba程序换成vb程序?复杂吗?

<P>现在做好一个vba程序,但是要求换成vb,里面有5个公共模块,和3个类模块,一个窗体,容易实现吗?没弄过,高手帮忙 </P>

y1982_0 发表于 2005-7-20 15:28:00

<P>找到一些介绍文档,在vb的project/reference选择autocad release 15,我的cad是2002,没找到上述内容,只好选择autocad2002类型库,然后在vb窗体下设了个按钮,添加如下代码,可是cad怎么不画图呢?大家给看看:</P>
<P>Private Sub Command1_Click()</P>
<P>On Error Resume Next</P>
<P>Dim acadApp As AcadApplication</P>
<P>Set acadApp = GetObject(, "AutoCAD.Application")<BR>If Err Then<BR>&nbsp;&nbsp;&nbsp; Err.Clear<BR>&nbsp;&nbsp;&nbsp; Set acadApp = CreateObject("AutoCAD.Application")<BR>&nbsp;&nbsp;&nbsp; If Err Then<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; MsgBox Err.Description<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; Exit Sub<BR>&nbsp;&nbsp;&nbsp; End If<BR>End If<BR>MsgBox "Now running" + acadApp.Name + "vertion" + acadApp.Version</P>
<P>Dim acadDoc As AcadDocument<BR>Set acadDoc = acadApp.ActiveDocument</P>
<P>Dim lineObj As AcadLine<BR>Dim p1(2) As Double<BR>Dim p2(2) As Double<BR>p1(0) = 1: p1(1) = 2: p1(2) = 5<BR>p2(0) = 100: p2(1) = 200: p2(2) = 0<BR>Set lineObj = acadDoc.ModelSpace.AddLine(p1, p2)<BR>ZoomAll</P>
<P>End Sub<BR></P>

mikewolf2k 发表于 2005-7-20 19:48:00

不复杂,我就是在vba下编程调试好再转到vb下编译的。只要将document等关键字修改一下就可以了。

zhu1 发表于 2005-7-20 22:09:00

<P>如果有VB基础就不难</P>

y1982_0 发表于 2005-7-21 08:33:00

<P>谢谢两位!二楼兄台,可否把你的步骤说一下,实在是着急啊,这个周末之前必须弄出来啊,谢谢,不胜感激</P>

wyj7485 发表于 2005-7-21 08:49:00

上面代码没问题啊,我刚试过,完全可以画图!

y1982_0 发表于 2005-7-21 10:00:00

<P>问题来了,上面的代码确实对,但是必须先打开autocad2002,才可画图,如果没有开cad直接运行VB程序,程序将打开一个acad.exe,进程ID号为1092,但是这样根本打不开cad2002,我的CAD进程ID为1904,而且一点错误提示都没有,只能在任务管理器进程中看到那个1092</P>

y1982_0 发表于 2005-7-21 15:25:00

<P>谁有用VB写的程序,我参考一下,最好是有多个公共模块和类模块,现在我的程序已经很庞大,从Vba到VB实在不好改,参考一下你们怎么写的!</P>

y1982_0 发表于 2005-7-21 15:54:00

<P>我的邮箱<A href="mailto:y1982_0@hotmail.com" target="_blank" >y1982_0@126.com&nbsp; 或y1982_0@hotmail.com</A>,谢谢高手帮忙,感激不尽</P>
<P>&nbsp;</P>

my_computer 发表于 2005-7-22 10:32:00

<P>其实VBA转VB并不复杂,将相应的模块等导出,到VB中在导入.设定相应的函数引用,就可以了,具体你可以参考"<A href="http://www.mjtd.com/bbs/dispuser.asp?name=efan2000" target="_blank" ><FONT color=#000000>efan2000</FONT></A>"的文章,我就是和他学的.</P>
<P>另外,在此还是想和各位高手谈谈,如何能获得当前激活的ACAD.</P>
<P>因为如果启动了多个acad程序,上面的代码仅能获得第一个acad程序.如果我需要的不是第一个acad怎么办?</P>
<P>&nbsp;</P>
页: [1] 2
查看完整版本: 如何把vba程序换成vb程序?复杂吗?