Tworzenie makr w VBA dla Excela 2002/XP PL. Æwiczenia zaawansowane



Podobne dokumenty
Aplikacje w środowisku VBA. Visual Basic for Aplications

Zastanawiałeś się może, dlaczego Twój współpracownik,

Makropolecenia w Excelu

Program szkolenia VBA (VISUAL BASIC FOR APPLICATIONS) W EXCELU PODSTAWOWY.

AUTOMATYZACJA PRACY Z UŻYCIEM MAKR. Tom XII NPV WSP.KORELACJI ROZKŁ.EXP JEŻELI COS KOMÓRKA VBA DNI.ROBOCZE ILOCZYN LOG SUMA CZY.

Program szkolenia VBA (VISUAL BASIC FOR APPLICATIONS) W EXCELU PRZEKROJOWY.

Przygotowanie własnej procedury... 3 Instrukcja msgbox wyświetlanie informacji w oknie... 6 Sposoby uruchamiania makra... 8

Kolumna Zeszyt Komórka Wiersz Tabela arkusza Zakładki arkuszy

Matematyka z komputerem dla gimnazjum

Wskaźniki a tablice Wskaźniki i tablice są ze sobą w języku C++ ściśle związane. Aby się o tym przekonać wykonajmy cwiczenie.

Visual Basic w programie Excel dla Windows

LABORATORIUM 6: ARKUSZ MS EXCEL JAKO BAZA DANYCH

Excel z elementami VBA w firmie.

Excel. Tworzenie zaawansowanych aplikacji.

Praktyczny Excel. Sprytne makra

Nagrywanie Makr. Na karcie Dostosowywanie Wstążki zaznaczamy kartę Deweloper.

Makropolecenia w PowerPoint Spis treści

Automatyzowanie zadan przy uz yciu makr języka Visual Basic

Wstęp 7 Rozdział 1. OpenOffice.ux.pl Writer środowisko pracy 9

Widoczność zmiennych Czy wartości każdej zmiennej można zmieniać w dowolnym miejscu kodu? Czy można zadeklarować dwie zmienne o takich samych nazwach?

Program szkolenia PODSTAWY VBA (VISUAL BASIC FOR APPLICATIONS) I FORMULARZE.

znajdowały się różne instrukcje) to tak naprawdę definicja funkcji main.

TABLICA (ang. array) pojedyncza zmienna z wieloma komórkami, w których można zapamiętać wiele wartości tego samego typu danych.

Wprowadzenie do programowania w języku Visual Basic. Podstawowe instrukcje języka

Smarty PHP. Leksykon kieszonkowy

Przewodnik Szybki start

Uwagi dotyczące notacji kodu! Moduły. Struktura modułu. Procedury. Opcje modułu (niektóre)

Wprowadzenie (17) Część I. Makra w Excelu - podstawy (23)

Spis tre ci. Rozdzia 1. Co to jest VBA Rozdzia 2. Makropolecenia Rozdzia 3. Jak uruchomi edytor Visual Basic... 31

Przykłady zastosowań funkcji tekstowych w arkuszu kalkulacyjnym

MySQL. Æwiczenia praktyczne

Zakres tematyczny dotyczący podstaw programowania Microsoft Office Excel za pomocą VBA

tutaj Poniższe makro nie zadziała dla pakietu Open lub Libre Office! O co chodzi?

Pracownia Informatyczna Instytut Technologii Mechanicznej Wydział Inżynierii Mechanicznej i Mechatroniki. Podstawy Informatyki i algorytmizacji

TEMAT: SPOSOBY ADRESOWANIA W

Temat: Organizacja skoroszytów i arkuszy

1 Podstawy c++ w pigułce.

Praktyczny Excel. Sprytne makra

Politechnika Gdańska Wydział Elektrotechniki i Automatyki Katedra Elektroenergetyki Technologie informatyczne

Trik 1 Edycja wykresu bezpośrednio w dokumencie Worda

OpenOffice.ux.pl 2.0. Æwiczenia praktyczne

Dodawanie grafiki i obiektów

UONET+ - moduł Sekretariat. Jak wykorzystać wydruki list w formacie XLS do analizy danych uczniów?

Microsoft Excel 2003 profesjonalna analiza i raportowanie oraz prezentacja danych

Szukanie rozwiązań funkcji uwikłanych (równań nieliniowych)

C++. Æwiczenia zaawansowane

Matematyka grupa Uruchom arkusz kalkulacyjny. 2. Wprowadź do arkusza kalkulacyjnego wartości znajdujące się w kolumnach A i B.

Programowanie w języku Python. Grażyna Koba

ABC 2002/XP PL EXCEL. Autor: Edward C. Willett, Steve Cummings. Rozdział 1. Podstawy pracy z programem (9) Uruchamianie programu (9)

Arkusz strona zawierająca informacje. Dokumenty Excela są jakby skoroszytami podzielonymi na pojedyncze arkusze.

Makra w arkuszu kalkulacyjnym

Układy VLSI Bramki 1.0

BAZY DANYCH MAKRA I PRZYCISKI. Microsoft Access. Adrian Horzyk. Akademia Górniczo-Hutnicza

Skróty klawiaturowe w programie Microsoft Excel 2013

Program szkoleniowy. 24 h dydaktycznych (18 h zegarowych) NAZWA SZCZEGÓŁY CZAS

Makra Access 2003 wg WSiP Wyszukiwanie, selekcjonowanie i gromadzenie informacji Ewa Mirecka

Praktyczny Excel. 50 praktycznych formuł na każdą okazję

Część I: Przypisanie makr do obiektu (przycisku).

Ćwiczenia nr 4. Arkusz kalkulacyjny i programy do obliczeń statystycznych

Excel 2016 PL w biurze i nie tylko / Sergiusz Flanczewski. Gliwice, cop Spis treści

Tworzenie makr warunkowych

Formatowanie warunkowe

Matematyka w Excelu dla szkó³ rednich. Æwiczenia praktyczne. Wydanie II

Tablice. Jones Stygar na tropie zmiennych

przedmiot kilka razy, wystarczy kliknąć przycisk Wyczaruj ostatni,

Kontrola poprawności danych:

Celem tego projektu jest stworzenie

Visual Basic w programie Excel

Niezwykłe tablice Poznane typy danych pozwalają przechowywać pojedyncze liczby. Dzięki tablicom zgromadzimy wiele wartości w jednym miejscu.

Zadanie 1. Stosowanie stylów

ARKUSZ KALKULACYJNY komórka

Użycie Visual Basic for Applications ("VBA")

Kilka prostych programów

Informatyka Arkusz kalkulacyjny Excel 2010 dla WINDOWS cz. 1

Wymagania edukacyjne z informatyki dla klasy szóstej szkoły podstawowej.

Zadanie 9. Projektowanie stron dokumentu

Przedmiot: Informatyka w inżynierii produkcji Forma: Laboratorium Temat: Zadanie 4. Instrukcja warunkowa.

Wprowadzania liczb. Aby uniknąć wprowadzania ułamka jako daty, należy poprzedzać ułamki cyfrą 0 (zero); np.: wpisać 0 1/2

Zajęcia: VBA TEMAT: VBA PROCEDURY NUMERYCZNE Metoda bisekcji i metoda trapezów

Szkolenie dla nauczycieli SP10 w DG Operacje na plikach i folderach, obsługa edytora tekstu ABC. komputera dla nauczyciela. Materiały pomocnicze

Cel: Przypisujemy przyciskom określone funkcje panel górny (Panel1)

PRZETWARZANIE I ORGANIZOWANIE DANYCH: ARKUSZ KALKULACYJNY

VISUAL BASIC W EXCELU

Podstawy programowania. Wykład: 9. Łańcuchy znaków. dr Artur Bartoszewski -Podstawy programowania, sem 1 - WYKŁAD

Ćwiczenie 1 Obsługa makr

Wstęp 5 Rozdział 1. Instalacja systemu 13. Rozdział 2. Logowanie i wylogowywanie 21 Rozdział 3. Pulpit i foldery 25. Rozdział 4.

VBA dla Excela 2007 PL. XXX praktyczne przyk³ady

1. Przypisy, indeks i spisy.

Stałe, znaki, łańcuchy znaków, wejście i wyjście sformatowane

Excel w biurze i nie tylko

Informatyka Arkusz kalkulacyjny Excel 2010 dla WINDOWS cz. 1

I. Program II. Opis głównych funkcji programu... 19

Wszystkie znaki występujące w tekście są zastrzeżonymi znakami firmowymi bądź towarowymi ich właścicieli.

BIBLIOTEKA LOKALNE CENTRUM WIEDZY PRAKTYCZNEJ PRZEWODNIK PO NARZĘDZIACH WARSZTAT NR 1: ARKUSZE KALKULACYJNE - MINI SKRYPT

MATLAB. Æwiczenia IDZ DO KATALOG KSI EK TWÓJ KOSZYK CENNIK I INFORMACJE CZYTELNIA PRZYK ADOWY ROZDZIA SPIS TRE CI KATALOG ONLINE

1.3. Tworzenie obiektów 3D. Rysunek 1.2. Dostępne opcje podręcznego menu dla zaznaczonego obiektu

Transkrypt:

IDZ DO PRZYK ADOWY ROZDZIA SPIS TRE CI KATALOG KSI EK KATALOG ONLINE ZAMÓW DRUKOWANY KATALOG Tworzenie makr w VBA dla Excela 2002/XP PL. Æwiczenia zaawansowane Autor: Miros³aw Lewandowski ISBN: 83-7361-204-1 Format: B5, stron: 178 TWÓJ KOSZYK DODAJ DO KOSZYKA CENNIK I INFORMACJE ZAMÓW INFORMACJE O NOWO CIACH ZAMÓW CENNIK CZYTELNIA FRAGMENTY KSI EK ONLINE Najpopularniejszy arkusz kalkulacyjny Microsoft Excel posiada ok. 300 funkcji gotowych do wykorzystania w sytuacjach, w których mog¹ przydaæ siê obliczenia. Jakby tego by³o ma³o, mamy do dyspozycji potê ne narzêdzie jakim jest Visual Basic for Applications (VBA) przejrzysty i prosty jêzyk programowania, zoptymalizowany specjalnie pod k¹tem rozszerzania mo liwo ci innych aplikacji. Celem tej ksi¹ ki jest nauka wykorzystania VBA w po³¹czeniu z Excelem. Za³o ono wiêc, e nie chcesz zg³êbiaæ teorii poszczególnych sk³adników jêzyka, lecz interesuje Ciê strona praktyczna Twoich dzia³añ. Dlatego te ka dy przyk³ad zosta³ przez autora szeroko omówiony, zarówno od strony algorytmu, jak i wykorzystanego kodu. Dowiesz siê jak: Zautomatyzowaæ rutynowe czynno ci Rejestrowaæ makrodefinicje Korzystaæ z danych zawartych w skoroszytach Tworzyæ w³asne funkcje Komunikowaæ siê z u ytkownikiem Zamieniaæ liczby na format s³ownie Wspomagaæ pracê Excela Losowaæ liczby Wydawnictwo Helion ul. Chopina 6 44-100 Gliwice tel. (32)230-98-63 e-mail: helion@helion.pl

Spis treści Rozdział 1. Rozdział 2. Rozdział 3. Zapytaj Autora przez Internet!...o...... 5 Automatyzacja często powtarzanych zadań...o... 7 Wprowadzenie...n...n......7 Dla początkujących rejestrowanie makr...n...7 Uruchamianie zapisanych projektów...n...9 Szybkie sortowanie danych...n...n..13 Podstawy...o...o...... 21 Wymiana danych między VBA a skoroszytem. Zmienne i stałe...21 Czytanie i umieszczanie danych...n...21 Zmienne i stałe...n...n......24 Deklarowanie zmiennych i ich zasięg...n...26 Zmienne lokalne...n...n......26 Zmienne modułu i zmienne publiczne...n...28 Zmienne tablicowe...n...n...30 Co będzie, jeśli?...n...n...32 Pętle...n...n......35 For Each...n...n...36 Do Loop...n...n...40 Idź do, idź i wróć...n...n......43 Dialog z użytkownikiem...n...n......45 Okna komunikatów...n...n...4 5 Okna dialogowe...n...n.....49 Formularze...n...n...50 Obsługa błędów...n...n......54 Makro a funkcja...n...n...56 Tworzenie funkcji użytkownika...n...56 Opisywanie funkcji użytkownika...n...58 Przykłady...o...o...... 61 Liczby słownie...n...n...61 Wygląd zależny od warunków...n...65 Nawigacja między arkuszami...n...67 Wspomaganie pracy Excela...n...n. 69 Jednorazowe losowanie...n...n.69 Autostart...n...n......71 Rozdzielanie tekstu...n...n.....72 Poszukiwanie dni tygodnia...n...74 Poszukiwanie nazw w skoroszycie...n...76

4 Tworzenie makr w VBA dla Excel 2002/XP PL. Ćwiczenia zaawansowane Rozdział 4. Hiperłącza...n...n......77 Dodawanie polecenia do menu...n...82 Matematyka dla dziewięciolatka...n...84 Tworzenie dodatku Kalendarz w pasku narzędzi...n...103 Generowanie dźwięku...n...n.....117 Obliczanie głębi ostrości...n...n...120 Arkusz ofert...n...n......130 Kółko i krzyżyk...n...n......134 Dodatki...o...o...... 151 Okno edytora VBA...n...n......151 Procedury zdarzeniowe...n...n.....154 Właściwości formantów formularza...n...162

Rozdział 2. Podstawy Pierwszy rozdział podpowiadał, jak można sobie ułatwić codzienną pracę z Excelem i zautomatyzować często powtarzane czynności. Właściwie niezbyt przydała się wiedza na temat VBA wystarczyło Ci uruchomienie rejestratora makr i pokazanie, czego oczekujesz od komputera. Jak już zdążyłeś się przekonać, rejestrator choć bardzo pomocny nie oferuje możliwości zapisania operacji warunkowej, przypisywania zmiennej czy wyświetlenia okien dialogowych. Dobrze byłoby zatem poznać podstawowe polecenia i struktury, odpowiedzialne za wykonywanie operacji, których rejestrowanie jest niemożliwe lub przynajmniej karkołomne. Wszystkie zamieszczone tu ćwiczenia możesz znaleźć noa stronie http://excel.vip.interia.pl. Wymiana danych między VBA a skoroszytem. Zmienne i stałe Czytanie i umieszczanie danych Często zdarza się, że napisane przez Ciebie makro umieszcza dane w aktywnym arkuszu roboczym lub pobiera je stamtąd. VBA oferuje kilka sposobów adresowania komórek arkusza w zależności od tego, jakie dane są dla użytokownika dostępne.

22 Tworzenie makr w VBA dla Excel 2002/XP PL. Ćwiczenia zaawansowane Ćwiczenie 2.1. Rysunek 2.1. Arkusz tabliczki mnożenia Utwórz arkusz tabliczki mnożenia w zakresie od 1 do 10 według rysunku 2.1. Pomiń formatowanie. Rozwiązanie 1. Otwórz nowy skoroszyt, uruchom edytor VBA (Alt+F11) i wstaw moduł (Insert/Module). 2. W module wprowadź następujący kod: 3. Ustaw kursor w obrębie makra i naciśnij klawisz F5, aby uruchomić makro. Wyjaśnienia Rysunek 2.2. Podpowiedzi edytora VBA bywają bardzo pomocne Zastosowane tu zostały instrukcje pętli (struktury ). Poznasz je w dalszych rozdziałach tego podręcznika. Wpisanie wartości do komórki dokonywane jest w poniższym wierszu kodu: Właściwość, określająca adres komórki, posiada dwa argumenty. Jak widać w instrukcji, zmienne i przyjmują wartości od do. W poleceniu zatem zarówno wiersz, jak i kolumna są określane za pomocą wartości liczbowych. Łatwo pomylić kolejność współrzędnych. Z pomocą przyjdzie wtedy edytor (patrz rysunek 2.2), który sam podpowie, czego od Ciebie oczekujeo.

Rozdział 2. Podstawy 23 Ćwiczenie 2.2. Zaciemnij wnętrza komórek od A1 do J1 i od A2 do A10, jak.pokazano na rysunku 2.1. Rozwiązanie Wprowadź do modułu następujący kod i uruchom go. Wskazówki Zauważ, że w różny sposób wpisano argumenty. Obydwa sposoby są poprawne. Jak widać, za pomocą możemy zaznaczać całe zakresy komórek. Jako argumentów możemy użyć zmiennych (jeżeli ich wartoość będzie się składać z liter i cyfr) lub znanych nam już poleceń. Nasze makro mogłoby więc wyglądać tak: Odczytywanie wartości z komórek odbywa się w sposób odwrotny do ich umieszczania. Przećwiczymy to na bardziej użytecznym przykładzie.o Ćwiczenie 2.3. Na podstawie tabliczki mnożenia, utworzonej w ćwiczeniu 2.1, utwórz procedurę, która na podstawie zaznaczonej komórki będzie pobierać dane. z: zaznaczonej komórki; komórki z pierwszego wiersza aktywnej kolumny; komórki z pierwszej kolumny aktywnego wiersza. Dane zostaną wyświetlone w postaci komunikatu (rysunek 2.3). Dodatkowo niech procedura wyświetla komunikaty tylko w przypadku kliknięcia koomórki w zakresie od do. Rozwiązanie

24 Tworzenie makr w VBA dla Excel 2002/XP PL. Ćwiczenia zaawansowane Rysunek 2.3. W oknie komunikatu wyświetlane są dane z pierwszych komórek aktywnego wiersza i kolumny oraz z aktywnej komórki Wskazówki W pierwszym wierszu procedurze nadawana jest nazwa. omakro zawsze rozpoczyna się słowem kluczowym, po którym podawana jest jego nazwa i ewentualnie parametry. W następnym wierszu zawarty jest warunek, że dalszeo czynności będą wykonane tylko wtedy, gdy aktywna komórka znajduje się nie niżej niż w 10. wierszu i nie dalej niż w 10. kolumnie arkusza. W kolejnych trzech wierszach z aktywnej (zaznaczonej) okomórki oraz pierwszych komórek kolumny i wiersza dane są pobierane i przypoisywane zmiennym. Przypisanie wartości komórek zmiennym ułatwi Ci zapisanie argumenotu dla polecenia w kolejnym wierszu kodu. Jak widać, pobranie danych zo komórek arkusza nie wymaga żadnych poleceń. Wystarczy operacja przypisania. Po wyświetleniu okna dialogowego (składnię polecenia o poznasz w dalszej części podręcznika) następuje zamknięcie sekwencji ooperacji wykonywanych po spełnieniu warunku początkowego ( ). Ostatnie słowo kluczowe informuje o końcu procedury (moakra). Pozostaje jeszcze pytanie: jak sprawić, aby makro było uruchamiane po każdym kliknięciu myszą? Decydują o tym procedury zdarzeniowe, których opis zawarty jest w czwartym rozdziale podręcznika. Zmienne i stałe Korzystanie ze stałych ma sens wtedy, gdy często stosujesz tę samą wartość w procedurze. Możesz na przykład za pomocą stałej wyrazić część komunikatu często wyświetlanego w oknie dialogowym. Stałe definiuje się za pomocą słoowa kluczowego : Niewątpliwą zaletą stałej jest to, że próba jej zmiany w jakikolwiek sposób jest niemożliwa i kończy się wyświetleniem komunikatu o błędzie (patroz rysunek 2.4).

Rozdział 2. Podstawy 25 Rysunek 2.4. Próba zmiany wartości zadeklarowanej jako stała niesie opłakane skutki W VBA rozpoznawane jest kilka typów zmiennych: 1. zmienna logiczna przybiera wartości lub. 2. wartości całkowite przybiera wartości od do (czyli tyle, ile jeden bajt). 3. wartości całkowite przybiera wartości od do. 4. wartości całkowite przybiera wartości od do. Jeżeli operujesz na adresach całego arkusza, musiszu pamiętać, że pojemność zmiennej zadeklarowanej jako jest zbyt mała. Arkusz ma bowiem 65 536 wierszy. Jeżelui więc dochodzi do deklaracji zmiennej przechowującej numeur wiersza, musisz użyć typu. 5. wartości liczb rzeczywistych przybiera wartości ood do z dokładnością 6 cyfr po przecinku. 6. wartości liczb rzeczywistych przybiera wartości ood do (z dokładnością do 14 cyfr po przecinku). 7. wartości kwot pieniężnych przybiera wartości od do (z dokładnością do czterech miejsc po przecinku). 8. zmienna tekstowa może zawierać tekst do 2 mld znoaków. 9. data i godzina może zawierać informacje o czasieo od 01.01.100 roku do 31.12.9999, przy czym data 31 grudnia 1899 jest reprezentowana przez wartość, 1 stycznia 1900 to wartość itd. Cyfry po przecinku oznaczają tak jak w arkuszuo Excela części doby, czyli godzinę. Czas przed 31.12.1899 reporezentowany jest przez liczby ujemne. Zauważ, że VBA w przeciwieństwie do arkusza Excela mouże wykorzystywać daty sprzed 1 stycznia 1900 roku. Należy jednak pamiętać, żeu nawet prawidłowo obliczonego wyniku sprzed roku 1900 nie uda się wyświetlić w arkusuzu roboczym w formacie daty. Musisz wspomóc się formatem tekstowym. 10. zmienna obiektowa może zawierać odwołanie do doowolnego obiektu, na przykład,, i wielu innych. Będziemy z niej często korzystać w dalszych ćwiczeniach. Istotne są tutaj dwoa fakty: zazwyczaj deklarujesz odpowiedni typ zmiennej obiektowej, a nie samą zmienną; aby przypisać wartość zmiennej obiektowej, musisz sokorzystać ze słowa kluczowego. Przykład: Aby przypisać zmiennej obiektowej arkusz Twojego skorooszytu, musisz wpisać:

26 Tworzenie makr w VBA dla Excel 2002/XP PL. Ćwiczenia zaawansowane Aby przypisać zmiennej pasek narzędzi, wpisz: W tym przypadku zmiennej został przypisany pasek naorzędzi Formularze. Jak widać, użyłem od razu deklaracji. Należy raczej unikać deklaracji i stosować ją tylko wtedy, gdy nie wiadomo, jakiego obiektu się spodziewamy. 11. to zmienna uniwersalna. Może zawierać zarówno wartoość logiczną () czy łańcuch znaków, jak i datę czy liczbę wielkości o. Visual Basic nie wymaga deklaracji zmiennych. Jeżeli nie dokonasz tej czynności, program przypisze użytym przez Ciebie zmiennym typ. Po co więc to wszystko? Deklarowanie zmiennych pozwala programowi panować naod błędami wynikającymi z pomyłek (zamierzonych lub nie) przy wprowadzaniu daonych przez użytkownika. Nie jest bowiem możliwe przypisanie łańcucha tekstowego zmiennej zadeklarowanej jako na przykład. Zmienne typu rezerwują sobie nawet 20 i więcej razy (!) miejsca nioż zajmowałaby zadeklarowana zmienna innego typu. Jest soię więc nad czym zastanowić, szczególnie gdy nie pracujesz na superkomputerze, w otle ściągasz kilka plików z Internetu, korzystasz z czata, a z głośników sączy osię muzyczka z plików mp3. Warto deklarować wszystkie zmienne. Wiem z doświadczenia, że zdarza się użycie zmiennej o tej samej nazwie (nadawanej najczęściej iontuicyjnie) w tym samym programie do przechowywania różnych danych. Efekty takioego postępowania bywają komiczne tylko wtedy, gdy masz wielkie poczucie humooru i dużo wolnego czasu. W przeciwnym wypadku lepiej zajrzeć do obszaru dekloaracji zmiennych i wybrać nieużywaną jeszcze nazwę. Deklarowanie zmiennych i ich zasięg Zanim rozpoczniesz ćwiczenia z deklaracjami zmiennych, musisz poznać jeszcze kilka ograniczeń dotyczących ich nazw. Nazwa zmiennej: musi rozpoczynać się od litery; nie może być nazwą polecenia, funkcji ani słowa kluoczowego; nie może zawierać spacji; może być kombinacją liter i cyfr. Zmienne lokalne Zmienne deklaruje się za pomocą słowa kluczowego lub. Różnice między sposobami deklaracji zmiennych wyjaśni poniższe ćwicozenie.

Rozdział 2. Podstawy 27 Ćwiczenie 2.4. Zadeklaruj zmienne w programie za pomocą słów Dim i Static. Dodawaj zmienne do uprzednio wyliczonego wyniku i wyświetl go. Uruchom makro kilkakrotnie. Policz, ile razy uruchomiłeś makro. Rozwiązanie Różnice w działaniu sposobu deklaracji przedstawia roysunek 2.5. Rysunek 2.5. Zmienne wynik_dim i wynik_static są wynikiem tych samych obliczeń. Jednak sposób deklaracji powoduje, że po kilku uruchomieniach makra wyniki znacznie się różną Wyjaśnienia Pierwsze trzy wiersze kodu to nagłówek procedury i doeklaracje zmiennych. Następny wiersz jest komentarzem. Na jego początku znoajduje się apostrof, więc zawartość wiersza nie jest analizowana przez porogram. W piątym wierszu następuje przypisanie wartości zmieonnym. Zmienna przyjmuje wartość, a zmienna wartość zmiennej. Zmienna przyjmuje wartość, bowiem nie jest znany przy pierwszym uruchomieniu makra. Stąd w wierszu szóstym wartość zmiennej wynosi, czyli co jest widoczne w oknie informacyjnym na rysunkuo 2.3. W wierszach 7. 9. powyższe czynności są powtarzane w sotosunku do kolejnych zmiennych. W wierszu 10. zmienna jest zwiększana o po każdym wykonaniu programu. Wartość początkowa zmiennej nie została ustalona, a jej typ to, więc program przyjął dla niej początkową wartość zeroo. Przy kolejnym uruchomieniu makra zmiennym zadeklaroowanym słowem kluczowym zostają przywrócone domyślne wartości początkowe. A zatem wartości zmiennych i ponownie wynoszą zero.

28 Tworzenie makr w VBA dla Excel 2002/XP PL. Ćwiczenia zaawansowane Inaczej jest ze zmiennymi zadeklarowanymi za pomocąo słowa. Ich wartości nie są zerowane. Przy drugim uruchomieniu możliwe jeost więc powiększenie licznika do, a zmienna przyjmie wówczas wartość, obliczoną w czasie poprzedniego uruchomienia makra. W związku z tym wartość zmiennej o po drugim uruchomieniu makra będzie wynosić. Wartości omawianych zmiennych po jedenastu uruchomienioach makra widoczne są na rysunku 2.5. Sposób wyświetlania komunikatów za pomocą polecenia zostanie wyjaśniony w dalszej części podręcznika. W zależności od miejsca, w którym dokonasz deklaracji, zmienne będą miały różny zasięg. Jeżeli zmienne zadeklarowano wewnątrz makra (funkcji), będą one dotyczyć tylko tegoż makra (funkcji) i poza nim nie będą odczytywane. Zmienne takie nazywamy zmiennymi lokalnymi. To wszystkie zmienne, które deklarowałeś dotychczas. Zmienne modułu i zmienne publiczne Budując bardziej złożony program, dojdziesz do wniosku, że w celu zmniejszenia objętości kodu dobrze jest wydzielić często powtarzane czynności (na przykład wyświetlanie komunikatów), umieszczając je w osobnych programach, uruchamianych przez inne makra tylko wtedy, gdy jest to potrzebne. Wyjaśni to poniższe ćwiczenie. Ćwiczenie 2.5. Utwórz dwa makra: jedno odczytujące dane z arkusza, a drugie wyświetlające odczytane dane w oknie komunikatu. Przekaż wartości między makra.mi za pomocą zmiennych. Rozwiązanie Wyjaśnienia Makro pobierz_dane odczytuje wartość komórki i przypisuje ją zmiennej. Dodatkowo ustalana jest wartość zmiennej, która jest wykorzystywana przez makro komunikat. Po nadaniu wartości wykonywane jest makro komunikat, mające na celu wyświetlenie na ekranie wartości zmiennych.

Rozdział 2. Podstawy 29 Rysunek 2.6. Mimo że składniowo wszystko jest w porządku, nie takiego efektu się spodziewaliśmy Wpisz do komórki dowolną wartość i uruchom makro pobierz_dane. Jego efekty ilustruje rysunek 2.6. W oknie komunikatu nie zostały wyświetlone żadne informacje, ponieważ nie zadeklarowano zmiennych na poziomie modułu. VBA uznał zatem, że ich wartości obowiązują tylko w obrębie makra, w którym zostały użyte. Aby możliwe było przekazywanie wartości zmiennych między makrami (funkcjami), musisz je zadeklarować na poziomie modułu. Dokonuje się tego na początku modułu, przed pierwszym słowem lub. Tak zadeklarowane zmienne nazywamy (jak nietrudno się domyślić) zmiennymi modułu. Kompletna zawartość modułu powinna więc wyglądać tak: Komentarz Makro wyświetl może oczywiście być uruchamiane przez użytkownika, z tym że nie ma on możliwości podania wymaganych przoez nie zmiennych. Najbardziej funkcjonalnym jego wykorzystaniem będzie oustalanie wartości zmiennych w poszczególnych makrach i wywoływanie ich noazw tak, jak zostało to przedstawione w powyższym przykładzie. Masz więc oraz napisane makro, które możesz przywoływać w dowolnym miejscu programuo. Polecenie wymusza deklarowanie wszystkich zmiennych. Jeżeli podczas wykonywania makra zostanie wykryta noie zadeklarowana zmienna, spowoduje to błąd programu (patrz rysunek 2.7). Rysunek 2.7. Polecenie Option Explicit wymusza porządek w kodzie Twojego programu. Żadna nie zadeklarowana zmienna nie ma racji bytu

30 Tworzenie makr w VBA dla Excel 2002/XP PL. Ćwiczenia zaawansowane Zauważ, że w deklaracji nie podałem typu zmiennych. Porogram domyślnie przypisał im typ. W tym wypadku deklaracja nie miała na celu określenoie typu, lecz zasięgu zmiennych. Teraz ich wartości będą odczytoywane przez wszystkie makra i funkcje umieszczone w module. Możliwe jest także zadeklarowanie zmiennych modułu zoa pomocą słowa kluczowego. Zasięg zmiennych jest taki sam: będą one dostępne w omodule, w którym zostały użyte. Powyższe makra będą przekazywać między sobą wartości pod warunkiem, że zostały umieszczone w tym samym module. Często jednak zdarza się, że dla zwiększenia przejrzystości procedury (podprogramy) wywoływane przez inne programy umieszcza się w oddzielnym module. Aby zapewnić przenoszenie wartości zmiennych pomiędzy wszystkimi elementami programu, należy zadeklarować je (w dowolnym module) za pomocą słowa kluczowego. Tak zadeklarowane zmienne nazywamy zmiennymi publicznymi.