'********************************************************************************************************** ' Nazwa: polaczKolekcje ' Autor: mielk | 2012-03-12 ' ' Opis: Funkcja łączy do 30 kolekcji w jedną większą kolekcję. ' ' Argumenty: ' kolekcje() Kolekcje, które mają zostać połączone w większą kolekcję. ' Jest to parametr typu ParamArray, a więc możliwe jest podanie dowolnej liczby ' kolekcji wejściowych (maksymalnie 30). ' Wszystkie parametry wejściowe nie będące kolekcjami są ignorowane. ' ' Zawiera: ' Collection Kolekcja zawierająca wszystkie elementy z podanych tablic wejściowych. ' ' Elementy w kolekcji wynikowej mogą się duplikować. ' ' Elementy dodawane są w do kolekcji bez klucza, nawet jeżeli w kolekcji źródłowej ' podane były z kluczem. ' ' ' --- Changes log ----------------------------------------------------------------------------------------- ' 2013-04-26 mielk Utworzenie funkcji. '********************************************************************************************************** Public Function polaczKolekcje(ParamArray kolekcje() As Variant) As VBA.Collection Const NAZWA_METODY As String = "polaczKolekcje" '------------------------------------------------------------------------------------------------------ Dim kolekcja As Variant Dim element As Variant '------------------------------------------------------------------------------------------------------ 'Zainicjuj kolekcję wynikową. Set polaczKolekcje = New VBA.Collection 'Przejdź przez wszystkie kolekcje źródłowe. ---------------------------------------------------------| For Each kolekcja In kolekcje '| '| 'Check if an element currently processed in this loop is a collection. ----------------------| '| If TypeOf kolekcja Is Collection Then '| '| '| '| 'If [kolekcja] is a collection, iterate through all its -----------------------------| '| '| 'elements and add them to the result Collection [polaczKolekcje]. '| '| '| For Each element In kolekcja '| '| '| Call polaczKolekcje.add(element) '| '| '| Next element '| '| '| '------------------------------------------------------------------------------------| '| '| '| '| End If '| '| '--------------------------------------------------------------------------------------------| '| '| Next kolekcja '| '----------------------------------------------------------------------------------------------------| End Function