VBA中如何使用COM组件
<P>用vba如何才能使用com接口,使用那里面的属性</P><P>下面这个只能通过选择集调用,不知还有什么方式可以呢?请指教</P>
<P class=MsoNormal style="MARGIN: 0cm 0cm 0pt">Sub test()<?xml:namespace prefix = o ns = "urn:schemas-microsoft-com:office:office" /><o:p></o:p></P>
<P class=MsoNormal style="MARGIN: 0cm 0cm 0pt; TEXT-INDENT: 18pt">Dim sset As AcadSelectionSet<o:p></o:p></P>
<P class=MsoNormal style="MARGIN: 0cm 0cm 0pt; TEXT-INDENT: 18pt">Dim name As String<o:p></o:p></P>
<P class=MsoNormal style="MARGIN: 0cm 0cm 0pt; TEXT-INDENT: 18pt">name = <FONT face="Times New Roman">“</FONT>sset<FONT face="Times New Roman">”<o:p></o:p></FONT></P>
<P class=MsoNormal style="MARGIN: 0cm 0cm 0pt"> <o:p></o:p></P>
<P class=MsoNormal style="MARGIN: 0cm 0cm 0pt; TEXT-INDENT: 18pt">Set sset = ThisDrawing.SelectionSets.Add(name)<o:p></o:p></P>
<P class=MsoNormal style="MARGIN: 0cm 0cm 0pt">On Error GoTo ErrorHandler:<o:p></o:p></P>
<P class=MsoNormal style="MARGIN: 0cm 0cm 0pt; TEXT-INDENT: 18pt">sset.SelectOnScreen<o:p></o:p></P>
<P class=MsoNormal style="MARGIN: 0cm 0cm 0pt"> <o:p></o:p></P>
<P class=MsoNormal style="MARGIN: 0cm 0cm 0pt; TEXT-INDENT: 18pt">Dim ent As CEB_SpotObjectCOM<o:p></o:p></P>
<P class=MsoNormal style="MARGIN: 0cm 0cm 0pt; TEXT-INDENT: 18pt">For Each ent In sset<o:p></o:p></P>
<P class=MsoNormal style="MARGIN: 0cm 0cm 0pt"> With ent<o:p></o:p></P>
<P class=MsoNormal style="MARGIN: 0cm 0cm 0pt"> .Point.X = 100<o:p></o:p></P>
<P class=MsoNormal style="MARGIN: 0cm 0cm 0pt"> .Point.Y = 100<o:p></o:p></P>
<P class=MsoNormal style="MARGIN: 0cm 0cm 0pt"> End With<o:p></o:p></P>
<P class=MsoNormal style="MARGIN: 0cm 0cm 0pt"> ent.Update <o:p></o:p></P>
<P class=MsoNormal style="MARGIN: 0cm 0cm 0pt; TEXT-INDENT: 18pt">Next ent<o:p></o:p></P>
<P class=MsoNormal style="MARGIN: 0cm 0cm 0pt"> <o:p></o:p></P>
<P class=MsoNormal style="MARGIN: 0cm 0cm 0pt">ErrorHandler:<o:p></o:p></P>
<P class=MsoNormal style="MARGIN: 0cm 0cm 0pt; TEXT-INDENT: 18pt">sset.Delete<o:p></o:p></P>
<P class=MsoNormal style="MARGIN: 0cm 0cm 0pt; TEXT-INDENT: 18pt">Set sset = Nothing<o:p></o:p></P>
<P class=MsoNormal style="MARGIN: 0cm 0cm 0pt">End Sub<o:p></o:p></P> 置顶的两个类其实就是对COM接口的调用 <P>可是能不能不通过选择集直接调用呢,你看这样的问题在哪?</P>
<P>Dim X As New ceb_spotobjectcom</P>
<P>Sub TMPT()<BR>Dim a As acadline<BR>Dim b(2) As Double, c(2) As Double<BR>b(0) = 0: b(1) = 0: b(2) = 0<BR>c(0) = 100: c(1) = 100: c(2) = 0<BR>Set a = ThisDrawing.ModelSpace.AddLine(b, c)<BR>Set X.Object= a<BR>End Sub</P>
<P> </P>
页:
[1]