Compartilhar via


Objeto de coleção

Um objeto Coleção é um conjunto ordenado de itens que podem ser referidos como uma unidade.

Comentários

O objeto Coleção fornece uma forma conveniente de fazer referência a um grupo de itens relacionado como um único objeto. Os itens, ou membros, numa coleção só precisam de estar relacionados com o facto de existirem na coleção. Os membros de uma coleção não têm de partilhar o mesmo tipo de dados.

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

Dim X As New Collection

Após a criação de uma coleção, os membros podem ser adicionados através do método Adicionar e removidos com o método Remove . Os membros específicos podem ser devolvidos a partir da coleção através do método Item , enquanto toda a coleção pode ser iterada através da opção Para Cada... Instrução seguinte .

Exemplo

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

Para ver como isto funciona, selecione o comando Módulo de Classe no menu Inserir e declare uma variável pública chamada InstanceName ao nível do módulo classe1 (tipo PúblicoInstanceName) para conter os nomes de cada instância. Deixe o nome predefinido como Classe1. Copie e cole o seguinte código na secção Geral de outro módulo e, em seguida, inicie-o com a instrução ClassNamer noutro procedimento.

(Este exemplo só funciona com aplicações anfitriãs que suportam 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.