遍历集合对象

AutoCAD ActiveX/VBA

 
遍历集合对象
 
 
 

要选择集合对象的特定成员,请使用 Item 方法。Item 方法需要一个标识符,该标识符既可以是指定集合内项目位置的索引号,也可以是代表项目名称的字符串。

Item 方法是集合的默认方法。如果引用集合时未指定方法名称,将使用 Item 方法。以下语句作用相同:

ThisDrawing.Layers.Item("ABC")
ThisDrawing.Layers("ABC")
注意请勿在使用 For Each 机制遍历集合的同时对任意对象使用图元编辑方法(例如复制、阵列、镜像等)。请在遍历完成后再尝试编辑集合中的对象,或者创建临时数组并将其设置为等于该集合,然后遍历复制的数组并执行所需的编辑操作。

遍历 Layers 集合

本例遍历集合,并显示集合中所有图层的名称:

Sub Ch2_IterateLayer()
    ' 遍历集合
    On Error Resume Next
      
    Dim I As Integer
    Dim msg As String
    msg = ""
    For I = 0 To ThisDrawing.Layers.count - 1
        msg = msg + ThisDrawing.Layers.Item(I).Name + vbCrLf
    Next
    MsgBox msg
End Sub

查找名为 MyLayer 的图层

本例引用名为 MyLayer 的图层,如果图层不存在,则发出消息:

Sub Ch2_FindLayer()
    ' 使用 Item 方法查找名为 MyLayer 的图层
    On Error Resume Next
      
    Dim ABCLayer As AcadLayer
    Set ABCLayer = ThisDrawing.Layers("MyLayer")
    If Err <> 0 Then
        MsgBox "The layer 'MyLayer' does not exist."
    End If
End Sub