Cyfroteka.pl

klikaj i czytaj online

Cyfro
Czytomierz
00462 009712 11027423 na godz. na dobę w sumie
Tworzenie makr w VBA dla Excela 2002/XP PL. Ćwiczenia zaawansowane - książka
Tworzenie makr w VBA dla Excela 2002/XP PL. Ćwiczenia zaawansowane - książka
Autor: Liczba stron: 180
Wydawca: Helion Język publikacji: polski
ISBN: 83-7361-204-1 Data wydania:
Lektor:
Kategoria: ebooki >> komputery i informatyka >> aplikacje biurowe >> vba - programowanie
Porównaj ceny (książka, ebook, audiobook).
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:
Znajdź podobne książki Ostatnio czytane w tej kategorii

Darmowy fragment publikacji:

Tworzenie makr w VBA dla Excela 2002/XP PL. Æwiczenia zaawansowane Autor: Miros³aw Lewandowski ISBN: 83-7361-204-1 Format: B5, stron: 178 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 IDZ DO IDZ DO PRZYK£ADOWY ROZDZIA£ PRZYK£ADOWY ROZDZIA£ SPIS TREĎCI SPIS TREĎCI KATALOG KSI¥¯EK KATALOG KSI¥¯EK KATALOG ONLINE KATALOG ONLINE ZAMÓW DRUKOWANY KATALOG ZAMÓW DRUKOWANY KATALOG TWÓJ KOSZYK TWÓJ KOSZYK DODAJ DO KOSZYKA DODAJ DO KOSZYKA CENNIK I INFORMACJE CENNIK I INFORMACJE ZAMÓW INFORMACJE ZAMÓW INFORMACJE O NOWOĎCIACH O NOWOĎCIACH ZAMÓW CENNIK ZAMÓW CENNIK CZYTELNIA CZYTELNIA FRAGMENTY KSI¥¯EK ONLINE FRAGMENTY KSI¥¯EK ONLINE Wydawnictwo Helion ul. Chopina 6 44-100 Gliwice tel. (32)230-98-63 e-mail: helion@helion.pl Spis treści Zapytaj Autora przez Internet!...................................................o......................................................... 5 Rozdział 1. 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 Rozdział 2. 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........45 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 Rozdział 3. 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 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 Rozdział 4. 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 zauto- matyzować 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żli- wości zapisania operacji warunkowej, przypisywania zmiennej czy wyświetlenia okien dialogowych. Dobrze byłoby zatem poznać podstawowe polecenia i struktury, odpo- wiedzialne za wykonywanie operacji, których rejestrowanie jest niemożliwe lub przy- najmniej 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. Utwórz arkusz tabliczki mnożenia w zakresie od 1 do 10 według rysunku 2.1. Pomiń formatowanie. Rysunek 2.1. Arkusz tabliczki mnożenia Rozwiązanie 1. 2. 3. Otwórz nowy skoroszyt, uruchom edytor VBA (Alt+F11) i wstaw moduł (Insert/Module). W module wprowadź następujący kod: 5WDVCDNKEMCAOPQľGPKC (QTYKGTU6Q (QTMQNWOPC6Q  GNNU YKGTUMQNWOPC YKGTU MQNWOPC 0GZVMQNWOPC 0GZVYKGTU PF5WD Ustaw kursor w obrębie makra i naciśnij klawisz F5, aby uruchomić makro. Wyjaśnienia Zastosowane tu zostały instrukcje pętli (struktury (QT0GZV). Poznasz je w dalszych rozdziałach tego podręcznika. Wpisanie wartości do komórki dokonywane jest w poniższym wierszu kodu: GNNU YKGTUMQNWOPC YKGTU MQNWOPC Właściwość GNNU, określająca adres komórki, posiada dwa argumenty. Jak widać w instruk- cji (QT0GZV, zmienne YKGTU i MQNWOPC przyjmują wartości od  do . W poleceniu GNNU 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 ry- sunek 2.2), który sam podpowie, czego od Ciebie oczekujeo. Rysunek 2.2. Podpowiedzi edytora VBA bywają bardzo pomocne Rozdział 2. (cid:1) Podstawy Ćwiczenie 2.2. 23 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. 5WDY[RGđPKL 4CPIG #, +PVGTKQT QNQT+PFGZ 4CPIG ## +PVGTKQT QNQT+PFGZ PF5WD Wskazówki (cid:1) Zauważ, że w różny sposób wpisano argumenty 4CPIG. Obydwa sposoby są poprawne. (cid:1) Jak widać, za pomocą 4CPIG możemy zaznaczać całe zakresy komórek. (cid:1) 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ń GNNU. Nasze makro mogłoby więc wyglądać tak: 5WDY[RGđPKL C# D, 4CPIG CD +PVGTKQT QNQT+PFGZ 4CPIG GNNU   GNNU  +PVGTKQT QNQT+PFGZ PF5WD 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: (cid:1) zaznaczonej komórki; (cid:1) komórki z pierwszego wiersza aktywnej kolumny; (cid:1) 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 5WDRQDKGTCLAFCPG +H#EVKXG GNN4QY#PF#EVKXG GNN QNWOP6JGP C#EVKXG GNN8CNWG OPQľP GNNU #EVKXG GNN4QY OPQľP GNNU #EVKXG GNN QNWOP /UI$QZ OPQľPTC[OPQľPC PF+H PF5WD 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 (cid:1) W pierwszym wierszu procedurze nadawana jest nazwa. oMakro zawsze rozpoczyna się słowem kluczowym 5WD, po którym podawana jest jego nazwa i ewentualnie parametry. (cid:1) 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. (cid:1) 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 /UI$QZ w kolejnym wierszu kodu. Jak widać, pobranie danych zo komórek arkusza nie wymaga żadnych poleceń. Wystarczy operacja przypisania. (cid:1) Po wyświetleniu okna dialogowego (składnię polecenia o/UI$QZ poznasz w dalszej części podręcznika) następuje zamknięcie sekwencji ooperacji wykonywanych po spełnieniu warunku początkowego ( PF+H). (cid:1) 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 QPUV: QPUVC9CTVQħèMQOÎTMKY[PQUK QPUVD 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. (cid:1) Podstawy Rysunek 2.4. Próba zmiany wartości zadeklarowanej jako stała niesie opłakane skutki 25 W VBA rozpoznawane jest kilka typów zmiennych: 1. 2. 3. 4. 5. 6. 7. 8. 9. $QQNGCP — zmienna logiczna — przybiera wartości VTWG lub HCNUG. $[VG — wartości całkowite — przybiera wartości od  do  (czyli tyle, ile jeden bajt). +PVGIGT — wartości całkowite — przybiera wartości od Ō  do . .QPI — 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 +PVGIGT 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 .QPI. 5KPING — wartości liczb rzeczywistych — przybiera wartości ood Ōª do ª z dokładnością 6 cyfr po przecinku. QWDNG — wartości liczb rzeczywistych — przybiera wartości ood –ª do ª (z dokładnością do 14 cyfr po przecinku). WTTGPE[ — wartości kwot pieniężnych — przybiera wartości od Ōª do ª (z dokładnością do czterech miejsc po przecinku). 5VTKPI — zmienna tekstowa — może zawierać tekst do 2 mld znoaków. CVG — 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. 1DLGEV — zmienna obiektowa — może zawierać odwołanie do doowolnego obiektu, na przykład 9QTMUJGGV, 4CPIG, QOOCPF$CT i wielu innych. Będziemy z niej często korzystać w dalszych ćwiczeniach. Istotne są tutaj dwoa fakty: (cid:1) zazwyczaj deklarujesz odpowiedni typ zmiennej obiektowej, a nie samą zmienną; (cid:1) aby przypisać wartość zmiennej obiektowej, musisz sokorzystać ze słowa kluczowego 5GV. Przykład: Aby przypisać zmiennej obiektowej arkusz Twojego skorooszytu, musisz wpisać: KOOKGPPCAQDKGMVQYC#U9QTMUJGGV 5GVOKGPPCAQDKGMVQYC5JGGVU #TMWU 26 Tworzenie makr w VBA dla Excel 2002/XP PL. Ćwiczenia zaawansowane Aby przypisać zmiennej pasek narzędzi, wpisz: KOOKGPPCAQDKGMVQYC#U QOOCPF$CT 5GVOKGPPCAQDKGMVQYC#RRNKECVKQP QOOCPF$CTU  W tym przypadku zmiennej został przypisany pasek naorzędzi Formularze. Jak widać, użyłem od razu deklaracji KOOKGPPCCU9QTMUJGGV. Należy raczej unikać deklaracji KOOKGPPCCU1DLGEV i stosować ją tylko wtedy, gdy nie wiadomo, jakiego obiektu się spodziewamy. 11. 8CTKCPV — to zmienna uniwersalna. Może zawierać zarówno wartoość logiczną ($QQNGCP) czy łańcuch znaków, jak i datę czy liczbę wielkości o QWDNG. Visual Basic nie wymaga deklaracji zmiennych. Jeżeli nie dokonasz tej czynności, program przypisze użytym przez Ciebie zmiennym typ 8CTKCPV. Po co więc to wszystko? (cid:1) (cid:1) 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 CVG. Zmienne typu 8CTKCPV 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. (cid:1) 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: (cid:1) musi rozpoczynać się od litery; (cid:1) nie może być nazwą polecenia, funkcji ani słowa kluoczowego; (cid:1) nie może zawierać spacji; (cid:1) może być kombinacją liter i cyfr. Zmienne lokalne Zmienne deklaruje się za pomocą słowa kluczowego KO lub 5VCVKE. Różnice między sposobami deklaracji zmiennych wyjaśni poniższe ćwicozenie. Rozdział 2. (cid:1) Podstawy Ćwiczenie 2.4. 27 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 5WDOKGPPG KOCDY[PKMAFKO#U+PVGIGT 5VCVKEEFGY[PKMAUVCVKE#U+PVGIGT FQFCYCPKGOKGPP[EJFKO CDY[PKMAFKO Y[PKMAFKOC D FQFCYCPKGOKGPP[EJUVCVKE EFY[PKMAUVCVKE Y[PKMAUVCVKEE F GG  /UI$QZ Y[PKMFKOY[PKMAFKO JT  Y[PKMUVCVKEY[PKMAUVCVKEA  JT  OCMTQWTWEJQOKQPQGTC[ PF5WD 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 (cid:1) Pierwsze trzy wiersze kodu to nagłówek procedury i doeklaracje zmiennych. (cid:1) Następny wiersz jest komentarzem. Na jego początku znoajduje się apostrof, więc zawartość wiersza nie jest analizowana przez porogram. (cid:1) W piątym wierszu następuje przypisanie wartości zmieonnym. Zmienna C przyjmuje wartość , a zmienna D wartość zmiennej Y[PKMAFKO. Zmienna D przyjmuje wartość , bowiem Y[PKMAFKO nie jest znany przy pierwszym uruchomieniu makra. (cid:1) Stąd w wierszu szóstym wartość zmiennej Y[PKMAFKO wynosi  , czyli  — co jest widoczne w oknie informacyjnym na rysunkuo 2.3. (cid:1) W wierszach 7. – 9. powyższe czynności są powtarzane w sotosunku do kolejnych zmiennych. (cid:1) W wierszu 10. zmienna G jest zwiększana o  po każdym wykonaniu programu. Wartość początkowa zmiennej G nie została ustalona, a jej typ to +PVGIGT, więc program przyjął dla niej początkową wartość zeroo. (cid:1) Przy kolejnym uruchomieniu makra zmiennym zadeklaroowanym słowem kluczowym FKO zostają przywrócone domyślne wartości początkowe. A zatem wartości zmiennych D i Y[PKMAFKO ponownie wynoszą zero. 28 Tworzenie makr w VBA dla Excel 2002/XP PL. Ćwiczenia zaawansowane (cid:1) Inaczej jest ze zmiennymi zadeklarowanymi za pomocąo słowa UVCVKE. Ich wartości nie są zerowane. Przy drugim uruchomieniu możliwe jeost więc powiększenie „licznika” G do , a zmienna F przyjmie wówczas wartość , obliczoną w czasie poprzedniego uruchomienia makra. W związku z tym wartość zmiennej oY[PKMAUVCVKE po drugim uruchomieniu makra będzie wynosić . (cid:1) Wartości omawianych zmiennych po jedenastu uruchomienioach makra widoczne są na rysunku 2.5. (cid:1) Sposób wyświetlania komunikatów za pomocą polecenia /UI$QZ 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 za- się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 zmien- nymi 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 ob- jętości kodu dobrze jest wydzielić często powtarzane czynności (na przykład wyświe- tlanie 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 5WDRQDKGTAFCPG YCTVAMQOÎTMK GNNU  VGMUV9CTVQħèMQOÎTMK#Y[PQUK MQOWPKMCV PF5WD 5WDMQOWPKMCV /UI$QZ VGMUVYCTVAMQOÎTMK PF5WD Wyjaśnienia (cid:1) (cid:1) Makro pobierz_dane odczytuje wartość komórki # i przypisuje ją zmiennej YCTVAMQOÎTMK. Dodatkowo ustalana jest wartość zmiennej VGMUV, która jest wykorzystywana przez makro komunikat. (cid:1) Po nadaniu wartości wykonywane jest makro komunikat, mające na celu wyświetlenie na ekranie wartości zmiennych. Rozdział 2. (cid:1) Podstawy 29 Wpisz do komórki # dowolną wartość i uruchom makro pobierz_dane. Jego efekty ilu- struje rysunek 2.6. Rysunek 2.6. Mimo że składniowo wszystko jest w porządku, nie takiego efektu się spodziewaliśmy W oknie komunikatu nie zostały wyświetlone żadne informacje, ponieważ nie zadekla- rowano 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 UWD lub HWPEVKQP. Tak zadeklarowane zmienne nazywamy (jak nietrudno się domyślić) zmiennymi modułu. Kompletna zawartość modułu powinna więc wyglądać tak: 1RVKQP ZRNKEKV KOVGMUVYCTVAMQOÎTMK 5WDRQDKGTAFCPG YCTVAMQOÎTMK GNNU  VGMUV9CTVQħèMQOÎTMK#Y[PQUK Y[ħYKGVN PF5WD 5WDY[ħYKGVN /UI$QZ VGMUVYCTVAMQOÎTMK PF5WD Komentarz (cid:1) 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. (cid:1) Polecenie 1RVKQP ZRNKEKV 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 (cid:1) Zauważ, że w deklaracji nie podałem typu zmiennych. Porogram domyślnie przypisał im typ 8CTKCPV. 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. (cid:1) Możliwe jest także zadeklarowanie zmiennych modułu zoa pomocą słowa kluczowego RTKXCVG. Zasięg zmiennych jest taki sam: będą one dostępne w omodule, w którym zostały użyte. 2TKXCVGVGMUVYCTVAMQOÎTMK 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 2WDNKE. 2WDNKEVGMUVYCTVAMQOÎTMK Tak zadeklarowane zmienne nazywamy zmiennymi publicznymi.
Pobierz darmowy fragment (pdf)

Gdzie kupić całą publikację:

Tworzenie makr w VBA dla Excela 2002/XP PL. Ćwiczenia zaawansowane
Autor:

Opinie na temat publikacji:


Inne popularne pozycje z tej kategorii:


Czytaj również:


Prowadzisz stronę lub blog? Wstaw link do fragmentu tej książki i współpracuj z Cyfroteką: