Cyfroteka.pl

klikaj i czytaj online

Cyfro
Czytomierz
00115 009755 10452526 na godz. na dobę w sumie
Programowanie w Excelu 2007 PL. Niebieski podręcznik - książka
Programowanie w Excelu 2007 PL. Niebieski podręcznik - książka
Autor: Liczba stron: 350
Wydawca: Helion Język publikacji: polski
ISBN: 978-83-246-1663-3 Data wydania:
Lektor:
Kategoria: ebooki >> komputery i informatyka >> aplikacje biurowe >> excel
Porównaj ceny (książka, ebook, audiobook).

Wykorzystaj niezwykłe możliwości Excela i spraw, aby pracował za Ciebie

Excel -- najpopularniejszy elektroniczny arkusz kalkulacyjny -- udostępnia narzędzie do zautomatyzowania czynności wykonywanych w tym programie. Jest to język programowania nazywany Visual Basic for Applications (VBA). Pozwala on na tworzenie makr, czyli zapisu pewnej sekwencji poleceń, które mogą zostać automatycznie wykonane jako całość. Zapisanie makr w rejestratorze i przygotowanie w ten sposób konkretnego dokumentu, na przykład raportu miesięcznego, sprawia, że każdy następny tego rodzaju dokument Excel wykonuje samodzielnie. Dzięki VBA można także modyfikować makra oraz tworzyć bloki poleceń, przygotowywać własne aplikacje i dodatki do programu głównego.

Książka 'Programowanie w Excelu 2007 PL. Niebieski podręcznik' to przewodnik, który w prosty i przejrzysty sposób zapozna Cię z systemem makr Excela. Dokładnie opisano tu ponad 140 technik programowania, które dodatkowo zostały bogato zilustrowane za pomocą ułatwiających zrozumienie materiału zrzutów ekranowych. Dzięki temu dowiesz się, na czym polega deklarowanie tablic wielowymiarowych i cyfrowe podpisywanie makr. Nauczysz się, jak modyfikować wstążkę poleceń, tworzyć makra, zmienne obiektowe i własne dodatki. Będziesz umiał tak zautomatyzować czynności programu przy tworzeniu dokumentów, aby to Excel pracował za Ciebie.

Patrz i ucz się, jak wykorzystać możliwości programu, aby pracować szybko i bez wysiłku!

Znajdź podobne książki Ostatnio czytane w tej kategorii

Darmowy fragment publikacji:

Programowanie w Excelu 2007 PL. Niebieski podrŒcznik Autor: Denise Etheridge T‡umaczenie: Pawe‡ Koronkiewicz ISBN: 978-83-246-1663-3 Tytu‡ orygina‡u: Microsoft Office Excel 2007 Programming: Your visual blueprint for creating interactive spreadsheets (Visual Blueprint) Format: 170x230, stron: 360 Wykorzystaj niezwyk‡e mo¿liwo(cid:156)ci Excela i spraw, aby pracowa‡ za Ciebie (cid:149) Jak stworzy(cid:230) w‡asne okno dialogowe w edytorze VBA? (cid:149) Jak otwiera(cid:230) i modyfikowa(cid:230) pliki XML w Excelu? (cid:149) Jak przypisywa(cid:230) makra do paska szybkiego dostŒpu? Excel (cid:151) najpopularniejszy elektroniczny arkusz kalkulacyjny (cid:151) udostŒpnia narzŒdzie do zautomatyzowania czynno(cid:156)ci wykonywanych w tym programie. Jest to jŒzyk programowania nazywany Visual Basic for Applications (VBA). Pozwala on na tworzenie makr, czyli zapisu pewnej sekwencji poleceæ, kt(cid:243)re mog„ zosta(cid:230) automatycznie wykonane jako ca‡o(cid:156)(cid:230). Zapisanie makr w rejestratorze i przygotowanie w ten spos(cid:243)b konkretnego dokumentu, na przyk‡ad raportu miesiŒcznego, sprawia, ¿e ka¿dy nastŒpny tego rodzaju dokument Excel wykonuje samodzielnie. DziŒki VBA mo¿na tak¿e modyfikowa(cid:230) makra oraz tworzy(cid:230) bloki poleceæ, przygotowywa(cid:230) w‡asne aplikacje i dodatki do programu g‡(cid:243)wnego. Ksi„¿ka (cid:132)Programowanie w Excelu 2007 PL. Niebieski podrŒcznik(cid:148) to przewodnik, kt(cid:243)ry w prosty i przejrzysty spos(cid:243)b zapozna CiŒ z systemem makr Excela. Dok‡adnie opisano tu ponad 140 technik programowania, kt(cid:243)re dodatkowo zosta‡y bogato zilustrowane za pomoc„ u‡atwiaj„cych zrozumienie materia‡u zrzut(cid:243)w ekranowych. DziŒki temu dowiesz siŒ, na czym polega deklarowanie tablic wielowymiarowych i cyfrowe podpisywanie makr. Nauczysz siŒ, jak modyfikowa(cid:230) wst„¿kŒ poleceæ, tworzy(cid:230) makra, zmienne obiektowe i w‡asne dodatki. BŒdziesz umia‡ tak zautomatyzowa(cid:230) czynno(cid:156)ci programu przy tworzeniu dokument(cid:243)w, aby to Excel pracowa‡ za Ciebie. Wydawnictwo Helion ul. Ko(cid:156)ciuszki 1c 44-100 Gliwice tel. 032 230 98 63 e-mail: helion@helion.pl (cid:149) Visual Basic for Applications (cid:149) Makra i formanty (cid:149) Model obiekt(cid:243)w Excela (cid:149) Deklarowanie tablic (cid:149) Instrukcje steruj„ce (cid:149) Funkcje arkuszy (cid:149) Debugowanie kodu (cid:149) Skoroszyty i pliki (cid:149) Arkusze i wykresy (cid:149) Praca z zakresami kom(cid:243)rek (cid:149) Zdarzenia (cid:149) Pliki XML Patrz i ucz siŒ, jak wykorzysta(cid:230) mo¿liwo(cid:156)ci programu, aby pracowa(cid:230) szybko i bez wysi‡ku! Spis treści Jak używać tej książki ........................................................xii Rozdział 1. Makra i formanty ............................................... 2 Programowanie w Excelu — wprowadzenie ..................................................................................... 2 Makra — wprowadzenie ......................................................................................................................... 4 Zabezpieczenia przed uruchamianiem makr.................................................................................... 6 Tworzenie podpisu cyfrowego .............................................................................................................. 7 Rejestrowanie makr .................................................................................................................................. 8 Przypisywanie podpisu cyfrowego ....................................................................................................10 Uruchamianie makr ................................................................................................................................12 Skróty klawiaturowe ...............................................................................................................................14 Makra na pasku narzędzi Szybki dostęp ......................................................................................... 16 Usuwanie makr ........................................................................................................................................18 Korzystanie z formantów .....................................................................................................................20 Definiowanie parametrów formantu .................................................................................................22 Powiązanie formantu z makrem .........................................................................................................24 Rozdział 2. Edytor Visual Basic ........................................... 26 Edytor Visual Basic — wprowadzenie .............................................................................................26 Wyświetlanie edytora VBA .................................................................................................................28 Wyświetlanie okienek edytora ............................................................................................................30 Właściwości projektu .............................................................................................................................32 Opcje wyświetlania kodu .....................................................................................................................34 Nowy moduł .............................................................................................................................................36 Usuwanie modułu ...................................................................................................................................38 Ukrywanie makr ......................................................................................................................................40 Modyfikowanie makr .............................................................................................................................42 Rozdział 3. Visual Basic for Applications ............................... 44 Procedury ..................................................................................................................................................44 Funkcje .......................................................................................................................................................46 Komentarze ...............................................................................................................................................48 Zmienne i typy danych ..........................................................................................................................50 Odwołania do komórek i zakresów komórek ..................................................................................52 Deklarowanie zmiennych .....................................................................................................................54 Praca z liczbami .......................................................................................................................................56 iv Praca z ciągami znakowymi .................................................................................................................58 Stałe .............................................................................................................................................................60 Rozdział 4. Model obiektów Excela ...................................... 62 Model obiektów Excela — wprowadzenie.......................................................................................62 Korzystanie z opisu modelu obiektów .............................................................................................64 Zmienne obiektowe .................................................................................................................................66 Właściwości obiektu ...............................................................................................................................68 Porównywanie zmiennych obiektowych ..........................................................................................70 Metody obiektu ........................................................................................................................................72 Wyświetlanie standardowych okien dialogowych ........................................................................74 Rozdział 5. Tablice ............................................................ 76 Deklarowanie tablic ................................................................................................................................76 Deklarowanie tablic wielowymiarowych .........................................................................................78 Inicjowanie tablic ....................................................................................................................................80 Zmiana rozmiaru tablicy .......................................................................................................................82 Typy danych użytkownika ....................................................................................................................84 Rozdział 6. Instrukcje sterujące .......................................... 86 Operatory porównania ...........................................................................................................................86 Operatory logiczne .................................................................................................................................87 Pętla Do While .........................................................................................................................................88 Pętla Do Until ..........................................................................................................................................90 Pętla For Next ..........................................................................................................................................92 Pętla For Each In .....................................................................................................................................94 Instrukcja If Then Else ..........................................................................................................................96 Instrukcja Select Case ...........................................................................................................................98 Instrukcja skoku GoTo ........................................................................................................................ 100 Wywoływanie procedur ..................................................................................................................... 102 Rozdział 7. Funkcje arkuszy ............................................. 104 Korzystanie z funkcji arkuszy ......................................................................................................... 104 Operatory logiczne .............................................................................................................................. 105 Funkcja MsgBox .................................................................................................................................. 106 Funkcja InputBox ................................................................................................................................ 108 v Spis treści Bieżąca data i godzina .........................................................................................................................110 Operacje na wartościach daty i godziny ........................................................................................112 Formatowanie dat i godzin .................................................................................................................114 Formatowanie liczb ..............................................................................................................................116 Zmiana wielkości liter .........................................................................................................................118 Wyodrębnianie części ciągu znakowego ....................................................................................... 120 Rozdział 8. Debugowanie kodu .......................................... 122 Punkty przerwania ............................................................................................................................... 122 Korzystanie z okna Watches ............................................................................................................. 124 Krokowe wykonywanie procedury ................................................................................................. 126 Okno wykonania bezpośredniego — Immediate ........................................................................ 128 Kontynuowanie pracy po wystąpieniu błędu ...............................................................................130 Błędy czasu wykonania .......................................................................................................................132 Rozdział 9. Skoroszyty i pliki ............................................ 134 Otwieranie skoroszytu .........................................................................................................................134 Otwieranie pliku tekstowego .............................................................................................................136 Otwieranie pliku wybranego przez użytkownika ........................................................................138 Zapisywanie skoroszytu ..................................................................................................................... 140 Zapisywanie skoroszytu w formacie wybranym przez użytkownika .................................. 142 Sprawdzanie, czy skoroszyt jest otwarty ...................................................................................... 144 Zamykanie skoroszytu ........................................................................................................................ 146 Nowy skoroszyt ..................................................................................................................................... 148 Usuwanie pliku ..................................................................................................................................... 150 Rozdział 10. Arkusze .......................................................152 Nowy arkusz .......................................................................................................................................... 152 Usuwanie arkusza ................................................................................................................................ 154 Przenoszenie arkusza .......................................................................................................................... 156 Kopiowanie arkusza ............................................................................................................................ 158 Ukrywanie arkusza ...............................................................................................................................160 Zmiana nazwy arkusza ........................................................................................................................162 Zapisywanie arkusza w innymi pliku .............................................................................................164 Zabezpieczanie arkusza danych .......................................................................................................166 Zabezpieczanie arkusza wykresu .....................................................................................................168 Drukowanie arkusza ............................................................................................................................ 170 Sortowanie arkuszy według nazw ................................................................................................... 172 vi Rozdział. 11. Praca z zakresami komórek ........................... 174 Właściwość Range ............................................................................................................................... 174 Właściwość Cells.................................................................................................................................. 176 Łączenie zakresów ............................................................................................................................... 178 Właściwość Offset ................................................................................................................................180 Usuwanie zakresów ..............................................................................................................................182 Ukrywanie zakresów ............................................................................................................................184 Nadawanie nazwy zakresu .................................................................................................................186 Zmiana obszaru zakresu ......................................................................................................................188 Wstawianie zakresu ..............................................................................................................................190 Ustawianie szerokości kolumn zakresu ..........................................................................................192 Ustawianie wysokości wierszy zakresu .........................................................................................194 Dzielenie kolumny tekstowej .............................................................................................................196 Część wspólna zakresów .....................................................................................................................198 Rozdział 12. Praca z komórkami ...................................... 200 Wycinanie i wklejanie zakresów ..................................................................................................... 200 Kopiowanie i wklejanie zakresów ................................................................................................... 202 Opcje wklejania specjalnego ............................................................................................................ 204 Komentarze ............................................................................................................................................ 206 Wypełnianie zakresu komórek wartościami ................................................................................ 208 Kopiowanie zakresu do wielu arkuszy .......................................................................................... 210 Obramowanie komórek ....................................................................................................................... 212 Przeszukiwanie danych ...................................................................................................................... 214 Wyszukiwanie i zamiana ....................................................................................................................216 Rozdział 13. Okna dialogowe i Wstążka ............................. 218 Formularze — wprowadzenie ............................................................................................................218 Okna dialogowe użytkownika ........................................................................................................... 220 Wywołania okien dialogowych ........................................................................................................ 222 Zapisywanie wartości z okna dialogowego ................................................................................... 224 Sprawdzanie wprowadzanych danych ........................................................................................... 228 Tworzenie elementów sterujących .................................................................................................. 230 Szablony okien dialogowych ............................................................................................................. 232 Plik customUI.xml .............................................................................................................................. 234 Modyfikowanie Wstążki .................................................................................................................... 236 Specjalne elementy Wstążki ............................................................................................................. 238 vii Spis treści Rozdział 14. Wykresy ..................................................... 242 Nowy arkusz wykresu......................................................................................................................... 242 Osadzanie wykresu w arkuszu danych ......................................................................................... 244 Kreator wykresów, czyli metoda ChartWizard ........................................................................... 246 Dołączanie nowej serii danych ........................................................................................................ 248 Formatowanie elementów tekstowych ........................................................................................... 250 Wykresy złożone .................................................................................................................................. 252 Dołączanie tabeli danych ................................................................................................................... 254 Formatowanie osi wykresu ............................................................................................................... 256 Rozdział 15. Zdarzenia .................................................... 258 Przegląd zdarzeń .................................................................................................................................. 258 Uruchamianie procedury przy otwieraniu skoroszytu ............................................................ 262 Uruchamianie procedury przed zamknięciem skoroszytu ..................................................... 264 Uruchamianie procedury przed zapisaniem skoroszytu ......................................................... 266 Uruchamianie procedury przy tworzeniu skoroszytu .............................................................. 268 Uruchamianie procedury o określonej godzinie ......................................................................... 272 Uruchamianie procedury wciśnięciem kombinacji klawiszy ................................................. 274 Rozdział 16. Dodatki do aplikacji (add-in) ........................... 276 Tworzenie dodatku .............................................................................................................................. 276 Właściwości dodatków ....................................................................................................................... 278 Instalowanie dodatków ....................................................................................................................... 280 Ładowanie dodatków w kodzie VBA ............................................................................................ 282 Rozdział 17. Pliki XML .................................................... 284 Pliki XML — wprowadzenie ............................................................................................................ 284 Pliki Office jako pliki XML .............................................................................................................. 286 Pliki XML jako tabele w Excelu ..................................................................................................... 290 Przygotowywanie mapy XML ......................................................................................................... 292 Importowanie i eksportowanie plików XML .............................................................................. 294 Ładowanie plików XML przy użyciu VBA ................................................................................ 296 Importowanie plików XML przy użyciu VBA........................................................................... 298 viii Dodatek A: Elementy kodu VBA ....................................... 300 Model obiektów VBA i Excela ........................................................................................................ 300 Dodatek B: Elementy Wstążki .......................................... 320 Elementy nadrzędne Wstążki .......................................................................................................... 320 Skorowidz ..................................................................... 330 ix Operatory porównania W yrażenia porównujemy przy pomocy operato- rów porównania. Wynikiem takiej operacji jest zawsze jedna z dwóch wartości: True (praw- da) lub False (fałsz). Najprostsze wyrażenie tego rodza- ju to A = B, prowadzące do porównania wartości zmien- nych A i B. Wynikiem obliczenia jego wartości jest True, jeżeli wartość zapisana w zmiennej A jest taka sama jak wartość zapisana w zmiennej B. Operator porównania zawsze umieszcza się między dwoma wyrażeniami. Poza znakiem równości do dyspo- zycji są znaki: nierówności ( ), większości ( ), mniej- szości ( ), „większe lub równe” ( =) i „mniejsze lub rów- ne” ( =). Operacje porównania 1 Operator porównania w pętli Do While. W tym przykładzie, dopóki J jest mniejsze od 11, program wykonuje kod wewnątrz pętli. Uwaga: O pętlach Do While piszemy w podrozdziale „Pętla Do While”. 2 Operator porównania w instrukcji If Then ElseIf. Uwaga: O instrukcjach If piszemy w podrozdziale „Instrukcja If Then Else”. 86 Wskazówka W tabeli przedstawiamy zestawienie operatorów porównania. OpEratOr = = = FUnkcja jest równe jest różne od jest większe niż jest mniejsze niż jest mniejsze lub równe jest większe lub równe 4 2 2 2 Operatory logiczne Do łączenia wyrażeń porównania używa się operatorów logicznych: Or, And, Xor, Eqv, Imp i Not. Logiczna operacja Or Logiczny operator Or zwraca wartość True, gdy co najmniej jedno z dwóch wyrażeń zwraca True. wyrażEniE a wyrażEniE b wynik prawda prawda prawda prawda prawda fałsz fałsz fałsz prawda fałsz prawda fałsz Przykład: Sub LogiczneOr() Dim Wynik As Boolean Wynik = 10 20 Or 30 20 Zwraca True MsgBox (Wynik) End Sub Logiczna operacja And Logiczny operator And zwraca wartość True, jeśli oba wyra- żenia zwracają True. Logiczna operacja Xor Logiczny operator Xor zwraca wartość True, gdy jedno i tyl- ko jedno z dwóch wyrażeń jest prawdziwe. wyrażEniE a wyrażEniE b wynik prawda prawda fałsz prawda fałsz fałsz fałsz fałsz prawda fałsz prawda fałsz wyrażEniE a wyrażEniE b wynik prawda prawda fałsz fałsz prawda fałsz prawda fałsz fałsz prawda prawda fałsz Logiczna operacja Eqv Logiczny operator Eqv zwraca wartość True tylko wtedy, gdy oba wyrażenia są prawdziwe lub gdy oba są fałszywe. wyrażEniE a wyrażEniE b wynik prawda prawda fałsz prawda fałsz fałsz fałsz prawda prawda fałsz prawda fałsz Logiczna operacja Imp Logiczny operator Imp zwraca wartość True, o ile nie zacho- dzi sytuacja, że pierwsze wyrażenie jest prawdziwe, a drugie fałszywe. wyrażEniE a wyrażEniE b wynik prawda prawda fałsz prawda prawda fałsz fałsz prawda prawda fałsz prawda fałsz Logiczna operacja Not Logiczny operator Not neguje wartość wyrażenia, zmienia- jąc wartość True na False i False na True. Przykład: LogiczneNot() Dim Wynik As Boolean Wynik = Not (10 = 10) Zwraca False MsgBox (Wynik) End Sub R o z d z i a ł 6 . I n s t r u k c j e s t e r u j ą c e 87 Pętla Do While P ętla Do While („wykonuj, gdy”) pozwala powtarzać wykonywanie bloku instrukcji, dopóki dane wyra- żenie jest prawdziwe. Jej składnia to: Do [While warunek] [instrukcje] Loop Warunek to wyrażenie, które zwraca True lub False. Gdy program napotyka na pętlę Do While, najpierw sprawdza wartość warunku pętli. Jeżeli jest on spełnio- ny (zwraca True), są wykonywane instrukcje wewnątrz pętli. Sprawdzanie warunku i wykonywanie instrukcji są powtarzane do momentu, gdy warunek zwróci wartość False. Spowoduje to przejście do wykonywania instruk- cji następującej po zamykającym pętlę słowie Loop. W pętli Do While można wyróżnić cztery główne ele- menty: instrukcję Do inicjującą pętlę, instrukcję While, która bada warunek pętli, blok instrukcji wykonywanych, gdy warunek jest spełniony, oraz końcową instrukcję Loop. Można też stosować składnię pętli Do Loop While: Do [instrukcje] Loop [While warunek] Jej działanie jest podobne, ale warunek sprawdzany jest zawsze po wykonaniu bloku instrukcji, co powoduje, że wykonanie następuje co najmniej raz. Pętla Do While 1 2 3 Utwórz nową procedurę. Zadeklaruj zmienną. Zainicjuj zmienną. W przedstawionym przykładzie zmiennej J przypisana jest wartość 1, aby dalej użyć jej jako licznika pętli. 3 4 5 W pierwszym wierszu pętli nastąpi sprawdzenie stanu licznika. W przedstawionym przykładzie sprawdzana jest wartość zmiennej J i powtarzany jest blok instrukcji, dopóki jest ona mniejsza niż 11. Zapisz wartość J w komórce arkusza. W przedstawionym przykładzie numer wiersza jest równy wartości J, a numer kolumny to 1. 88 1 2 4 5 6 7 8 Zwiększ wartość J. Tutaj dodawane jest 1 do bieżącej wartości J. Zakończ pętlę instrukcją Loop. Program powróci do instrukcji Do While i będzie kontynuować powtarzanie pętli do czasu, gdy warunek nie będzie spełniony. Wciśnij kombinację klawiszy Alt+F11, aby powrócić do Excela i uruchomić kod. Uwaga: O uruchamianiu procedur piszemy w rozdziale 1. 6 7 Procedura umieści w komórkach arkusza wartości od 1 do 10. Wskazówka Pętla musi zawierać instrukcję, której wykonanie prowadzi do zmiany wyniku obliczania warunku pętli. Jeżeli nie zwróci on w pewnym momencie wartości False, utworzy się pętla nieskończona (ang. infinite loop). Aby uniknąć takiej sytuacji, dobrze jest stosować jasno określoną zmienną licznika. W przedstawionym poniżej przykładzie jest to zmienna J o początkowej wartości 1. Każde kolejne wykonanie pętli zależy od tego, czy stan licznika jest mniejszy od 5. Główna instrukcja wykonywanego bloku przeprowadza operację zapisywania danych do arkusza. W ostatniej licznik jest zwiększany. Bezpośrednio po tym następuje ponowne sprawdzenie warunku. W efekcie pętla zostaje powtórzona cztery razy, za piątym razem wartość J wynosi 5 i warunek pętli nie zostaje spełniony. Przykład: Dim J As Integer J = 1 Do While J 5 ActiveSheet.Rows(J).Cells(1).Value = J J = J + 1 Loop R o z d z i a ł 6 . I n s t r u k c j e s t e r u j ą c e 89 Pętla Do Until P ętla Do Until („wykonuj do czasu, gdy”) jest wy- konywana do czasu spełnienia wskazanego warun- ku. Można ją na przykład wykorzystać do mody- fikowania kolejnych komórek aż do napotkania komórki pustej. Działanie pętli nie różni się zasadniczo od pętli Do  While. Różnica polega na tym, że o ile Do While jest wykonywana, gdy warunek wejścia jest spełniony, powtarzanie pętli Do Until trwa tak długo, jak długo wartość warunku wynosi False. Wyróżniamy cztery elementy pętli: instrukcję inicjującą pętlę Do, warunek Until, na którego spełnienie oczeku- jemy, blok powtarzanych instrukcji i kończącą instrukcję Loop. Pętla Do Until 1 2 3 Utwórz nową procedurę. Zadeklaruj zmienną. Zainicjuj zmienną. W przedstawionym przykładzie zmiennej J przypisywana jest wartość 2, aby dalej przechowywać w niej numer wiersza. Jeżeli warunek Until zostanie umieszczony w wierszu Do, będzie sprawdzany przed każdym wykonaniem blo- ku. Oznacza to, że jeżeli jego obliczenie od razu dopro- wadzi do wartości False, pętla nie zostanie wykonana ani razu. Można również umieścić warunek na końcu pętli; wów- czas wykonanie bloku instrukcji będzie poprzedzone jego sprawdzeniem. Zapewni to co najmniej jednorazowe wy- konanie pętli. Kolejne powtórzenia nastąpią tylko wtedy, gdy wyrażenie warunku zwróci False. 1 2 3 4 W pierwszym wierszu pętli nastąpi sprawdzenie warunku. W tym przykładzie sprawdzana jest zawartość wskazywanych wartością zmiennej J komórek arkusza; blok instrukcji powtarzany jest do momentu natrafienia na komórkę pustą. 4 90 5 6 7 Wprowadź blok instrukcji. W przedstawionym przykładzie zawartość komórki w kolumnie A mnożona jest przez 0,07; wynik umieszczany jest w kolumnie B. Zamknij pętlę słowem kluczowym Loop. Program powróci do początku pętli i będzie powtarzać blok instrukcji, dopóki warunek wejścia nie zostanie spełniony. Wciśnij kombinację klawiszy Alt+F11, aby powrócić do Excela i uruchomić kod. Uwaga: O uruchamianiu procedur piszemy w rozdziale 1. Procedura umieści w kolumnie B wartości reprezentujące 7 procent wartości w kolumnie A. 5 6 Wskazówka Podczas pracy z pętlami niejednokrotnie pojawiają się sytuacje, gdy wygodniejsze jest natychmiastowe prze­ rwanie wykonywania pętli i przejście do dalszych instrukcji, niezależnie od stanu warunku While czy Until. Umożliwia to instrukcja Exit Do. Można ją umieścić w dowolnym miejscu bloku instrukcji w pętli. Można stosować wiele takich instrukcji. Efektem Exit Do jest zawsze przejście do wykonywania pierwszej instrukcji następującej po Loop. Exit Do towarzyszy najczęściej instrukcja warunkowa, taka jak If Then. Sprawdza ona pewien specjalny warunek i w przypadku jego spełnienia inicjuje natychmiastowe wyjście z pętli. Przykład: Do While Wyrażenie1 = True If Wyrażenie2 = True Exit Do End If Loop R o z d z i a ł 6 . I n s t r u k c j e s t e r u j ą c e 91 Pętla For Next P ętla For Next („dla wartości …”) służy do powta- rzania bloku instrukcji ściśle określoną ilość razy. Można jej użyć na przykład do wypełnienia pew- nej liczby komórek arkusza. Pętla For Next zawsze korzysta ze zmiennej licznika. Instrukcje umieszczone pomiędzy wierszami For i Next są powtarzane do czasu osiągnięcia przez zmienną liczni- ka wartości maksymalnej. Gdy wartość licznika zwiększa się, wykonywana jest instrukcja następująca po Next. Pętla For Next składa się z trzech części. Pierwszą jest wiersz For, w którym określane są parametry pętli: zmienna licznika oraz jej wartości początkowa i maksy- malna, na przykład X = 1 To 5. Potem następuje ciąg in- strukcji i zakończenie pętli, czyli słowo kluczowe Next. Wykonywanie pętli rozpoczyna się od sprawdzenia, czy wartość licznika nie przekracza zdefiniowanego maksi- mum. Licznik to wartość liczbowa standardowo zwięk- szana o 1. Pętla jest wykonywana tak długo, jak długo wartość licznika jest mniejsza od wartości maksymalnej lub jej równa. Pętla nie zostanie wykonana ani razu tyl- ko wtedy, gdy wartość początkowa licznika jest większa od maksymalnej. Pętla For Next 1 2 3 Utwórz nową procedurę. Zadeklaruj zmienną. Zainicjuj zmienną. W przedstawionym przykładzie licznikiem jest zmienna Licznik. 4 5 W pierwszym wierszu pętli pokazane są parametry decydujące o jej pracy. • Zmienna licznika. • Wartość początkowa. • Wartość maksymalna. Wprowadź blok instrukcji. W przedstawionym przykładzie w czterech kolejnych komórkach zapisane są ciągi od „Region 1” do „Region 4”. 3 5 92 1 2 4 6 7 Zamknij pętlę słowem kluczowym Next. Program powróci do początku pętli i będzie powtarzać blok instrukcji, dopóki warunek przekroczenia wartości maksymalnej nie zostanie spełniony. Wciśnij kombinację klawiszy Alt+F11, aby powrócić do Excela i uruchomić kod. Uwaga: O uruchamianiu procedur piszemy w rozdziale 1. 6 Procedura umieści w kolejnych komórkach teksty od „Region 1” do „Region 4”. Wskazówka Wartość zmiennej licznika można zmieniać o dowolną wartość. Standardowo wynosi ona 1. Aby podać inną, należy skorzystać ze słowa kluczowego Step dodawanego w pierwszym wierszu pętli. Wartość zwiększająca licznik może być ujemna — osiągnie się wtedy efekt zmniejszania licznika. W poniższym przykładzie licznik zaini­ cjowany jest wartością 2 i zwiększany o 2 do 20. Kolejne wartości zmiennej licznika J są sumowane w zmiennej SumaWartości. Pętla zostanie wykonana dziesięć razy. Gdy wartość licznika osiągnie 20, blok instrukcji prze­ stanie być powtarzany. Przykład: For J = 2 To 20 Step 2 SumaWartości = SumaWartości + J Next R o z d z i a ł 6 . I n s t r u k c j e s t e r u j ą c e 93 Pętla For Each In P ętla For Each In („dla każdego”) pozwala wyko- nać blok instrukcji dla każdego elementu tablicy lub każdego obiektu kolekcji. Nie ma tu zmiennej licz- nika ani sprawdzanego warunku. O liczbie powtórzeń de- cyduje liczność zbioru elementów tablicy lub kolekcji. Zakończenie następuje po zakończeniu przetwarzania ostatniego elementu. Oto składnia pętli: For Each element In grupa [instrukcje] Next [element] Pętla For Each In Wyróżnia się trzy części pętli: pierwszy wiersz For Each  element In grupa inicjuje pętlę; element to zmien- na używana do przechowywania pojedynczego elementu w trakcie wykonywania bloku instrukcji; grupa to nazwa tablicy lub kolekcji. Dalej następuje ciąg powtarzanych instrukcji i kończąca pętlę instrukcja Next. Jeśli pętla przetwarza kolejne elementy tablicy, zmienna używana do przechowywania pojedynczych elementów musi być typu Variant. W przypadku kolekcji do wybo- ru są typy: Variant, ogólny Object lub dowolny obiek- towy. 1 3 2 4 Utwórz nową procedurę. Zadeklaruj tablicę. 1 2 Uwaga: O tablicach pisaliśmy w rozdziale 5. 3 Zadeklaruj zmienne. 4 Przypisz wartości elementom tablicy. W tym przypadku będą to wartości komórki aktywnej i trzech kolejnych komórek. 94 5 6 7 8 element. Wprowadź instrukcję For Each In. • Zmienna przechowująca pojedynczy • Nazwa tablicy lub kolekcji. • Powtarzane instrukcje. Zamknij pętlę słowem kluczowym Next. W tym przypadku sumowane są elementy tablicy. Wprowadź instrukcje do wykonania po wyjściu z pętli. Wciśnij kombinację klawiszy Alt+F11, aby powrócić do Excela i uruchomić kod. Uwaga: O uruchamianiu procedur piszemy w rozdziale 1. • W przedstawionym przykładzie sumowane są elementy tablicy; wynik umieszczany jest w kolejnej komórce arkusza. 6 5 7 Wskazówka Pętle można zagnieżdżać. Pozwala to między innymi łatwo wypełniać liczbami tablice wielowymiarowe. O za­ gnieżdżaniu mówi się wtedy, gdy umieszcza się kolejną pętlę w bloku powtarzanych instrukcji innej pętli. Przy operacjach na tablicach wielowymiarowych należy utworzyć tyle kolejnych pętli, ile wymiarów ma tablica. W poniższym przykładzie wykorzystane są dwie pętle For Next. Zwróć uwagę, że w każdym przebiegu pętli sterowanej zmienną K (pętli zewnętrznej) wykonywany jest pełny cykl powtórzeń pętli sterowanej zmienną L (pętli wewnętrznej). W każdym przypadku zagnieżdżania pętli wyjście z pętli wewnętrznej przed przejściem do kolejnego powtórzenia pętli zewnętrznej jest bezwzględnie wymagane. wynik Przedstawiony kod utworzy dwuwymiarową tabli- cę o następujących wartościach: 1 4 7 2 5 8 3 6 9 kOD DO wprOwaDzEnia: Sub WypełnijTablicę() Dim NowaTablica(1 To 3, 1 To 3)  As Integer Dim K As Integer Dim L As Integer X = 1 For K = 1 To 3 For L = 1 To 3 NowaTablica(K, L) = X X = X + 1 Next L Next K End Sub R o z d z i a ł 6 . I n s t r u k c j e s t e r u j ą c e 95 Instrukcja If Then Else I nstrukcja If Then Else („jeżeli… to… w przeciw- nym razie…”) pozwala określić grupę instrukcji jako wykonywane warunkowo. W tym podrozdziale przed- stawiony jest przykład obliczania premii dla sprzedaw- ców, którzy osiągnęli wynik powyżej 50 000 zł. Gdy warunek przekroczenia tego progu nie jest spełniony, dru- kowany jest tekst „bez premii”. Sprawdzanie warunku umożliwi instrukcja If Then Else. Ma ona składnię: If warunek Then [instrukcje] Else [instrukcje] End If Kluczowym elementem instrukcji jest warunek — dowol- ne wyrażenie, którego wartość to True lub False. W po- danym przykładzie jest to wyrażenie badające wartość zmiennej Sprzedaż. Obliczenie Sprzedaż 50000 pro- Instrukcja If Then Else wadzi do wyniku True lub False („prawda” lub „fałsz”). Jeżeli wyrażenie jest prawdziwe, wykonywany jest ciąg instrukcji między Then a Else. Jeżeli jest fałszywe, wy- konywany jest blok między Else a End If. Nieokreślona wartość wyrażenia jest interpretowana jako False. Jeżeli pojawia się potrzeba badania wielu warunków, moż- na skorzystać z odmiany instrukcji warunkowej ze sło- wem ElseIf. Prostym przykładem może być obliczanie wartości podatku VAT, 7-procentowego dla produktu A, 22-procentowego dla produktu B i zerowego dla pozo- stałych. Wiersz ElseIf warunek Then pozwala wpro- wadzać kolejne bloki instrukcji przed ostatnim wierszem (i blokiem) Else. Wiersz i blok instrukcji Else są opcjo- nalne i można je w każdej wersji instrukcji pominąć. 2 3 1 Wersja If Then Else 1 Wprowadź instrukcję If Then. • Warunek. • Instrukcja do wykonania. Wprowadź blok Else. • Instrukcja do wykonania. Wprowadź wiersz End If. Wciśnij kombinację klawiszy Alt+F11, aby powrócić do Excela i uruchomić kod. 2 3 4 Uwaga: O uruchamianiu procedur piszemy w rozdziale 1. W przedstawionym przykładzie, jeżeli wartość w kolumnie sprzedaży jest większa od 50 000, program obliczy wartość 4-procentowej premii. W przeciwnym wypadku wstawi do arkusza tekst „bez premii”. 96 Wersja ElseIf 1 Wprowadź instrukcję If Then. • Warunek. • Instrukcja do wykonania. Wprowadź blok ElseIf. • Instrukcja do wykonania. Wprowadź blok Else. • Instrukcja do wykonania. Wprowadź wiersz End If. Wciśnij kombinację klawiszy Alt+F11, aby powrócić do Excela i uruchomić kod. 2 3 4 5 1 2 2 3 4 Uwaga: O uruchamianiu procedur piszemy w rozdziale 1. W przedstawionym przykładzie obliczana jest wartość sprzedaży brutto po doliczeniu podatku według jednej z trzech stawek. Wskazówka Robienie wcięć w kodzie programu nie jest obowiązkowe, ale znacznie poprawia jego czytelność. Wcięcia uwy­ datniają przede wszystkim strukturę kodu, która staje się dzięki nim widoczna, jeszcze zanim zaczniesz czytać właściwą treść. Jest to szczególnie ważne, gdy korzystasz z instrukcji wykonania warunkowego i pętli, gdzie przetwarzanie nie przebiega sekwencyjnie. Poniżej przedstawiony został przykład wcięcia treści pętli For Next, ułatwiający odnalezienie jej zakończenia. Wcięta została również instrukcja If Then. Przykład: For I = 1 To 5 If J 10 Then J = J + 1 End If Next Jeżeli blok instrukcji wykonywanych po Then zawiera tylko jedno polecenie, możesz wprowadzić całą konstruk­ cję If w jednym wierszu i nie wpisywać End If. Przykład: If Suma 10 Then Suma = Suma + 1 ‘jest równoważne: If Suma 10 Then Suma = Suma + 1 End If R o z d z i a ł 6 . I n s t r u k c j e s t e r u j ą c e 97 Instrukcja Select Case I nstrukcja Select Case („wybierz przypadek”) to dal- sze rozwinięcie instrukcji wykonania warunkowego, odpowiadające zastosowaniu wielu bloków ElseIf. Korzysta się z niej, gdy pojawia się potrzeba dokonania wyboru pomiędzy kilkoma instrukcjami na podstawie wartości komórki lub zmiennej. Ponownie wykorzystany zostanie przykład naliczania jednej z trzech stawek po- datku VAT. Oto składnia instrukcji: Select Case wyrażenie [Case lista_wyrażeń –n [instrukcje-n]] [Case Else [instrukcje]] End Select W wierszu Select Case podaje się wyrażenie, którego wartość będzie badana w kolejnych wierszach Case. Każ- dy wiersz Case zawiera wartość, która zostanie porów- Instrukcja Select Case 1 2 3 Utwórz nową procedurę. Zadeklaruj zmienną. Zainicjuj zmienną. nana ze wskazanym wyrażeniem. Po nim następuje blok instrukcji wykonywanych, gdy wynik porównania będzie pozytywny, na przykład: Select Case Wartość Case 4 Instrukcje ... End Select Powyższy przykład sprawdza, czy Wartość = 4. Instruk- cje zostaną wykonane tylko wtedy, gdy warunek ten jest spełniony (Wartość = 4 zwraca True). Instrukcję koń- czy wiersz End Select. Dodatkowo można użyć bloku Case Else, który zosta- nie wykonany tylko wtedy, gdy żadne z wcześniejszych porównań Case nie doprowadzi do uzyskania wyniku „prawda”. 1 2 3 Utwórz pętlę Do While. 4 Uwaga: O pętlach Do While pisaliśmy w podrozdziale „Pętla Do While”. 5 Wprowadź instrukcję Select Case. • Wartość, która posłuży do dalszych porównań z wartościami w wierszach Case. 6 Wprowadź bloki Case. • Jeżeli wartość podana w wierszu Select Case jest równa wartości podanej w wierszu Case, zostaną wykonane instrukcje w danym bloku. 98 4 5 6 6 4 7 8 9 Wprowadź blok Case Else. Instrukcje w tym bloku zostaną wykonane, gdy żaden ze sprawdzanych wcześniej warunków nie zostanie spełniony. Wprowadź instrukcję End Select. Wciśnij kombinację klawiszy Alt+F11, aby powrócić do Excela i uruchomić kod. Uwaga: O uruchamianiu procedur piszemy w rozdziale 1. 7 8 W tym przykładzie obliczana jest wartość sprzedaży brutto dla towarów o różnej stawce podatku VAT. Zastosuj to W instrukcjach Select Case można również korzystać ze specjalnych wyrażeń umożliwiających sprawdze­ nie, czy wartość należy do pewnej grupy. kOD DO wprOwaDzEnia: Select Case LiczbaOperacji Case 1 To 5 Prowizja = Suma * .05 Case 6 To 15 Prowizja = Suma * .1 End Select kOD DO wprOwaDzEnia: Select Case LiczbaStudentów Case Is 10 MsgBox( Zbyt mała liczba  zapisanych studentów.”) End Select kOD DO wprOwaDzEnia: Select Case Stan Case TX , CA” Suma = Suma * 1.085 End Select wynik: Instrukcja Select Case sprawdzi, czy wartość LiczbaOperacji należy do jednego z dwóch zakresów. wynik: Instrukcja Select Case sprawdzi, czy war­ tość LiczbaStudentów jest mniejsza od 10. Jeżeli tak, wyświetli się ostrzegawcze okienko dialogowe. wynik: Instrukcja Select Case sprawdzi, czy wartość Stan to TX lub CA. Jeżeli tak, suma zostanie zwiększona o podatek 8,5 . R o z d z i a ł 6 . I n s t r u k c j e s t e r u j ą c e 99 Instrukcja skoku GoTo I nstrukcja GoTo („idź do”) pozwala natychmiast przejść do innego miejsca w procedurze. Przed jej użyciem dane miejsce docelowe musi zostać oznaczone etykie- tą. Etykieta to nazwa i znak dwukropka (:). Instrukcją wykonywaną po instrukcji GoTo jest zawsze pierwsza in- strukcja po etykiecie. Oto składnia polecenia GoTo: GoTo etykieta Jak widać, nie jest skomplikowana i obejmuje słowo klu- czowe GoTo oraz etykietę. Etykieta może zostać umiesz- czona w dowolnym miejscu w tej samej procedurze. In- strukcja GoTo nie pozwala przejść do innej procedury nawet w tym samym module. Można użyć dowolnej liczby instrukcji GoTo i dowolnej liczby etykiet, a róż- ne instrukcje mogą korzystać z tych samych lub innych etykiet. Instrukcja skoku GoTo 1 2 Utwórz nową procedurę. Wprowadź kod. Jedną z podstawowych zasad dobrego stylu programowa- nia jest korzystanie z instrukcji GoTo wyłącznie wtedy, gdy nie można osiągnąć pożądanego wyniku przy użyciu instrukcji warunkowych i pętli. Jest to w zasadzie relikt z czasów, kiedy każda instrukcja kodu miała swój numer, a zasób dostępnych instrukcji sterujących był ograniczo- ny. Choć w języku VBA instrukcje GoTo wykorzystuje się powszechnie do obsługi błędów, warto wiedzieć, że dla większości programistów korzystanie z nich to dowód braku umiejętności pisania poprawnych programów. Do tematu wykorzystywania instrukcji GoTo w debugo- waniu kodu powrócimy w rozdziale 8. 1 3 3 3 2 3 3 3 3 Wprowadź instrukcję GoTo. 100 4 5 6 Wstaw etykietę. • Po nazwie wstaw dwukropek. Wprowadź dalszy kod. Wciśnij kombinację klawiszy Alt+F11, aby powrócić do Excela i uruchomić kod. Uwaga: O uruchamianiu procedur piszemy w rozdziale 1. 4 4 5 5 W tym przykładzie obliczany jest koszt dostawy, o ile po doliczeniu podatku wartość zakupu jest mniejsza niż 50 zł. Wskazówka Etykiety to oznaczenia wybranych miejsc w kodzie. Same nie mają żadnego wpływu na przebieg progra­ mu. Nie są w najmniejszym stopniu podobne do in­ strukcji warunkowych lub pętli, które operują pew­ nym zamkniętym blokiem kodu. W przypadku stosowania wielu etykiet pojawia się problem pomijania kodu w kolejnych oznaczonych nimi blokach. Należy wtedy użyć jeszcze jednej in­ strukcji GoTo lub instrukcji Exit Sub, która przery­ wa wykonywanie procedury. W poniższym przykładzie użyta została instrukcja Exit Sub bezpośrednio przed etykietą, aby uniknąć wykonania instrukcji T = 50. Ma ona zostać wykona­ na wyłącznie po skoku do etykiety ZwiększWartość. Sam skok wyróżnia nietypową sytuację, w której nie­ pożądana jest operacja T = T * 5. Przykład: Sub Test Goto() Dim T As Integer T = Cells(1,1) If T 5 Then GoTo ZwiększWartość T = T * 5 Exit Sub ZwiększWartość: End Sub R o z d z i a ł 6 . I n s t r u k c j e s t e r u j ą c e 101 pro ce durze operacji tylko w przypadku, gdy określony w instrukcji If Then warunek jest spełniony. Kod w ko- lejnych wierszach jest wykonywany zawsze. Oczywiście można go pominąć, wstawiając polecenie Exit Sub. Słowo kluczowe Call nie jest wymagane. Można użyć samej tylko nazwy procedury. Wówczas lista argumen- tów nie może być umieszczana w nawiasach. Kod wywo- ływany w ten sposób może być zapisany w procedurach Sub, Function lub bibliotece DLL. 2 1 3 Wywoływanie procedur D o wywoływania innych procedur służy instrukcja Call. Aby jej użyć, wprowadza się słowo Call, na- zwę procedury i ujętą w nawiasy listę parametrów. Po jej wykonaniu przetwarzana jest pierwsza instrukcja kodu procedury wywołanej. Po zakończeniu jej wykony- wania program przechodzi do pierwszej instrukcji po in- strukcji Call w procedurze wywołującej. Wywoływanie procedur często poprzedza się sprawdze- niem warunku, na przykład instrukcją If Then. Powo- duje to efekt wykonania określonych w wywoływanej Wywoływanie procedur 1 2 Utwórz nową procedurę. Zadeklaruj i zainicjuj zmienne. Mogą być potrzebne zmienne publiczne. Uwaga: O zmiennych publicznych pisaliśmy w rozdziale 3. 2 4 4 4 3 4 Utwórz warunek If Then. Wywołaj procedurę. 102 5 5 6 6 5 6 7 Utwórz procedury wywoływane. Wprowadź kod, który będzie wykonywany w wywołaniach. Wciśnij kombinację klawiszy Alt+F11, aby powrócić do Excela i uruchomić kod. Uwaga: O uruchamianiu procedur piszemy w rozdziale 1. Gdy warunek zostanie spełniony, instrukcja If Then wywoła procedurę. Zastosuj to Korzystanie ze słowa kluczowego Call jest opcjonalne. Jego stosowanie pozwala wyróżnić wywołania proce­ dur zdefiniowanych jako funkcje i procedury programu (w odróżnieniu od funkcji standardowych i dołączonych w bibliotekach). Gdy Call zostanie pominięte, trzeba również opuścić nawiasy otaczające listę argumentów: ta instrUkcja: jEst równOważna z: Call NowaProcedura(zmienna1, zmienna2) NowaProcedura zmienna1, zmienna2 R o z d z i a ł 6 . I n s t r u k c j e s t e r u j ą c e 103
Pobierz darmowy fragment (pdf)

Gdzie kupić całą publikację:

Programowanie w Excelu 2007 PL. Niebieski podręcznik
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ą: