下面的代码你可以参考一下:
Dim DOC1 As AcadDocument 'the source dwg file
Dim xdataOut As Variant 'extends data of a pviewport Dim xtypeOut As Variant 'extends data type
DOC1.MSpace = True
DOC1.ActivePViewport.GetXData "", xtypeOut, xdataOut 'get extends data
h = xdataOut(7)'高度,至于范围的宽度你可以根据视口宽度和缩放比例计算出来
If IsV04 Then'pntc就是范围的中心点坐标,isv04是我自定义的布尔类型的变量 根据我的测试,中心点在04版本和04以前的版本中,它在扩展数据中的保存位置不一样
pntc(0) = xdataOut(8): pntc(1) = xdataOut(9): pntc(2) = 0 'used in 2004 version Else pntc(0) = xdataOut(4)(0): pntc(1) = xdataOut(4)(1): pntc(2) = 0 'used in the early version End If
这个方法是我自己摸索出来的,希望对你有所帮助,但我不确定是否有更好的办法。