Licz wymiary


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
'**********************************************************************************************************
' Nazwa:                liczWymiary
' Autor:                mielk | 2012-03-03
'
' Opis:                 Funkcja zwraca liczbę wymiarów podanej tablicy VBA.
'
' Argumenty:
'   tablica             Tablica, której liczba wymiarów ma zostać zwrócona.
'
' Zwraca:
'   Integer             Liczba wymiarów podanej tablicy VBA.
'                       Jeżeli podana wartość nie jest tablicą lub jest zadeklarowana jako tablica
'                       dynamiczna, ale nie przypisano jeszcze do niej liczby wymiarów, zwracana
'                       jest wartość 0.
'
'
' --- Zmiany ----------------------------------------------------------------------------------------------
' 2012-03-03        mielk       Utworzenie funkcji
' 2014-06-15        mielk       Zwracany typ zmieniony na Integer, żeby umożliwić zwracanie wartości -1,
'                               jeżeli podany parametr nie jest w ogóle tablicą.
'**********************************************************************************************************
Public Function liczWymiary(tablica As Variant) As Integer
    Const NAZWA_METODY As String = "liczWymiary"
    '------------------------------------------------------------------------------------------------------
    Dim granica As Long
    '------------------------------------------------------------------------------------------------------


    If VBA.IsArray(tablica) Then

        On Error GoTo NieistniejacyWymiar
        Do
            granica = UBound(tablica, liczWymiary + 1)
            liczWymiary = liczWymiary + 1
        Loop

    Else

        liczWymiary = -1

    End If



'----------------------------------------------------------------------------------------------------------
NieistniejacyWymiar:

End Function