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