Programowanie obiektowe i makra w Excelu.doc

(414 KB) Pobierz
Super-Easy Guide to the Microsoft Office Excel 2003 Object Model

              - 23 -

             

Super-Easy Guide to the Microsoft Office Excel 2003 Object Model

Frank C. Rice
Microsoft Corporation

http://msdn.microsoft.com/en-us/library/Aa203714(office.11).aspx#odc_super_lesson1gettingstarted

 

 

Super łatwy przewodnik modelowania obiektowego w MS Excel 2003

(tworzenie makropoleceń)

 

Przekład

 

Robert Wiśniewski

 

 

http://chomikuj.pl/bobwis

 


 

SPIS TREŚCI

 

1. Wprowadzenie

2. Dlaczego warto wiedzieć jak korzystać z modelowania obiektowego ?

3. Korzystanie z tego przewodnika

4. Co trzeba wiedzieć przed rozpoczęciem nauki

5. Co będziemy wiedzieli po zakończeniu tych lekcji

6. Lekcje

6.1. Lekcja 1 – Rozpoczęcie pracy

6.2. Lekcja 2 – Koncepcja programowania: Sub...End Sub oraz procedury

6.3. Lekcja 3 – Koncepcja programowania: Obiekty, metody i właściwości

6.4. Lekcja 4 – Świat  rzeczywisty – Przykład # 1

6.5. Lekcja 5 – Tworzenie własnych okienek dialogowych

6.6. Lekcja 6 – Koncepcja programowania: Kolekcje

6.7. Lekcja 7 – Koncepcja programowania: If This, Then That

6.8. Lekcja 8 – Świat  rzeczywisty – Przykład # 2

7. Co dalej ?

8. Dodatek A: Przykładowe makropolecenia

 



1. Wprowadzenie

 

Wprowadzanie modelowania obiektowego (makropoleceń) do MS Excel ® 2003 jest łatwe. Naprawdę jest łatwe. Nie jest do tego potrzebna zaawansowana wiedza komputerowa. Nie trzeba w tym celu znać takich języków programowania jak C lub C+ ani żadnych innych języków programowania. Nie trzeba również nic wiedzieć o modelowaniu obiektowym.

 

Aby rozpocząć pracę, przyjrzyjmy się poniższym wierszom kodu:

 

Sub ColorEverySecondRow()

    Const Gray = 15

    Range("A2").EntireRow.Select

    Do While ActiveCell.Value <> ""

       Selection.Interior.ColorIndex = Gray

       ActiveCell.Offset(2,0).EntireRow.Select

    Loop

End Sub

 

Czy możecie powiedzieć co ten kod wykonuje w Excelu ?

 

Za pomocą tych kilku wierszy kodu możemy dodać cieniowanie do co drugiego wiersza w aktywnym arkuszu roboczym. Polecenie  ColorEverySecondRow (pokoloruj co drugi wiersz) rozpoczynamy od zadeklarowania stałej o nazwie Gray (szary), która ma wartość  15. Znaczenie tej stałej stanie się wkrótce jasne. Następnie zostaje zaznaczony wiersz 2. Po zaznaczeniu całego wiersza, jego pierwsza komórka z lewej w kolumnie A, automatycznie staje się komórką aktywną. Polecenie Do... Loop (wykonaj pętlę) powtarza tą operację gdy tylko aktywna komórka jest pusta. W pętli tej ustawiany jest kod koloru wnętrza zaznaczonej komórki na 15, co odpowiada barwie szarej Gray. Następny kod zaznacza cały wiersz oraz dwa wiersze w dół od aktywnej komórki. Jest to kontynuowane dopóki aktywna komórka jest pusta, a gdy warunek While (dopóki) niej jest już spełniony, następuje przerwanie pętli.

 

Tak więc widzimy, że te sześć wierszy kodu pozwala na szybką zmianę koloru komórek naszego arkusza roboczego, aby stał się lepiej czytelny [1].

 

2. Dlaczego warto wiedzieć jak korzystać              
    z modelowania obiektowego ?

 

Modelowanie obiektowe pozwala na dostosowanie Excela do określonych potrzeb. Korzystanie w tym celu z makropoleceń jest idealne do zwiększania funkcjonalności Excela.

 

Przykładowo, kierownik wydziału w twoim przedsiębiorstwie ubolewa, że praca z tworzeniem raportów z wydatków jest wąskim gardłem przy tworzeniu sprawozdań z podróży do przedstawicieli handlowych. Wiesz jednak, że można szybko sporządzać raporty z wydatków w Excelu i utworzyć mapę raportów w schemacie XML. Pozwala to na uzupełnianie sprawozdań z podróży służbowych kierując odpowiednie pliki do komputerów podręcznych (laptopów) przedstawicieli handlowych.

 

3. Korzystanie z tego przewodnika

 

Przewodnik ten jest podzielony na 8 lekcji. Każda lekcja jest pod ręką i można z nich korzystać posługując się Excelem. Przewodnik ten można czytać „do poduszki”, ale najlepiej z niego korzystać mając przed sobą komputer.

 

4. Co trzeba wiedzieć przed rozpoczęciem nauki

 

Wszystko co jest niezbędne do racy, to znajomość systemu operacyjnego MS Windows ® oraz umiejętność posługiwania się MS Excelem.

 

Gdy mamy już pewne doświadczenie w programowaniu, zapewne wystarczy tylko zerknąć do sekcji „Koncepcja programowania”, ale reszta materiału nadal będzie przydatna.

 

5. Co będziemy wiedzieli po zakończeniu tych lekcji

 

Po zakończeniu poznawania tego przewodnika  oraz po wykonaniu wszystkich przykładów i ćwiczeń, można samodzielnie tworzyć własne aplikacje przy korzystania modelowania obiektowego w Excelu.

 

Zapewne będziemy mogli odkryć własny sposób korzystania z dostępnych narzędzi do rozwiązywania niezbędnych problemów.

 

Na koniec będziemy mogli zapoznawać się z niektórymi koncepcjami programowania  i uzyskiwać dalszą wiedze o języku programowania Microsoft Visual Basic®.

 

Podsumowując, skorzystanie z pomocy tego przewodnika pozwoli na stosowanie modelowania obiektowego w Excelu dla potrzeb własnych i przedsiębiorstwa.

 

6. Lekcje

 

Ustawienia

 

Aby korzystać z tego przewodnika i śledzić przytoczone przykłady, trzeba mieć MS Office Excel 2003 (beta 2 lub nowszy).

 

Nie trzeba w tym celu korzystać z żadnych innych narzędzi.

 

6.1. Lekcja 1 – Rozpoczęcie pracy

 

We wszystkich lekcjach tego przewodnika będziemy korzystali z programu Microsoft Visual Basic for Applications (VBA). Jest to wersji wbudowana w aplikację Microsoft Office, w tym w MS Excel. Rozwiązania tworzone za pomocą programu VBA noszą równie nazwę makropoleceń Macro.

 

Makropolecenie jest zestawem instrukcji Visual Basic, które są bardzo przydatne. Przy pisaniu makr do wykonywania różnych zadań w Excelu, wpisujemy instrukcje VBA, które korzystają z modelowania obiektowego w Excelu. W programie Excel można tworzyć makropolecenia przez ich wpisywanie lub przez ich rejestrowanie w trakcie wykonywania różnych operacji.

 

Aby rozpocząć wpisywanie makropolecenia

 

  1. Uruchomić MS Excel 2003             
     
  2. W men Narzędzia wybrać polecenie Makro oraz wybrać opcję Makra              
     
  3. Nazwać tworzone makro (nazwa nie może zawierać spacji, a więc wpisujemy np. MojeMakro)             
  4. Kliknąć przycisk Utwórz.

 

 

Excel automatycznie uruchomi editor Visual Basic Editor , którego okno jest pokazane na poniższym rysunku:

 

Rys. 1. Domyślny widok edytora Visual Basic Editor

 

 

Domyślnie, edytor Visual Basis wyświetla trzy okna:

 

·         Okno kodów – Ma ono etykietę Zeszyt - Module1 (Code). Jest to miejsce, w którym wpisujemy własne kody.             
 

·         Okno eksploratora projektu – Ma ono etykietę Project – VBAProject. Okno to wyświetla wszystkie obiekty Excela o dostępne moduły. Nie należy martwić się tym, że nie wiemy jeszcze nic o obiektach Excela. Okno to pozwala na  łatwe oglądanie oraz zarządzanie wieloma plikami VBA.             
 

·         Ono właściwości – Ma ono etykietę Properties - Module1. Okno to wyświetla aktualny zestaw właściwości wybranego elementu. Aktualnie wybrany jest element Module 1.

 

Teraz skorzystamy z każdego z tych trzech okien.

 

·         Module 1 (moduł 1). Jest to „surowa” i bezosobowa nazwa, ale można ją zmienić. W oknie Properties przejść do  pola (Name) Module. Podwójnie kliknąć tekst Module1, po czym wpisać np. MójPierwszyModuł. Zwrócić uwagę, że nazwa ta w oknie projektu i w pasku tytułowym okna kodów ulegnie zmianie.             
 

·         Teraz w oknie eksploratora projektu kliknąć znak PLUS (+) obok nazwy Microsoft Office Excel Objects aby rozwinąć ten węzeł i zobaczyć jego zawartość. Aktualnie znajdują się w nim 4 obiekty: Arkusz1, Arkusz2, Arkusz3 i ThisWorkbook (niniejszy arkusz).  W obiekcie ThisWorkbook pojawia się najwięcej aktualnie wykonywanych operacji.

 

Obejrzeć okno kodów z naszym modułem, który nazwaliśmy MójPierwszyModuł. Aby go otworzyć, należy podwójnie kliknąć jego nazwę w oknie eksploratora projektu.

 

W celu skompletowania makra

 

  1. Teraz wprowadzić pewien kod w procedurze Sub o nazwie Moje Makro             
     
  2. W oknie kodów wpisać poniższe polecenia:

Sub MojeMakro()

   Dim wrkSheet As Worksheet

  

   Set wrkSheet = ActiveWorkbook.Worksheets.Add

   Range("B1").Value = "MójNowyArkusz"

End Sub

 

 

Nie musimy wiedzieć jak lub dlaczego ten kod działa. Dowiemy się o tym w następnej lekcji. Teraz zajmiemy się  jego czynnością.

 

  1. Najpierw zamknąć edytor Visual Basic. W tym celu wybrać polecenie menu File, po czym kliknąć opcję Close and Return to Microsoft Excel.             
     
  2. W Excelu, wybrać menu Narzędzia, wybrać polecenie Makro oraz opcję Makra.             
     
  3. W otworzonym okienku dialogowym zaznaczona jest pozycja MojeMakro.              
    Kliknąć przycisk Uruchom.

 

Czy widzicie, że w komórce B1 został wstawiony napis: MójNowyArkusz ?

 

Gratulujemy ! Jesteście teraz nowym, oficjalnym programistą modelowania obiektowego w Excelu.

 

Uwaga: Gdy pojawi się komunikat o błędzie, nie przejmuj się. Kliknij przycisk potwierdzenia i upewnij się czy wprowadzone kody są takie same jak pokazano wyżej i powtórz kroki 2-4.

 

Niezależnie od ręcznego wprowadzania makropoleceń przez wpisywanie kodów w edytorze Visual Basic, można również tworzyć makra korzystając z rejestratora makropoleceń Macro Recorder. Za pomocą tego rejestratora, Excel tworzy makra przez rejestrowanie poleceń memu, skrótów klawiszowych, i innych operacji niezbędnych do wykonania danego zadania.

 

Proces rejestrowania makr składa się z trzech kroków. Pierwszym jest uruchomienie rejestratora makropoleceń, drugim jest wykonanie operacji, jaką chcemy zarejestrować a ostatnim krokiem jest zatrzymanie rejestratora.

 

 

Aby rozpocząć rejestrację makro

 

W celu pokazania tego procesu, utwórzmy proste makro, które wstawia nazwę firmy oraz jej adres w arkuszu Worksheets. Zapisać i zamknąć wszystkie skoroszyty robocze Workbooks, po czym otworzyć nowy skoroszyt roboczy (plik).

 

  1. W menu Narzędzia wybrać polecenie Makro i kliknąć opcję Zarejestruj nowe makro. Excel wyświetli niej pokazane okienko dialogowe:             

 

 


 

Rys. 2.  Widok okienka dialogowego rejestrowania makropolecenia

  1. W polu Nazwa Makra wpisać nazwę  makropolecenia, np. AdresFirmy...
Zgłoś jeśli naruszono regulamin