Obiekty arkusza - pi.zarz.agh.edu.pl

Transkrypt

Obiekty arkusza - pi.zarz.agh.edu.pl
Wydział Zarządzania AGH
Katedra Informatyki Stosowanej
Obiekty arkusza
Programowanie komputerowe
1
Program wykładu
• Pojęcie obiektu
• Podstawowe obiekty i ich hierarchia
Programowanie
komputerowe
• Podstawowe metody
2
Obiekt
• Jest to struktura zawierająca:
– dane,
– metody, czyli funkcje służące do wykonywania na tych danych
określonych zadań.
– tożsamość (cecha/cechy odróżniające go od innych
obiektów),
– stan (bieżące wartości danych),
– zdefiniowany sposób zachowania (zestaw metod).
Programowanie
komputerowe
• Abstrakt programistyczny posiadający:
3
Podstawowe obiekty
• Workbook – bieżący skoroszyt
• Worksheet – bieżący arkusz
• Range – pojedyncza komórka lub
ich grupa
• Chart – wykres
• Kolekcja to grupa obiektów tego
samego typu, np.:
• Workbooks – skoroszyty
Programowanie
komputerowe
• Przykład: Range(„E5”) lub
Range(„B2:C10”)
• Worksheets – arkusze w danym skoroszycie
• Pełna lista obiektów, właściwości i metod jest dostępna w
widoku Object Browser edytora.
4
Kolekcja Worksheets
• W celu odwołania się do pojedynczego obiektu w kolekcji
arkuszy używamy:
– Worksheets(nazwa_arkusza) lub
– Worksheets(nr_arkusza)
Worksheets(„Arkusz3”) lub Worksheets(3)
• Ta druga możliwość jest użyteczna, gdy chcemy
przeegzaminować wszystkie arkusze w skoroszycie nie
Programowanie
komputerowe
• Przykład:
zważając na ich nazwy.
5
Hierarchia obiektów
• Obiekt Range zawiera się w obiekcie Worksheet, który z
kolei wchodzi w skład obiektu Workbook. Porządek ten
wyznacza sposób odwołania się do konkretnego obiektu w
hierarchii; odwołanie składa się z typów obiektów i ich
obiektu najwyższego w hierarchii, np.:
– Workbooks(„Dane”).Worksheets(„Arkusz2”).Range(„D10”)
– Worksheets(„Arkusz2”).Range(„D10”)
Programowanie
komputerowe
nazw w nawiasach, oddzielonych kropkami, zaczynając od
– Range(„D10”)
6
Hierarchia obiektów
• Sub ob_range()
Dim nr_ark As Integer
Dim co As String
For nr_ark = 1 To 3
MsgBox "W arkuszu nr " & Str(nr_ark) & " jest " & co
Next nr_ark
End Sub
Programowanie
komputerowe
co = Worksheets(nr_ark).Range("B2")
7
Właściwości obiektów
• Uwaga: zmiana jest możliwa tylko
wtedy, gdy atrybut nie ma wartości read-only.
• Na przykład obiekt Range ma m.in.
następujące właściwości: Column,
Font, Formula, Name, Row, Style,
Value.
Programowanie
komputerowe
• Właściwość jest atrybutem, który definiuje charakterystykę lub
zachowanie obiektu, takie jak rozmiar, kolor, położenie, reakcja na
różne zdarzenia, zachowanie przy określonych warunkach i tak
dalej. Zmiana lub odczytanie wartości atrybut(ów) następuje przez
odwołanie:
nazwa_obiektu.właściwość
=wartość
8
Właściwości obiektów
Sub ob_properties()
Dim val_wl As Boolean
val_wl = Worksheets(1).Range("C4").AllowEdit
MsgBox "Komórka C4 jest edytowalna? " & val_wl
MsgBox "W zakresie C4:C10 jest " &
Worksheets(1).Range("C4:C10").Item(3) = 111
End Sub
Programowanie
komputerowe
Worksheets(1).Range("C4:C10").Count & " komórek"
9
Metody obiektów
• Metoda to procedura lub funkcja wykonywana na rzecz
konkretnego obiektu. Można ją potraktować jako zestaw
działań, które może wykonać ten obiekt. Metoda
wykorzystuje właściwości obiektu i wynik swojego działania
nazwę obiektu, kropkę i nazwę wywoływanej metody:
nazwa_obiektu.nazwa_metody[(argumenty)]
np.
Range(„A1:E10”).Clear
Programowanie
komputerowe
zwraca do obiektu. Przy wywołaniu metody należy podać
10
Metody obiektów
Programowanie
komputerowe
• Dla obiektu Range mamy 71 metod, wiele odpowiada
odpowiednim czynnościom z menu arkusza.
11
• Niektóre użyteczne metody:
• Activate – aktywuje obiekt (tego obiektu będą dotyczyć
następne czynności),
• Clear – czyści zawartość obszaru,
• Close – zamyka obiekt,
• Copy – kopiuje obiekt do innego obiektu lub do schowka,
• Cut – j.w., ale kasuje obiekt wejściowy,
• FillDown – wypełnia resztę zakresu wartością(ami)
pierwszego wiersza,
• Select – zaznacza obiekt,
• Sort – sortuje elementy obiektu.
Programowanie
komputerowe
Metody obiektów
12
• W programach nie ma potrzeby (nad)używania Select.
Sub Macro1()
Sheets("Arkusz1").Select
Range("A5:B13").Select
Selection.Copy
Sheets("Arkusz2").Select
Range("G1").Select
ActiveSheet.Paste
End Sub
• Sub Macro2()
Sheets("Arkusz1").Range("A5:B13").Copy _
(Sheets("Arkusz2").Range("G1"))
End Sub
Programowanie
komputerowe
Metody obiektów
13
Metody obiektów
• Argumenty metod można specyfikować w różny sposób. Np.
metoda Sort ma 10 argumentów:
1.
Podajemy same wartości argumentów w kolejności jak na
liście:
Range("A1:E1550").Sort „Nazwisko", xlAscending
2.
Podajemy nazwy argumentów i ich wartości połączone
operatorem „:=„
Selection.Sort Key1:=Range("G1"), Order1:=xlAscending,_
Key2:=Range("H1"), Order2:=xlAscending, Header:=xlNo, _
MatchCase:=False, Orientation:=xlTopToBottom
W tym wypadku argumenty mogą pojawić się w dowolnej
kolejności, a niepotrzebne – mogą być opuszczone.
Programowanie
komputerowe
object.Sort(key1, order1, key2, order2, key3, order3, header,
orderCustom, matchCase, orientation)
14
Range a Cells
• Nie ma żadnej różnicy między tymi obiektami, ale pierwszy
jest odpowiednikiem notacji arkuszowej, drugi –
programistycznej (tablica dwuwymiarowa). Tak więc:
Range(„B4”) i Cells(4,2) oznaczają tę samą komórkę w
• Równie łatwo programowo odwołujemy się do kolejnych
komórek arkusza przy użyciu tych dwóch obiektów:
For wiersz = 3 To 9
Cells(wiersz, 2) = RND*10 ‘Range(„B” & wiersz) = RND*10
Programowanie
komputerowe
aktywnym arkuszu.
Next wiersz
15
Range a Cells
• Range można użyć do bezpośredniej definicji i przypisania
wartości do tablic (deklaracja tablicy Dim nie jest potrzebna);
poniższa instrukcja przypisania zmiennej Tabl przypisuje
kolejne wartości z zakresu Range:
• Odwołanie do pojedynczego wiersza lub kolumny daje tabelę,
w której drugi indeks ma wartość 1, odwołanie do zakresu
dwuwymiarowego daje tabelę dwuwymiarową. Indeksy
Programowanie
komputerowe
Tabl = Range(„G1:G9”)
zawsze zaczynają się od 1 (niezależnie od ustawienia Option
Base).
16

Podobne dokumenty