Tablice
Przykłady opisane w tej lekcji dostępne są w arkuszu Excela VBA.xls, tylko ich samodzielne przerobienie
daje gwarancję zapamiętania tej lekcji.
Przykłady dla wszystkich lekcji szkolenia Excel 2003: ExcelSzkolenie.pl
Cwiczenia Excel 2003.zip
Tablicę można sobie wyobrazić jako zbiór danych znajdujących
się w oznaczonych i ponumerowanych komórkach tabeli - coś w rodzaju komórek
Excela.
Tablice mogą być jednowymiarowe, w tym przypadku kolejne
komórki są oznaczone jedną cyfrą indeksu. Poniżej przedstawiam 2 przykłady.
Tabele
mogą być dwuwymiarowe, do modelu przedstawionego powyżej dochodzą jeszcze
wiersze, komórka oznaczona jest poprzez 2 cyfry, kolumnę i wiersz.
Tabele
mające 3 wymiary należy wyobrazić sobie jako sześcian, w którym odwołując się
do jednej z komórek należy podać 3 cyfry.
4
wymiarową tablicę można sobie wyobrazić jako rząd sześcianów, w którym 4 cyfra
definiuje w którym z sześcianów należy poszukiwać interesującej nas danej, itd.
W poniższym przykładzie deklaruję
tablicę tablica1, która ma 7 elementów. Domyślną dolną wartością indeksu dla
pierwszej komórki tablicy jest zero, ostatni element ma indeks 6, tablica
zawiera więc 7 elementów.
Polecenie tablica1(0) =
"poniedziałek" wprowadza w tabelę pod indeksem 0 tekst
„poniedziałek”.
Funkcja MsgBox wyświetla komunikat
wykorzystujący zawartość tablicy.
Sub tablice1()
Dim tablica1(6) As String deklaracja tablicy zawierającej 7 elementów oznaczonych
cyframi od 0 do 6
tablica1(0) = "poniedziałek" ‘wprowadzanie danych do tablicy
... ‘wprowadzanie danych do tablicy
tablica1(6) = "niedziela" ‘wprowadzanie danych do tablicy
MsgBox "Ostatni dzień tygodnia to: " & tablica1(6) ‘wykorzystanie
danych z tablicy
End Sub
Jeżeli trudno Ci się przyzwyczaić do
tego, że pierwszy element to zero i aby pobrać 7 dzień tygodnia należy wybrać
element tablicy oznaczony indeksem 6, najwygodniej będzie zadeklarować tablicę
rozpoczynającą się od 1.
Sub tablice2()
Dim tablica2(1 To 7) As String ‘deklaracja tablicy zawierającej 7 elementów oznaczonych
cyframi od 1 do 7
tablica2(1) = "poniedziałek" ‘wprowadzanie
danych do tablicy
... ‘wprowadzanie
danych do tablicy
tablica2(7) = "niedziela" ‘wprowadzanie
danych do tablicy
MsgBox "Ostatni dzień tygodnia to: " & tablica2(7) ‘wykorzystanie danych z tablicy
End Sub
Dane do tablicy mogą też być
pobierane z arkusza Excela, ponieważ zazwyczaj nie korzysta się z tablic dla
kilku elementów, ale dla większej ich ilości wygodne jest posługiwanie się
pętlami.
Poniższe makro zawiera także
przykład przypisania danej z tabeli do zmiennej, oraz wprowadzenia danych z tabeli
do arkusza Excela.
(Poniższe makro będzie działało
poprawnie po aktywowaniu arkusza ‘Tablice’ z pliku VBA.xls)
Sub tablice3()
Dim tablica3(1 To 12) As String ‘deklaracja tablicy zawierającej 12 elementów oznaczonych
cyframi od 1 do 12
For wiersz = 1 To 12
tablica3(wiersz) = Cells(wiersz, 1).Value ‘wprowadzanie danych do
tablicy z arkusza z Excela
Next wiersz
miesiac8 = tablica3(8) ‘przypisanie wartości z tablicy do zmiennej, na tej samej
zasadzie dane z tablicy mogą być wykorzystywane w formułach, adresach itd
MsgBox "Ostatni miesiąc to: " & tablica3(12) ‘wykorzystanie
danych z tablicy przez Funkcję MsgBox
MsgBox "8 miesiąc to: " & miesiac8 ‘wykorzystanie zmiennej, która powstała na podstawie danych
z tablicy przez Funkcję MsgBox
For wiersz = 1 To 12
Cells(wiersz, 3).Value = tablica3(wiersz) ‘wprowadzenie danych z
tablicy do arkusza Excela
Next wiersz
End Sub
Dla wielu prostych zastosować
zamiast tablic tworzonych w VBA wystarczy posłużyć się funkcją Array, która
może funkcjonować zupełnie tak samo jak tablica a jej deklarowanie i użycie
jest bardzo proste.
Przykład użycia funkcji Array został
opisany w lekcji ‘Pętle Wielokrotne’.
Szkolenie Excel 2003 Szkolenie Excel 2007