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