用VBA怎么得到文字的一些属性
本帖最后由 作者 于 2007-4-10 14:08:05 编辑 <br /><br /> <p></p><p></p><p>在CAD图中有一些文字记录的是当前点的高程数字,我现在想提取所有的这些文字对象的信息保存到EXCEL中,请问怎样才能得到这些文字对象,然后怎样根据文字对象得到文字对象的属性(坐标X,Y,和文字内容),谢谢大家了!</p> Sub test()<br/> Dim selSet As AcadSelectionSet<br/> Dim txtObj As AcadText<br/> Dim entObj As AcadEntity<br/> Dim i As Integer<br/> Dim fType(0 To 0) As Integer<br/> Dim fData(0 To 0) As Variant<br/> Dim j As Integer<br/> <br/> For i = ThisDrawing.SelectionSets.Count - 1 To 0 Step -1<br/> If ThisDrawing.SelectionSets.Item(i).Name = "SS1" Then<br/> ThisDrawing.SelectionSets.Item(i).Delete<br/> Exit For<br/> End If<br/> Next i<br/> <br/> Dim xlApp As New Excel.Application<br/> Dim xlBook As New Excel.Workbook<br/> Dim xlSheet As New Excel.Worksheet<br/> <br/> fType(0) = 0: fData(0) = "TEXT"<br/> Set selSet = ThisDrawing.SelectionSets.Add("SS1")<br/> selSet.Select acSelectionSetAll, , , fType, fData<br/> <br/> Set xlBook = xlApp.Workbooks.Add()<br/> Set xlSheet = xlBook.ActiveSheet<br/> xlSheet.Cells(1, 1) = "X"<br/> xlSheet.Cells(1, 2) = "Y"<br/> xlSheet.Cells(1, 3) = "Z"<br/> j = 2<br/> For Each entObj In selSet<br/> Set txtObj = entObj<br/> xlSheet.Cells(j, 3) = txtObj.TextString '高程<br/> xlSheet.Cells(j, 1) = txtObj.InsertionPoint(1) 'X坐标<br/> xlSheet.Cells(j, 2) = txtObj.InsertionPoint(0) 'Y坐标<br/> j = j + 1<br/> Next entObj<br/> xlBook.SaveAs "C:\xyz.xls"<br/> xlBook.Close<br/> Set xlBook = Nothing<br/> xlApp.Quit<br/> Set xlApp = Nothing<br/>End Sub <p>真的非常感谢你,非常好使!呵呵,送个鲜花。</p><p>其实小弟是这样个意思,我的这个图中有好多点,这个点的高程信息是写在他旁边的文字中的,有没有办法,把点旁边的文字内容读出来写到那个点的Z属性中啊?</p><p>我看了下,一般的点和标注文字的位置关系是定的。是不是在这个点周围一定范围中搜索文字,然后读取值写到这个点的Z属性中呢!</p><p></p> 做个标记,以待学习 学习了 不就是cass7.0中的格式? 学习学习 学习了!!! 学习了,谢谢yulijin608
页:
[1]