Tablice

 

Przykłady opisane w tej lekcji dostępne są w arkuszu Excela VBA.xlsm, tylko ich samodzielne przerobienie daje gwarancję zapamiętania tej lekcji.

Przykłady dla wszystkich lekcji szkolenia Excel 2013: ExcelSzkolenie.pl Cwiczenia Excel 2013.zip

 

Ta lekcja może być obejrzana lub przeczytana poniżej.

Film wygląda najlepiej jeśli będzie odtwarzany w rozdzielczości 720p HD, rozdzielczość można zmienić dopiero po uruchomieniu filmu klikając na ikonie trybika  która pojawi się w prawym dolnym rogu poniższego ekranu. Po kilku sekundach od zmiany obraz wyostrzy się.

 

 

 

 

 

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.

 

 

Tablice mogą być dwuwymiarowe, do modelu przedstawionego powyżej dochodzą jeszcze wiersze, komórka oznaczona jest poprzez 2 liczby, kolumnę i wiersz.

Tablice 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ć trzy liczby.

4 wymiarową tablicę można sobie wyobrazić jako rząd sześcianów, w którym 4 liczba 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’.