Autor podstrony: Krzysztof Zajączkowski

Stronę tą wyświetlono już: 15580 razy

Tablice statyczne w VBA

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