Zmienne tablicowe pozwalają na przechowywanie wielu wartości tego samego typu w jednej zmiennej. Istnieją tablice jedno- i wielowymiarowe. Dostęp do poszczególnych wartości zapisanych w zmiennej tablicowej jest poprzez indeks.
Istnieje kilka sposobów deklaracji zmiennych tablicowych:
Dim MyTabSt(4) As String | Tablica 5 (o indeksach 0 do 4) elementów typu tekstowego |
Dim MyTabIn(1 to 5 ) As Integer | Tablica 5 (o indeksach 1 do 5) elementów typu liczba całkowita |
Dim MyTabVa( ) | Tablica dynamiczna nieokreślonej liczby elementów typu liczba Variant |
Ja najczęściej stosuję tę ostatnią metodę, określając górną granicę w ramach potrzeb. Chcąc zwiększyć wartość górnego indeksu, stosujemy konstrukcję:
Redim MyTab(i)
– gdzie i to wartość górmego indeksu
Trzeba jednak pamiętać o tym, że konstrukcja ta usuwa wszystkie wartości już zapisane w tablicy. Jeżeli chcemy zwiększyć indeks z zachowaniem tych wartości stosujemy:
Redim Preserve MyTab(i)
-
Przykład procedury może wygląda tak:
Public Sub ZT(n As Integer)
Dim MojaTablica() As String
Dim i As Integer
For i = 1 To n
If i = 1 Then
ReDim MojaTablica(i)
Else
ReDim Preserve MojaTablica(i)
End If
MojaTablica(i) = CStr(i)
Next i
End SubW tym przypadku procedura ma argument wejściowy n będący liczbą naturalną. W każdym kroku zwiększany jest rozmiar zmiennej tablicowej MojaTablica, a następnie przypisywana jest do niego wartość.
Zmienne tablicowe w VBA mogą być wielowymiarowe (do 60 wymiarów), choć w praktyce raczej stosuje się maksymalnie 3 wymiary.
-
A tu możesz mi postawić kawę:
buycoffee.to/marzatela