Statycznie tworzone tablice nie mogą mieć zmienianego rozmiaru, ani też ustawionego rozmiaru za pomocą innej zmiennej typu całkowitego. Oto przykład deklaracji tablicy statycznej:
Dim numbers(1 To 5) As Integer
Wczytywanie danych:
For i = 1 To 5
numbers(i) = InputBox("Podaj liczbę nr " & i)
Next i
Odczytywanie danych:
For Each number In numbers
MsgBox number
Next
Deklaracja tablic dwuwymiarowych:
Dim numbers(1 To 5, 1 To 2) As Integer
Odwołanie się do konkretnego indeksu:
numbers(1,1) = 10
Tworzenie tablicy za pomocą funkcji Array
Funkcja Array pozwala na łatwe deklarowanie tablic wraz z ich inicjalizacją, oto przykład:
Dim numbers As Variant
numbers = Array(4, 8, 15, 16, 23, 42)
MsgBox numbers(0)
Jak widać, na powyższym przykładzie indeksowanie tym razem zaczyna się od 0, można to zmienić umieszczając na początku modułu następujący kod:
Option Explicit
Option Base 1
Dynamiczne tworzenie tablicy
Za pomocą słowa kluczowego ReDim można ustawiać a nawet zmieniać rozmiar tablicy, której statycznie nie przypisano rozmiaru. Oto przykład:
Dim numbers() As Integer, size As Integer
size = InputBox("Podaj rozmiar tablicy:")
ReDim numbers(size)
Obliczanie rozmiaru tablicy
W VBA aby obliczyć rozmiar tablicy konieczne jest użycie dwóch funkcji UBound - zwracająca górną granicę indeksowania, LBound - zwracająca dolną granicę indeksowania. Oto przykład obliczania rozmiaru tablicy:
Dim table As Variant
table = Array(1, 2, 3, 4, 5)
Dim size As Integer
size = Ubound(table, 1) - LBound(table, 1) + 1
MsgBox size