jiangzl 发表于 2005-11-12 18:52:00

[求助]VBA在CAD中写入文字的程序修改

<P>请各位帮忙看看下面这段简单代码,为什么运行不了啊?运行时说是:当前CAD窗口未显示</P>
<P><BR>Private Sub cmdadd_Click()<BR>For n = 0 To (List1.ListCount - 1)<BR>If List1.Selected(n) = True Then<BR>Text1.Text = Text1.Text &amp; vbCrLf &amp; List1.List(n)<BR>End If<BR>Next<BR>End Sub</P>
<P>Private Sub cmdclose_Click()<BR>Unload Me<BR>End Sub</P>
<P>Private Sub Cmdopen_Click()<BR>List1.Clear<BR>CommonDialog1.FONTNAME = ""<BR>CommonDialog1.Flags = 512<BR>CommonDialog1.InitDir = "C:\字库文件"<BR>CommonDialog1.Filter = "Text(*.Txt)|*.txt"<BR>CommonDialog1.ShowOpen<BR>If CommonDialog1.FileName &gt; "" Then<BR>Open CommonDialog1.FileName For Input As #1<BR>Do While Not EOF(1)<BR>Line Input #1, Mydata<BR>List1.AddItem Mydata<BR>Loop<BR>Close #1<BR>End If<BR>End Sub</P>
<P>(出差就在下面这段里)<BR>Private Sub cmdwrite_Click()<BR>Dim WordObj As AcadMText<BR>Dim startPnt As Variant<BR>Dim EndPnt As Variant<BR>startPnt = ThisDrawing.Utility.GetPoint(, vbCrLf &amp; "输入起点:")<BR>EndPnt = ThisDrawing.Utility.GetPoint(startPnt, vbCrLf &amp; "输入止点:")<BR>Set WordObj = ThisDrawing.ModelSpace.AddMText(startPnt, EndPnt, Text1.Text)<BR>ThisDrawing.Application.ZoomAll<BR>End Sub</P>
<P>多谢,多谢...</P>

mikewolf2k 发表于 2005-11-12 23:43:00

<P>startPnt = ThisDrawing.Utility.GetPoint(, vbCrLf &amp; "输入起点:")<BR>前面加一句:</P>
<P>activedocument.show</P>

jiangzl 发表于 2005-11-13 12:58:00

<P>谢谢mikewolf2k的回答,但还是不行啊,我试了一下,你加的这段处显时:对象不支持该属性或方法.小弟是菜鸟,请各位帮忙再看看...</P>
<P><BR>Private Sub cmdadd_Click()<BR>For n = 0 To (List1.ListCount - 1)<BR>If List1.Selected(n) = True Then<BR>Text1.Text = Text1.Text &amp; vbCrLf &amp; List1.List(n)<BR>End If<BR>Next<BR>End Sub</P>
<P>Private Sub cmdclose_Click()<BR>Unload Me<BR>End Sub</P>
<P>Private Sub Cmdopen_Click()<BR>List1.Clear<BR>CommonDialog1.FONTNAME = ""<BR>CommonDialog1.Flags = 512<BR>CommonDialog1.InitDir = "C:\字库文件"<BR>CommonDialog1.Filter = "Text(*.Txt)|*.txt"<BR>CommonDialog1.ShowOpen<BR>If CommonDialog1.FileName &gt; "" Then<BR>Open CommonDialog1.FileName For Input As #1<BR>Do While Not EOF(1)<BR>Line Input #1, Mydata<BR>List1.AddItem Mydata<BR>Loop<BR>Close #1<BR>End If<BR>End Sub<BR>Private Sub cmdwrite_Click()<BR>Dim WordObj As AcadMText<BR>Dim startPnt As Variant<BR>Dim EndPnt As Variant<BR>ActiveDocument.Show<BR>startPnt = ThisDrawing.Utility.GetPoint(, vbCrLf &amp; "输入起点:")<BR>EndPnt = ThisDrawing.Utility.GetPoint(startPnt, vbCrLf &amp; "输入止点:")<BR>Set WordObj = ThisDrawing.ModelSpace.AddMText(startPnt, EndPnt, Text1.Text)<BR>ThisDrawing.Application.ZoomAll<BR>End Sub</P>
<P>&nbsp;</P>

雪山飞狐_lzh 发表于 2005-11-13 13:24:00

<P>前面加</P>
<P>me.hide</P>
<P>后面加</P>
<P>me.show</P>

jiangzl 发表于 2005-11-14 22:17:00

<P>谢谢两位的指导,但小弟我确实太菜了,做了还是不理想,我将其发上来,大家看看,有空的朋友,帮我再修一下.主要存在下面问题:</P>
<P>1\点"写入"按键时,应该将窗体隐藏,到CAD窗口中去获插入点及宽度,当获取到数据后自动将TEXT1.TXET写入CAD界面,然后再回到窗体上,再次显示对话框.我不知道如何隐藏对话框,和再次让它出现.</P>
<P>2\运行时,当对话框加载时,自动获得"C:/ZK/121.txt"文件,并将文件内容付给List1.list.</P>
<P>再次请求各位帮忙修改一下....谢谢!</P>

bland 发表于 2005-11-15 21:57:00

Private Sub cmdwrite_Click()<BR>'Me.Show<BR>Dim WordObj As AcadMText<BR>Dim startPnt As Variant<BR>Dim EndPnt As Variant<BR>Me.Hide<BR>startPnt = ThisDrawing.Utility.GetPoint(, vbCrLf &amp; "输入起点:")<BR>EndPnt = ThisDrawing.Utility.GetDistance(startPnt, vbCrLf &amp; "输入文字宽度:")<BR>Set WordObj = ThisDrawing.ModelSpace.AddMText(startPnt, EndPnt, Text1.Text)<BR>ThisDrawing.Application.ZoomAll<BR>&nbsp;Me.Show<BR>End Sub<BR>

jiangzl 发表于 2005-11-17 10:46:00

谢谢,成功了!非常感谢谢各位的帮助...

ZOYSIA 发表于 2005-11-17 14:28:00

<P>jiangzl能否把你的完整程序给我一份,我也正需要这样一个功能,但是我不会写程序。谢谢了。</P>

jiangzl 发表于 2005-11-23 15:34:00

<P>好的,发给大家看看吧...注意,有一个密码,为750523.多谢各位的帮忙!</P>
<P>解压后,请解"字库文件"文件夹解压到C:下面,加载后在宏里面运行即可.</P>
页: [1]
查看完整版本: [求助]VBA在CAD中写入文字的程序修改