Objeto de coleção

Um objeto Collection é um conjunto ordenado de itens que pode ser chamado de unidade.

Comentários

O objeto Collection fornece uma maneira conveniente de se referir a um grupo relacionado de itens como um único objeto. Os itens, ou membros, em uma coleção só precisam ser relacionados pelo fato de que eles existem na coleção. Os membros de uma coleção não precisam compartilhar o mesmo tipo de dados. Toda a coleção pode ser iterada usando o For Each... Próxima instrução.

Uma coleção pode ser criada da mesma maneira que outros objetos são criados. Por exemplo:

Dim X As New Collection

Métodos

Método Descrição
Add Adiciona um membro a um objeto Collection .
Item Retorna um membro específico de um objeto Collection por posição ou por chave.
Remove Remove um membro de um objeto Collection .

Propriedades

Propriedade Descrição
Count Retorna o número de membros em um objeto Collection .

Exemplo

Este exemplo cria um objeto Collection (MyClasses) e, em seguida, cria uma caixa de diálogo na qual os usuários podem adicionar objetos à coleção.

Para ver como isso funciona, escolha o comando Class Module no menu Insert e declare uma variável pública chamada InstanceName no nível do módulo de Class1 (tipo PublicInstanceName) para conter os nomes de cada instância. Deixe o nome padrão como Class1. Copie e cole o código a seguir na seção Geral de outro módulo e, em seguida, inicie-o com a instrução ClassNamer em outro procedimento.

(Este exemplo só funciona com aplicativos host que dão suporte a classes.)

Sub ClassNamer()
    Dim MyClasses As New Collection    ' Create a Collection object.
    Dim Num    ' Counter for individualizing keys.
    Dim Msg As String    ' Variable to hold prompt string.
    Dim TheName, MyObject, NameList    ' Variants to hold information.
    Do
        Dim Inst As New Class1    ' Create a new instance of Class1.
        Num = Num + 1    ' Increment Num, then get a name.
        Msg = "Please enter a name for this object." & vbNewLine _
         & "Press Cancel to see names in collection."
        TheName = InputBox(Msg, "Name the Collection Items")
        Inst.InstanceName = TheName    ' Put name in object instance.
        ' If user entered name, add it to the collection.
        If Inst.InstanceName <> "" Then
            ' Add the named object to the collection.
            MyClasses.Add item := Inst, key := CStr(Num)
        End If
        ' Clear the current reference in preparation for next one.
        Set Inst = Nothing
    Loop Until TheName = ""
    For Each MyObject In MyClasses    ' Create list of names.
        NameList = NameList & MyObject.InstanceName & vbNewLine
    Next MyObject
    ' Display the list of names in a message box.
    MsgBox NameList, , "Instance Names In MyClasses Collection"

    For Num = 1 To MyClasses.Count    ' Remove name from the collection.
        MyClasses.Remove 1    ' Since collections are reindexed automatically, remove the first member on each iteration.
    Next
End Sub

Confira também

Suporte e comentários

Tem dúvidas ou quer enviar comentários sobre o VBA para Office ou sobre esta documentação? Confira Suporte e comentários sobre o VBA para Office a fim de obter orientação sobre as maneiras pelas quais você pode receber suporte e fornecer comentários.