Excel bazuje w luźny sposób na idei programowania obiektowego. W tej części kursu skupimy się na modelu obiektowym Excela, czyli zestawie obiektów, które są dostępne w każdej chwili dla programisty.
Obiekt jest pewnego rodzaju pojemnikiem odzwierciedlającym jakiś element Excela. Jest on identyfikowany przez nazwę i zawiera:
- atrybuty (property)
- metody (methods)
- zdarzenia (events)
Do obiektów nie odwołujemy się bezpośrednio, tylko przez ich atrybuty i metody.
Obiekt.identyfikator[.identyfikator]
Identyfikator może być metodą, która wykonuje jakieś działanie (dokładnie tak jak procedura lub funkcja). Może też być atrybutem, który jest jakąś zwykłą wartością lub kolejnym obiektem. W ten sposób możemy tworzyć cały łańcuszek, na którego końcu musi być jakiś atrybut lub metoda. Poniżej znajduje się kilka przykładów, które przybliżają ten temat. Skoro wiemy już jak uruchamiać procedury, proponuję uruchomić każdy z poniższych przykładów i wprowadzić w nim różne zmiany. Oczywiście przykłady te należy zawrzeć w procedurze.
Przykład 1.
Worksheets(1) jest obiektem oznaczającym pierwszy arkusz a Select jest metodą. W wyniku takiej instrukcji pierwszy arkusz zostanie zaznaczony.
Przykład 2.
|
Worksheets(1).Name = "Zielony" |
Name jest atrybutem Obiektu Worksheet i oznacza jego nazwę. Zmieniamy w ten sposób nazwę na „Zielony”.
Przykład 3.
|
NazwaArkusza = Worksheets(1).Name |
W ten sposób nadajemy zmiennej NazwaArkusza wartość nazwy pierwszego arkusza.
Przykład 4.
|
Application.Workbooks("Zeszyt1").Worksheets("Arkusz1"). _ Range("a1").Value = "napis" |
Powyżej mamy łańcuszek obiektów. Obiekt z prawej strony każdej kropki jest atrybutem obiektu z lewej strony tej samej kropki. Na samym końcu mamy atrybut będący wartością komórki A1 w arkuszu Arkusz1 w skoroszycie Zeszyt1.
Przykład 5.
Niektóre metody przyjmują argumenty, wywołuje się je podobnie jak zwykłe procedury.
|
Worksheets.Add Worksheets(1), , 1 |
Powyższa metoda dodaje nowy arkusz i może przyjąć cztery argumenty:
- Before – przed którym arkuszem ma być dodany nowy,
- After – po którym arkuszu ma być dodany nowy,
- Count – ile arkuszów ma być dodanych
- Type – jakiego typu mają być nowe arkusze
Powyżej podałem pierwszy i trzeci argument. Drugi został pominięty, więc między przecinkami jest puste miejsce. Wszystkie argumenty, które znajdują się na końcu są już pominięte, nie trzeba stawiać przecinków, Excel domyśla się, że nie chcemy ich przekazać.
Argumenty można też dodać poprzez nazwy, jest to szczególnie przydatne dla metod, które mają dużo, np. kilkanaście argumentów. Nie musimy wtedy stawiać dużo zbędnych przecinków. Instrukcję
|
Worksheets.Add Worksheets(1), , , xlWorksheet |
można tez zapisać:
|
Worksheets.Add before:=Worksheets(1), Type:=xlWorksheet |
Przykład 6.
Część metod może też zwracać wartości (tak jak funkcje). Np. powyższa metoda zwraca obiekt nowego arkusza.
|
Sub dodaj_arkusz() Dim NowyArkusz As Worksheet Set NowyArkusz = Worksheets.Add(before:=Worksheets(1), _ Type:=xlWorksheet) NowyArkusz.Name = "nowy arkusz" End Sub |
Tak jak w przypadku procedur konieczne jest zamknięcie argumentów w nawiasach. Nie znasz jeszcze słowa kluczowego Set. Poznasz je wkrótce. Istotne jest to, że powyżej został dodany nowy arkusz, który został zapamiętany w zmiennej NowyArkusz. Dzięki temu mogłem zmienić jego nazwę. Czytaj więcej...