1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
'**********************************************************************************************************
' 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