Visual Basic w programie Excel Ćwiczenie nr 3 Obiekty, właściwości, metody. Obiekty standardowe, kolekcje standardowe. Dostęp do komórek arkusza. Operacje na standardowych bibliotekach. CEL ĆWICZENIA. Celem ćwiczenia jest poznanie możliwości jakie daje posługiwanie się obiektami w programie Visual Basic. ZAKRES ĆWICZENIA. Obiekty występujące w programie Visual Basic Hierarchia obiektów Możliwości zmiany właściwości obiektów Wykorzystanie narzędzia Przeglądanie obiektów OBIEKTY - WŁAŚCIWOŚCI I METODY Korzystając z języka Visual Basic dla aplikacji można tworzyć procedury kontrolujące niemalże każdy aspekt posługiwania się nie tylko poszczególnymi funkcjami programu Microsoft Excel, lecz również innych aplikacji. Podstawą kontroli tego języka jest jego zdolność do zarządzania różnymi obiektami. Obiekt jest przedmiotem kontrolowanym przez Visual Basic. Excel zawiera ogółem 128 obiektów, które można kontrolować w rozmaity sposób. Obiektem jest na przykład skoroszyt, arkusz, zespół komórek w arkuszu, czy też wykres. Obiekty są zorganizowane w hierarchii. Niektóre obiekty zawierają w sobie inne obiekty. Na przykład sam Excel stanowi obiekt zwany aplikacją. Obiekt aplikacji zawiera w sobie inne obiekty, takie jak skoroszyty czy paski narzędzi. Skoroszyt zaś zawiera inne obiekty, takie jak arkusze czy wykresy. Zbiór podobnych obiektów określa się nazwą kolekcji. Na przykład kolekcja arkuszy obejmuje wszystkie arkusze w danym skoroszycie, a kolekcja pasków narzędzi składa się z różnorodnych przycisków. Kolekcje są również obiektami. Najczęściej używanymi kolekcjami obiektów Excela są: kolekcja Sheets (zawierająca arkusze, moduły, wykresy i kartki dialogu), kolekcja Workbooks, kolekcja Worksheets oraz kolekcja Windows. Każdy obiekt ma charakterystyczne cechy, które czynią ten obiekt użytecznym. Te specjalne cechy obiektu noszą nazwę właściwości. Na przykład obiekt Range ma następujące właściwości: Column, Font, Formula, Name, Row, Style, Value, Worktsheet. Właściwości obiektów można ustawiać lub przekazywać. Właściwości kontrolują wygląd i pozycję obiektu. Najtrudniejszym do zrozumienia aspektem Visual Basica, dotyczącym obiektów i właściwości jest to, że niektóre właściwości mogą być również obiektami. Weźmy pod uwagę na przykład obiekt Range. Chociaż ma on właściwość Font, sam Font jest również obiektem, który ma takie właściwości: Name, Size, Italic, Bold itp.
Oprócz właściwości obiekty posiadają również metody. Metody są to czynności, które dany obiekt potrafi zrobić lub wykonać. Każdy obiekt może posługiwać się różnymi metodami. Na przykład obiekt Range ma specjalne metody służące do wymazywania zawartości komórki (ClearContents), wymazywania tylko formatu komórki (ClearFormats), wymazywania wszystkiego w komórce (Clear). Inne metody tego obiektu pozwalają kopiować, przesuwać, wybierać i sortować komórki. Do efektywnej pracy w programie Visual Basic niezbędna jest znajomość hierarchii obiektów. Przypomina ona swoim układem budowę drzewa katalogowego. Jej budowa została przedstawiona poniżej. Rys. 1 Hierarchia obiektów Microsoft Excel. Rys. 2. Hierarchia obiektów WorkSheet. - 2 -
Rys. 3. Hierarchia obiektów DialogSheet. Rys. 4. Hierarchia obiektów Chart. Aby dotrzeć do właściwości i metod danego obiektu w Visual Basicu należy podać obiekty znajdujące się na wyższych szczeblach w hierarchii (w podobny sposób określa się położenie pliku w MS-DOS, z tym że znak DOS-a / jest tu zastąpiony przez. ). - 3 -
UŻYCIE OBIEKTÓW I KOLEKCJI STANDARDOWYCH. Przy odwoływaniu się do właściwości danego obiektu używa się składni: Object.Property gdzie Object jest nazwą obiektu, a Property jest nazwą właściwości.na przykład można odwołać się do wartości wpisanej w komórce A4 w następujący sposób: Range("A4").Value Należy zwrócić uwagę na kropkę pomiędzy nazwą obiektu i nazwą właściwości. Kiedy chcemy się odwołać do właściwości pewnego obiektu, a obiekt ten jest zawarty wewnątrz kilku innych obiektów, musimy wymienić wszystkie obiekty po kolei, oddzielając ich nazwy również kropkami np. ActiveSheet.Ovals(1).Border.Weight. Ponieważ właściwości można zmieniać i wyświetlać, zmienia się również zapis syntaktyczny poszczególnych instrukcji.. Aby zmienić wartość danej właściwości na inną, używa się następującej składni: Object.Property=value gdzie Object jest nazwą obiektu, Property jest nazwą właściwości, natomiast value jest wartością, która ma zostać użyta. Value może być wartością numeryczną Worksheets("Arkusz1 ").Range("A4").Value = 25 tekstem, wpisanym w cudzysłowie ActiveCell.Font.Name = "Bookman EE" wartością logiczną (True/False) ActiveCell.Font.Bold = True Aby wyświetlić bieżącą wartość (ustawienie) danej właściwości, należy zapisać to w sposób następujący: variable=object. Property, gdzie variable jest nazwą zmiennej. W poniższym przykładzie wartość znajdująca się w komórce A4 jest przechowywana w zmiennej o nazwie cellvalue: cellvalue = Worksheets("Arkusz1").Range("A4").Value Odwoływanie się do metody zależy od tego, czy zawiera ona argumenty. Jeśli metoda nie ma argumentów, zapis syntaktyczny metody jest podobny do zapisu syntaktycznego właściwości: Object.Method Na przykład metoda Add, która dodaje nowy skoroszyt, wygląda następująco.workbooks.add W poniższym przykładzie metoda ClearFormats wymazuje format przypisany komórce A4 w arkuszu Arkusz1: Worksheets("Arkusz1").Range("A4").ClearFormats Jeśli metoda wymaga argumentów, składnia jest następująca: Object.Method(argumentl, argument2,..., argumentn) Na przykład popularna metoda Offset, wyświetlająca komórkę o położeniu wyznaczonym względem bieżącej komórki, wymaga podania dwóch argumentów: indeksu wiersza (rowoffset) oraz indeksu kolumny (columnoffset): ActiveCell.Offset(3,2) W powyższym przykładzie zakładając, że aktywną komórką jest komórka A1, Offset(3, 2) oznacza komórkę znajdującą się trzy wiersze w dół i dwie kolumny w praw o od komórki A1, czyli komórki C4. Ponieważ zapisane w ten sposób argumenty są trudne do zrozumienia, w praktyce programowania często poprzedza się wartości argumentów ich nazwami: ActiveCell.Offset(rowOffset:=3, columnoffset:=2) Użycie nazw argumentów zwalnia z obowiązku wyszczególniania ich po kolei. Nazwanym argumentom przypisuje się wartości za pomocą operatora złożonego z dwukropka i znaku równości ( := ). - 4 -
UŻYCIE OKNA PRZEGLĄDANIE OBIEKTÓW (OBJECT BROWSER) Poruszanie się po skomplikowanym zespole elementów Visual Basica jest ułatwione dzięki narzędziu noszącemu nazwę Przeglądanie obiektów. Narzędzie to jest dostępne tylko wówczas, gdy na ekranie jest aktywna kartka modułu. Po otwarciu kartki modułu można uruchomić Przeglądanie obiektów za pomocą klawisza F2 lub przez wybranie z menu Widok polecenia Przeglądanie obiektów. Po wybraniu Excela zostaje przedstawione okno dialogowe widoczne na rysunku 5. Rys. 5. Okno dialogowe Przeglądanie obiektów. U góry okna znajduje się rozwijana lista wymieniająca nazwy wszystkich otwartych bibliotek i skoroszytów. Biblioteka o nazwie Excel zawiera nazwy obiektów występujących tylko w Excelu. Po wybraniu tej biblioteki, po lewej stronie okna będą wyświetlone nazwy obiektów i stałych, po prawej stronie będą przedstawione nazwy właściwości i metod, odpowiadające obiektowi wybranemu po lewej stronie. Możliwe jest tutaj także uzyskanie opisu sposobu użycia każdego z wybranych obiektów. U dołu okna znajduje się przycisk ze znakiem zapytania, który otwiera odpowiednie okno pomocy dotyczące wybranego obiektu. W odróżnieniu od biblioteki Excel, biblioteka VBA wymienia nazwy obiektów występujących we wszystkich wersjach tego języka. PRZEGLĄDANIE OBIEKTÓW (OBJECT BROWSER) W LOKALIZACJI PROCEDUR Oprócz odszukiwania nazw obiektów i identyfikacji właściwych im właściwości i metod, Przeglądanie obiektów jest znakomitym narzędziem służącym do odszukiwania procedur wpisanych w różnych skoroszytach. Aby szybko dowiedzieć się, jakie procedury zostały wpisane do tego momentu w skoroszycie osobistym należy: 1. uruchomić okno Przeglądanie obiektów i wybrać z rozwijanej listy bibliotek nazwę pliku Personal.xls (rysunek 6). - 5 -
Rys. 6. Przeglądanie okien w lokalizacji procedur. Excel przedstawia po lewej stronie okna Przeglądanie obiektów nazwy modułów znajdujących się w wybranym skoroszycie. Po prawej stronie tego okna znajdują się nazwy procedur wpisanych w zaznaczonym po lewej stronie okna k modułu, 2. wybrać nazwę Moduł1 i zaznaczyć nazwę procedury Makro1; 3. kliknąć przycisk Pokaż; 4. nacisnąć klawisz F2 i kliknąć przycisk Opcje; Excel wyświetla to samo okno dialogowe, które dostępne jest z menu po wybraniu polecenia Narzędzia Makro Opcje; 5. kliknąć przycisk Anuluj, a następnie Zamknij. Zadanie 1. 1. Utwórz ramkę tekstową znajdującą się na środku arkusza. Następnie napisz program, który będzie ją przesuwał do górnego lewego rogu arkusza, obramowywał ją i ustalał optymalne rozmiary zależne od znajdującego się w niej tekstu. Wykorzystaj obiekt TextBoxes. 2. Przepisz poniższą tabelkę. Napisz makro tworzące na jej podstawie wykres liniowy. Posłuż się metodami: Range, Select, Add, Chart i Set. A. M. G. R. J. U. E. I. 1990 1 1.5 2-1 1991 2 3 4-2 1992 3 4.5 6-3 1993 4 6 8-4 1994 5 7.5 10-5 3. Utwórz tabelę dwukolumnową. Komórki pierwszego wiersza połącz ze sobą. Zakładając, że okładka na kasetę audio ma wymiary 12*70*110mm napisz program tworzący na podstawie tej tabeli okładkę na kasetę audio. - 6 -