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
- Propriedade Count
- Objetos (Visual Basic for Applications)
- Referência de biblioteca de objetos do Office (membros, propriedades, métodos)
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.