A tömbképletek az Excel egyik leghatékonyabb funkciója. Ha ismeri a tömbképleteket, örömmel fogja tudni, hogy létrehozhat olyan VBA-függvényeket, amelyek tömböt adnak vissza.
Hónapnevek tömbjének visszaadása
Kezdjük egy egyszerű példával. A MonthNames függvény egy 12 elemből álló – kitalált – hónapnevek tömbjét adja vissza.
Funkció hónapnevek()
MonthNames = Array("január", "február", "március", _
„április”, „május”, „június”, „július”, „augusztus”, _
"Szeptember október november december")
Funkció befejezése
A MonthNames függvény munkalapon való használatához 12 cellás tömbképletként kell megadnia. Például válassza ki az A2:L2 tartományt, és írja be a =Hónapnevek() parancsot . Ezután nyomja meg a Ctrl+Shift+Enter billentyűkombinációt, hogy beírja a tömbképletet mind a 12 kijelölt cellába. Nézze meg az eredményt.

A MonthNames függvény használata 12 elemű tömb visszaadásához.
Ha azt szeretné, hogy a hónapok nevei egy oszlopban jelenjenek meg, jelöljön ki 12 cellát egy oszlopban, és használja ezt a tömbképletet. (Ne felejtse el beírni a Ctrl+Shift+Enter lenyomásával.)
=TRANSPOSE(Hónapnevek())
Egyetlen hónapot is kiválaszthat a tömbből. Íme egy képlet (nem tömbképlet), amely a tömb negyedik elemét jeleníti meg: április.
=INDEX(Hónapnevek(),4)
Rendezett lista visszaadása
Tegyük fel, hogy van egy listája azoknak a neveknek, amelyeket rendezett sorrendben szeretne megjeleníteni egy másik cellatartományban. Nem lenne jó, ha ezt egy munkalap funkció elvégezné?
Ez az egyéni függvény pontosan ezt teszi: argumentumaként egy egyoszlopos cellatartományt vesz fel, majd e cellák tömbjét adja vissza rendezve. Az A2:A13 tartomány tartalmaz néhány nevet. A C2:C13 tartomány tartalmazza ezt a többcellás tömbképletet. (Ne feledje, hogy a képletet a Ctrl+Shift+Enter lenyomásával kell megadnia.)

Egyéni függvény használata rendezett tartomány visszaadásához.
=Rendezett (A2:A13)
Íme a Sorted függvény kódja:
Függvény rendezve (Rng As Range)
Dim SortedData() Változatként
Dim Cell As Range
Dim Temp As Variant, i As Long, j As Long
Dim NonEmpty Am Long
Adatok átvitele a SortedData-ba
Minden egyes Rng cellához
Ha nem IsEmpty(Cell) Akkor
NonEmpty = NonEmpty + 1
ReDim Preserve SortedData (1-től nem üres)
SortedData(NonEmpty) = Cell.Value
Vége Ha
Következő cella
' Rendezd a tömböt
Ha i = 1 - Nem Üres
j = i + 1 esetén a NonEmptyhez
Ha SortedData(i) > SortedData(j) Akkor
Temp = Rendezett adatok (j)
RendezettAdat(j) = RendezettAdat(i)
SortedData(i) = Temp
Vége Ha
Következő j
Következő i
' Transzponálja a tömböt, és adja vissza
Rendezett = Application.Transpose(Rendezett adatok)
Funkció befejezése
A Sorted függvény egy SortedData nevű tömb létrehozásával kezdődik. Ez a tömb tartalmazza az argumentumtartomány összes nem üres értékét. Ezután a SortedData tömb rendezése buborék-rendezési algoritmus segítségével történik. Mivel a tömb vízszintes tömb, transzponálni kell, mielőtt a függvény visszaadja.
A rendezett függvény bármilyen méretű tartományban működik, mindaddig, amíg egyetlen oszlopban vagy sorban van. Ha a rendezetlen adatok egy sorban vannak, a képletnek az Excel TRANSPOSE funkcióját kell használnia a rendezett adatok vízszintes megjelenítéséhez. Például:
=TRANSPOSE(Rendezett(A16:L16))