Iteración en un objeto de colección

AutoCAD ActiveX

 
Iteración en un objeto de colección
 
 
 

Utilice el método Item para seleccionar un miembro concreto de un objeto de colección. Dicho método requiere un identificador como número de índice que especifique la ubicación del elemento en la colección o bien como una cadena que represente al nombre del elemento.

Item es el método predeterminado por defecto para las colecciones: cuando el usuario no indica un nombre de método al mencionar una colección, se utiliza el método Item. Las siguientes instrucciones son equivalentes:

ThisDrawing.Layers.Item("ABC")
ThisDrawing.Layers("ABC")
NotaNo utilice los métodos de edición de la entidad (Copy, Array, Mirror, etc.) en un objeto a la vez que itera en una colección empleando el mecanismo For Each. Termine la iteración antes de intentar editar un objeto de la colección o bien cree una matriz temporal y defínala como igual a la colección. A continuación puede iterar en la matriz copiada y efectuar cambios.

Iterar en la colección de capas

El ejemplo siguiente efectúa iteraciones en una colección y presenta los nombres de todas las capas de la colección:

Sub Ch2_IterateLayer()
    ' Iterate through the collection
    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

Búsqueda de la capa "MiCapa"

El siguiente ejemplo se refiere a una capa denominada "MiCapa" y presenta un mensaje si la capa no existe:

Sub Ch2_FindLayer()
    ' Use the Item method to find a layer named "MiCapa"
    On Error Resume Next
      
    Dim ABCLayer As AcadLayer
    Set ABCLayer = ThisDrawing.Layers("MiCapa")
    If Err <> 0 Then
        MsgBox "The layer 'MiCapa' does not exist."
    End If
End Sub