Cyfroteka.pl

klikaj i czytaj online

Cyfro
Czytomierz
00183 004254 15178140 na godz. na dobę w sumie
Excel 2016 PL. Programowanie w VBA. Vademecum Walkenbacha - ebook/pdf
Excel 2016 PL. Programowanie w VBA. Vademecum Walkenbacha - ebook/pdf
Autor: , Liczba stron: 864
Wydawca: Helion Język publikacji: polski
ISBN: 978-83-283-2859-4 Data wydania:
Lektor:
Kategoria: ebooki >> komputery i informatyka >> aplikacje biurowe >> ms office
Porównaj ceny (książka, ebook (-20%), audiobook).
Wielu z nas nie wyobraża sobie pracy bez Excela. Studenci, naukowcy, biznesmeni, analitycy, księgowi, a nawet gospodynie domowe znajdują dla tego potężnego arkusza kalkulacyjnego najróżniejsze zastosowania. Mimo że możliwości Excela są imponujące, można je jeszcze rozszerzać i budować aplikacje szczególnego przeznaczenia za pomocą dostarczonego przez Microsoft narzędzia — języka Visual Basic for Applications (VBA). Wystarczy tylko poznać składnię i zasady programowania w VBA!

Niniejsza książka jest zaktualizowanym wydaniem unikalnego przewodnika po języku VBA. W przystępny sposób wyjaśniono tu wiele złożonych zagadnień, dzięki czemu szybko zaczniesz pisać programy, które automatyzują wykonywanie różnych zadań w Excelu. Będą to zarówno proste makra, jak i wyrafinowane aplikacje i narzędzia, pozwalające na zaawansowaną interakcję z użytkownikiem. Układ treści w książce pozwala zarówno na systematyczną naukę VBA, jak i szybkie wyszukanie porad i wskazówek umożliwiających rozwiązanie konkretnego zadania. Nie zabrakło również wielu praktycznych przykładów gotowego do użycia kodu.

Najważniejsze zagadnienia ujęte w książce:

Połącz VBA z Excelem i napisz najlepszą aplikację!


Michael Alexander to Microsoft Certified Application Developer (MCAD) i laureat prestiżowego tytułu Microsoft MVP, który otrzymał za bezustanne wspieranie użytkowników Excela. Jest również autorem kilku książek o zaawansowanych technikach analitycznych dla biznesu w MS Excel i Access.

Dick Kusleika od ponad dwudziestu lat pracuje z pakietem Office, a od dwunastu lat zdobywa tytuł Microsoft MVP. Ma ogromne doświadczenia w opracowywaniu rozwiązań bazujących na MS Excel i Access. Jest cenionym szkoleniowcem w dziedzinie obsługi pakietu Office w Australii i w USA.
Znajdź podobne książki Ostatnio czytane w tej kategorii

Darmowy fragment publikacji:

Tytuł oryginału: Excel 2016 Power Programming with VBA Tłumaczenie: Grzegorz Kowalczyk ISBN: 978-83-283-2858-7 Copyright © 2016 by John Wiley Sons, Inc., Indianapolis, Indiana All Rights Reserved. This translation published under license with the original publisher John Wiley Sons, Inc. Translation copyright © 2017 by Helion SA No part of this publication may be reproduced, stored in a retrieval system or transmitted in any form or by any means, electronic, mechanical, photocopying, recording, scanning or otherwise without either the prior written permission of the Publisher Wiley and the Wiley logo are trademarks or registered trademarks of John Wiley Sons, Inc. and/or its affiliates, in the United States and other countries, and may not be used without written permission. Excel is a registered trademark of Microsoft Corporation. All other trademarks are the property of their respective owners. John Wiley Sons, Inc. is not associated with any product or vendor mentioned in this book. Wszelkie prawa zastrzeżone. Nieautoryzowane rozpowszechnianie całości lub fragmentu niniejszej publikacji w jakiejkolwiek postaci jest zabronione. Wykonywanie kopii metodą kserograficzną, fotograficzną, a także kopiowanie książki na nośniku filmowym, magnetycznym lub innym powoduje naruszenie praw autorskich niniejszej publikacji. Wszystkie znaki występujące w tekście są zastrzeżonymi znakami firmowymi bądź towarowymi ich właścicieli. Autor oraz Wydawnictwo HELION dołożyli wszelkich starań, by zawarte w tej książce informacje były kompletne i rzetelne. Nie biorą jednak żadnej odpowiedzialności ani za ich wykorzystanie, ani za związane z tym ewentualne naruszenie praw patentowych lub autorskich. Autor oraz Wydawnictwo HELION nie ponoszą również żadnej odpowiedzialności za ewentualne szkody wynikłe z wykorzystania informacji zawartych w książce. Wydawnictwo HELION ul. Kościuszki 1c, 44-100 GLIWICE tel. 32 231 22 19, 32 230 98 63 e-mail: helion@helion.pl WWW: http://helion.pl (księgarnia internetowa, katalog książek) Pliki z przykładami omawianymi w książce można znaleźć pod adresem: ftp://ftp.helion.pl/przyklady/e26pvw.zip Drogi Czytelniku! Jeżeli chcesz ocenić tę książkę, zajrzyj pod adres http://helion.pl/user/opinie/e26pvw Możesz tam wpisać swoje uwagi, spostrzeżenia, recenzję. Printed in Poland. • Kup książkę • Poleć książkę • Oceń książkę • Księgarnia internetowa • Lubię to! » Nasza społeczność Spis tre(cid:258)ci O autorach O korektorze merytorycznym Przedmowa Zakres zagadnie(cid:295) Co musisz wiedzie(cid:243)? Czym musisz dysponowa(cid:243)? Konwencje zastosowane w ksi(cid:159)(cid:343)ce Polecenia Excela Polecenia edytora VBA Konwencje zwi(cid:159)zane z klawiatur(cid:159) Znaczenie ikon Struktura ksi(cid:159)(cid:343)ki Cz(cid:163)(cid:314)(cid:243) I: Wprowadzenie do j(cid:163)zyka Excel VBA Cz(cid:163)(cid:314)(cid:243) II: Zaawansowane techniki programowania Cz(cid:163)(cid:314)(cid:243) III: Praca z formularzami UserForm Cz(cid:163)(cid:314)(cid:243) IV: Tworzenie aplikacji Cz(cid:163)(cid:314)(cid:243) V: Dodatek Przyk(cid:167)ady Narz(cid:163)dzie Power Utility Pak Cz(cid:218)(cid:258)(cid:202) I. Wprowadzenie do j(cid:218)zyka Excel VBA Rozdzia(cid:171) 1. Podstawy projektowania aplikacji arkusza kalkulacyjnego Czym jest aplikacja arkusza kalkulacyjnego? Etapy projektowania aplikacji Okre(cid:314)lanie wymaga(cid:295) u(cid:343)ytkownika Planowanie aplikacji spe(cid:167)niaj(cid:159)cej wymagania u(cid:343)ytkownika Wybieranie odpowiedniego interfejsu u(cid:343)ytkownika Dostosowywanie Wst(cid:159)(cid:343)ki do potrzeb u(cid:343)ytkownika Dostosowywanie menu podr(cid:163)cznego do potrzeb u(cid:343)ytkownika Tworzenie klawiszy skrótu Tworzenie niestandardowych okien dialogowych Zastosowanie formantów ActiveX w arkuszu Rozpocz(cid:163)cie prac projektowych Zadania realizowane z my(cid:314)l(cid:159) o ko(cid:295)cowym u(cid:343)ytkowniku Testowanie aplikacji Uodpornianie aplikacji na b(cid:167)(cid:163)dy pope(cid:167)niane przez u(cid:343)ytkownika Nadawanie aplikacji przyjaznego, intuicyjnego i estetycznego wygl(cid:159)du 19 19 21 21 22 22 23 23 24 24 25 26 26 26 26 27 27 27 27 29 31 31 33 33 35 37 38 38 39 39 40 42 43 43 45 47 Poleć książkęKup książkę 6 Spis tre(cid:258)ci Tworzenie systemu pomocy i dokumentacji przeznaczonej dla u(cid:343)ytkownika Dokumentowanie prac projektowych Przekazanie aplikacji u(cid:343)ytkownikom Aktualizacja aplikacji (kiedy to konieczne) Inne kwestie dotycz(cid:159)ce projektowania Wersja Excela zainstalowana przez u(cid:343)ytkownika Wersje j(cid:163)zykowe Wydajno(cid:314)(cid:243) systemu Tryby karty graficznej Rozdzia(cid:171) 2. Wprowadzenie do j(cid:164)zyka VBA Rejestrator makr Excela Tworzenie pierwszego makra Porównanie rejestrowania makr z odwo(cid:167)aniami wzgl(cid:163)dnymi i bezwzgl(cid:163)dnymi Inne zagadnienia zwi(cid:159)zane z makrami Praca z edytorem Visual Basic Editor (VBE) Podstawowe elementy edytora VBE Tajemnice okna Project Tajemnice okna Code Dostosowywanie (cid:314)rodowiska edytora Visual Basic Karta Editor Format Karta General Karta Docking Podstawowe informacje o j(cid:163)zyku VBA Obiekty Kolekcje W(cid:167)a(cid:314)ciwo(cid:314)ci Tajemnice obiektów Range Wyszukiwanie w(cid:167)a(cid:314)ciwo(cid:314)ci obiektów Range W(cid:167)a(cid:314)ciwo(cid:314)(cid:243) Range W(cid:167)a(cid:314)ciwo(cid:314)(cid:243) Cells W(cid:167)a(cid:314)ciwo(cid:314)(cid:243) Offset Podstawowe zagadnienia, które nale(cid:343)y zapami(cid:163)ta(cid:243) Nie panikuj — nie jeste(cid:314) sam Przeczytaj reszt(cid:163) ksi(cid:159)(cid:343)ki Pozwól Excelowi napisa(cid:243) makro za Ciebie Korzystaj z systemu pomocy U(cid:343)ywaj przegl(cid:159)darki obiektów Szukaj kodu w internecie Wykorzystuj fora dyskusyjne u(cid:343)ytkowników Excela Odwiedzaj blogi ekspertów Poszukaj szkolenia wideo na YouTube Ucz si(cid:163) z Microsoft Office Dev Center Analizuj inne aplikacje Excela, które s(cid:159) u(cid:343)ywane w Twojej organizacji Zapytaj lokalnego guru 48 48 49 49 50 50 50 51 51 53 53 54 58 63 68 68 70 72 76 78 79 80 80 81 82 82 87 87 87 89 92 93 95 95 96 96 97 98 99 99 100 100 101 101 Poleć książkęKup książkę Spis tre(cid:258)ci 7 Rozdzia(cid:171) 3. Podstawy programowania w j(cid:164)zyku VBA Przegl(cid:159)d elementów j(cid:163)zyka VBA Komentarze Zmienne, typy danych i sta(cid:167)e Definiowanie typów danych Deklarowanie zmiennych Zasi(cid:163)g zmiennych Zastosowanie sta(cid:167)ych Praca z (cid:167)a(cid:295)cuchami tekstu Przetwarzanie dat Instrukcje przypisania Tablice Deklarowanie tablic Deklarowanie tablic wielowymiarowych Deklarowanie tablic dynamicznych Zmienne obiektowe Typy danych definiowane przez u(cid:343)ytkownika Wbudowane funkcje VBA Praca z obiektami i kolekcjami Polecenie With … End With Polecenie For Each … Next Sterowanie sposobem wykonywania procedur Polecenie GoTo Polecenie If … Then Polecenie Select Case Wykonywanie bloku instrukcji w ramach p(cid:163)tli Rozdzia(cid:171) 4. Tworzenie procedur w j(cid:164)zyku VBA Kilka s(cid:167)ów o procedurach Deklarowanie procedury Sub Zasi(cid:163)g procedury Wykonywanie procedur Sub Uruchamianie procedury przy u(cid:343)yciu polecenia Run Sub/UserForm Uruchamianie procedury z poziomu okna dialogowego Makro Uruchamianie procedury przy u(cid:343)yciu skrótu z klawiszem Ctrl Uruchamianie procedury za pomoc(cid:159) Wst(cid:159)(cid:343)ki Uruchamianie procedur za po(cid:314)rednictwem niestandardowego menu podr(cid:163)cznego Wywo(cid:167)ywanie procedury z poziomu innej procedury Uruchamianie procedury poprzez klikni(cid:163)cie obiektu Wykonywanie procedury po wyst(cid:159)pieniu okre(cid:314)lonego zdarzenia Uruchamianie procedury z poziomu okna Immediate Przekazywanie argumentów procedurom Metody obs(cid:167)ugi b(cid:167)(cid:163)dów Przechwytywanie b(cid:167)(cid:163)dów Przyk(cid:167)ady kodu (cid:341)ród(cid:167)owego obs(cid:167)uguj(cid:159)cego b(cid:167)(cid:163)dy 103 103 106 107 108 110 113 116 118 118 120 122 123 123 124 124 126 127 130 130 131 133 134 135 139 143 153 153 154 155 157 158 158 159 160 161 161 166 168 169 170 173 174 175 Poleć książkęKup książkę 8 Spis tre(cid:258)ci Praktyczny przyk(cid:167)ad wykorzystuj(cid:159)cy procedury Sub Cel Wymagania projektowe Co ju(cid:343) wiesz Podej(cid:314)cie do zagadnienia Wst(cid:163)pne rejestrowanie makr Przygotowania Tworzenie kodu (cid:341)ród(cid:167)owego Tworzenie procedury sortuj(cid:159)cej Dodatkowe testy Usuwanie problemów Dost(cid:163)pno(cid:314)(cid:243) narz(cid:163)dzia Ocena projektu Rozdzia(cid:171) 5. Tworzenie funkcji w j(cid:164)zyku VBA Porównanie procedur Sub i Function Dlaczego tworzymy funkcje niestandardowe? Twoja pierwsza funkcja Zastosowanie funkcji w arkuszu Zastosowanie funkcji w procedurze j(cid:163)zyka VBA Analiza funkcji niestandardowej Procedury Function Zasi(cid:163)g funkcji Wywo(cid:167)ywanie procedur Function Argumenty funkcji Przyk(cid:167)ady funkcji Funkcja bezargumentowa Funkcje jednoargumentowe Funkcje z dwoma argumentami Funkcja pobieraj(cid:159)ca tablic(cid:163) jako argument Funkcje z argumentami opcjonalnymi Funkcje zwracaj(cid:159)ce tablic(cid:163) VBA Funkcje zwracaj(cid:159)ce warto(cid:314)(cid:243) b(cid:167)(cid:163)du Funkcje o nieokre(cid:314)lonej liczbie argumentów Emulacja funkcji arkuszowej SUMA Rozszerzone funkcje daty Wykrywanie i usuwanie b(cid:167)(cid:163)dów w funkcjach Okno dialogowe Wstawianie funkcji Zastosowanie metody MacroOptions Definiowanie kategorii funkcji Dodawanie opisu funkcji Zastosowanie dodatków do przechowywania funkcji niestandardowych Korzystanie z Windows API Przyk(cid:167)ady zastosowania funkcji interfejsu API systemu Windows Identyfikacja katalogu domowego systemu Windows Wykrywanie wci(cid:314)ni(cid:163)cia klawisza Shift Dodatkowe informacje na temat funkcji interfejsu API 179 179 179 180 181 181 183 184 185 190 191 194 195 197 198 198 199 200 201 201 204 205 206 209 210 210 213 216 217 218 220 223 224 226 229 231 233 233 235 237 237 238 239 239 241 242 Poleć książkęKup książkę Rozdzia(cid:171) 6. Obs(cid:171)uga zdarze(cid:298) Co powiniene(cid:314) wiedzie(cid:243) o zdarzeniach Sekwencje zdarze(cid:295) Gdzie nale(cid:343)y umie(cid:314)ci(cid:243) procedury obs(cid:167)ugi zdarze(cid:295)? Wy(cid:167)(cid:159)czanie obs(cid:167)ugi zdarze(cid:295) Tworzenie kodu procedury obs(cid:167)ugi zdarze(cid:295) Procedury obs(cid:167)ugi zdarze(cid:295) z argumentami Zdarzenia poziomu skoroszytu Zdarzenie Open Zdarzenie Activate Zdarzenie SheetActivate Zdarzenie NewSheet Zdarzenie BeforeSave Zdarzenie Deactivate Zdarzenie BeforePrint Zdarzenie BeforeClose Zdarzenia poziomu arkusza Zdarzenie Change Monitorowanie zmian w wybranym zakresie komórek Zdarzenie SelectionChange Zdarzenie BeforeDoubleClick Zdarzenie BeforeRightClick Zdarzenia dotycz(cid:159)ce aplikacji W(cid:167)(cid:159)czenie obs(cid:167)ugi zdarze(cid:295) poziomu aplikacji Sprawdzanie, czy skoroszyt jest otwarty Monitorowanie zdarze(cid:295) poziomu aplikacji Zdarzenia niezwi(cid:159)zane z obiektami Zdarzenie OnTime Zdarzenie OnKey Rozdzia(cid:171) 7. Przyk(cid:171)ady i techniki programowania w j(cid:164)zyku VBA Nauka poprzez praktyk(cid:163) Przetwarzanie zakresów Kopiowanie zakresów Przenoszenie zakresów Kopiowanie zakresu o zmiennej wielko(cid:314)ci Zaznaczanie oraz identyfikacja ró(cid:343)nego typu zakresów Zmiana rozmiaru zakresu komórek Wprowadzanie warto(cid:314)ci do komórki Wprowadzanie warto(cid:314)ci do nast(cid:163)pnej pustej komórki Wstrzymywanie dzia(cid:167)ania makra w celu umo(cid:343)liwienia pobrania zakresu wyznaczonego przez u(cid:343)ytkownika Zliczanie zaznaczonych komórek Okre(cid:314)lanie typu zaznaczonego zakresu Wydajne przetwarzanie komórek zaznaczonego zakresu przy u(cid:343)yciu p(cid:163)tli Usuwanie wszystkich pustych wierszy Powielanie wierszy Okre(cid:314)lanie, czy zakres zawiera si(cid:163) w innym zakresie Okre(cid:314)lanie typu danych zawartych w komórce Spis tre(cid:258)ci 9 243 243 245 245 247 248 249 251 253 254 254 254 255 255 256 257 259 260 261 266 267 268 269 271 271 273 273 274 275 281 281 282 282 284 284 286 288 289 291 292 294 295 297 300 301 303 303 Poleć książkęKup książkę 10 Spis tre(cid:258)ci Odczytywanie i zapisywanie zakresów Lepsza metoda zapisywania danych do zakresu komórek Przenoszenie zawarto(cid:314)ci tablic jednowymiarowych Przenoszenie zawarto(cid:314)ci zakresu do tablicy typu Variant Zaznaczanie komórek na podstawie warto(cid:314)ci Kopiowanie nieci(cid:159)g(cid:167)ego zakresu komórek Przetwarzanie skoroszytów i arkuszy Zapisywanie wszystkich skoroszytów Zapisywanie i zamykanie wszystkich skoroszytów Ukrywanie wszystkich komórek arkusza poza zaznaczonym zakresem Tworzenie spisu tre(cid:314)ci zawieraj(cid:159)cego hiper(cid:167)(cid:159)cza Synchronizowanie arkuszy Techniki programowania w j(cid:163)zyku VBA Prze(cid:167)(cid:159)czanie warto(cid:314)ci w(cid:167)a(cid:314)ciwo(cid:314)ci typu logicznego Wy(cid:314)wietlanie daty i czasu Wy(cid:314)wietlanie czasu w formie przyjaznej dla u(cid:343)ytkownika Pobieranie listy czcionek Sortowanie tablicy Przetwarzanie grupy plików Ciekawe funkcje, których mo(cid:343)esz u(cid:343)y(cid:243) w swoich projektach Funkcja FileExists Funkcja FileNameOnly Funkcja PathExists Funkcja RangeNameExists Funkcja SheetExists Funkcja WorkbookIsOpen Pobieranie warto(cid:314)ci z zamkni(cid:163)tego skoroszytu U(cid:343)yteczne, niestandardowe funkcje arkuszowe Funkcje zwracaj(cid:159)ce informacje o formatowaniu komórki Wy(cid:314)wietlanie daty zapisania lub wydrukowania pliku Obiekty nadrz(cid:163)dne Zliczanie komórek, których warto(cid:314)ci zawieraj(cid:159) si(cid:163) pomi(cid:163)dzy dwoma warto(cid:314)ciami Wyznaczanie ostatniej niepustej komórki kolumny lub wiersza Czy dany (cid:167)a(cid:295)cuch tekstu jest zgodny ze wzorcem? Wyznaczanie n-tego elementu (cid:167)a(cid:295)cucha Zamiana warto(cid:314)ci na posta(cid:243) s(cid:167)own(cid:159) Funkcja wielofunkcyjna Funkcja SHEETOFFSET Zwracanie maksymalnej warto(cid:314)ci ze wszystkich arkuszy Zwracanie tablicy zawieraj(cid:159)cej unikatowe, losowo uporz(cid:159)dkowane liczby ca(cid:167)kowite Porz(cid:159)dkowanie zakresu w losowy sposób Sortowanie zakresów Wywo(cid:167)ania funkcji interfejsu Windows API Deklaracje API Okre(cid:314)lanie skojarze(cid:295) plików Pobieranie informacji dotycz(cid:159)cych drukarki domy(cid:314)lnej Pobieranie informacji o aktualnej rozdzielczo(cid:314)ci karty graficznej Odczytywanie zawarto(cid:314)ci rejestru systemu Windows i zapisywanie w nim danych 305 306 309 309 310 312 314 314 315 315 317 318 319 319 320 321 323 324 326 327 328 328 329 329 330 330 331 333 333 335 337 338 339 340 342 343 344 345 345 347 348 350 351 351 352 354 355 356 Poleć książkęKup książkę Cz(cid:218)(cid:258)(cid:202) II. Zaawansowane techniki programowania 359 Spis tre(cid:258)ci 11 Rozdzia(cid:171) 8. Tabele przestawne Przyk(cid:167)ad prostej tabeli przestawnej Tworzenie tabel przestawnych Analiza zarejestrowanego kodu tworz(cid:159)cego tabel(cid:163) przestawn(cid:159) Optymalizacja wygenerowanego kodu tworz(cid:159)cego tabel(cid:163) przestawn(cid:159) Tworzenie z(cid:167)o(cid:343)onych tabel przestawnych Kod tworz(cid:159)cy tabel(cid:163) przestawn(cid:159) Jak dzia(cid:167)a z(cid:167)o(cid:343)ona tabela przestawna? Jednoczesne tworzenie wielu tabel przestawnych Tworzenie odwróconych tabel przestawnych Rozdzia(cid:171) 9. Wykresy Podstawowe wiadomo(cid:314)ci o wykresach Lokalizacja wykresu Rejestrator makr a wykresy Model obiektu Chart Tworzenie wykresów osadzonych na arkuszu danych Tworzenie wykresu na arkuszu wykresu Modyfikowanie wykresów Wykorzystanie VBA do uaktywnienia wykresu Przenoszenie wykresu Wykorzystanie VBA do dezaktywacji wykresu Sprawdzanie, czy wykres zosta(cid:167) uaktywniony Usuwanie elementów z kolekcji ChartObjects lub Charts Przetwarzanie wszystkich wykresów w p(cid:163)tli Zmiana rozmiarów i wyrównywanie obiektów ChartObject Tworzenie du(cid:343)ej liczby wykresów Eksportowanie wykresów Eksportowanie wszystkich obiektów graficznych Zmiana danych prezentowanych na wykresie Modyfikacja danych wykresu na podstawie aktywnej komórki Zastosowanie j(cid:163)zyka VBA do identyfikacji zakresu danych prezentowanych na wykresie Wykorzystanie VBA do wy(cid:314)wietlania dowolnych etykiet danych na wykresie Wy(cid:314)wietlanie wykresu w oknie formularza UserForm Zdarzenia zwi(cid:159)zane z wykresami Przyk(cid:167)ad wykorzystania zdarze(cid:295) zwi(cid:159)zanych z wykresami Obs(cid:167)uga zdarze(cid:295) dla wykresów osadzonych Przyk(cid:167)ad zastosowania zdarze(cid:295) dla wykresów osadzonych Jak u(cid:167)atwi(cid:243) sobie prac(cid:163) z wykresami przy u(cid:343)yciu VBA? Drukowanie wykresów osadzonych na arkuszu Tworzenie wykresów, które nie s(cid:159) po(cid:167)(cid:159)czone z danymi Wykorzystanie zdarzenia MouseOver do wy(cid:314)wietlania tekstu Przewijanie wykresów Tworzenie wykresów przebiegu w czasie 361 361 362 365 365 368 370 371 373 376 379 379 380 381 381 383 384 385 386 387 389 389 390 391 394 395 398 398 400 401 403 406 410 412 413 416 417 419 420 420 422 425 427 Poleć książkęKup książkę 12 Spis tre(cid:258)ci Rozdzia(cid:171) 10. Interakcje z innymi aplikacjami Automatyzacja zada(cid:295) w pakiecie Microsoft Office Koncepcja wi(cid:159)za(cid:295) Przyk(cid:167)ad prostej automatyzacji Sterowanie baz(cid:159) danych Access z poziomu Excela Uruchamianie zapyta(cid:295) bazy danych Access z poziomu Excela Uruchamianie makr Accessa z poziomu Excela Sterowanie edytorem Word z poziomu Excela Przesy(cid:167)anie danych z Excela do dokumentu Worda Symulacja tworzenia korespondencji seryjnej z u(cid:343)yciem Worda Sterowanie programem PowerPoint z poziomu Excela Przesy(cid:167)anie danych z Excela do prezentacji PowerPoint Przesy(cid:167)anie wszystkich wykresów z arkusza Excela do prezentacji PowerPoint Zamiana skoroszytu na prezentacj(cid:163) PowerPoint Sterowanie programem Outlook z poziomu Excela Wysy(cid:167)anie aktywnego skoroszytu jako za(cid:167)(cid:159)cznika Wysy(cid:167)anie wybranego zakresu komórek jako za(cid:167)(cid:159)cznika wiadomo(cid:314)ci Wysy(cid:167)anie pojedynczego arkusza jako za(cid:167)(cid:159)cznika wiadomo(cid:314)ci Wysy(cid:167)anie wiadomo(cid:314)ci do wszystkich adresatów z listy kontaktów Uruchamianie innych aplikacji z poziomu Excela Zastosowanie funkcji Shell j(cid:163)zyka VBA Zastosowanie funkcji ShellExecute interfejsu Windows API Wykorzystanie instrukcji AppActivate Uruchamianie okien dialogowych Panelu sterowania Rozdzia(cid:171) 11. Praca z danymi zewn(cid:164)trznymi i plikami Praca z danymi ze (cid:341)róde(cid:167) zewn(cid:163)trznych R(cid:163)czne tworzenie po(cid:167)(cid:159)czenia z zewn(cid:163)trznymi (cid:341)ród(cid:167)ami danych R(cid:163)czna modyfikacja po(cid:167)(cid:159)cze(cid:295) z zewn(cid:163)trznymi (cid:341)ród(cid:167)ami danych Zastosowanie j(cid:163)zyka VBA do tworzenia dynamicznych po(cid:167)(cid:159)cze(cid:295) danych Przechodzenie w p(cid:163)tli przez wszystkie po(cid:167)(cid:159)czenia skoroszytu Zastosowanie ADO i VBA do pobierania danych ze (cid:341)róde(cid:167) zewn(cid:163)trznych Ci(cid:159)g po(cid:167)(cid:159)czenia Deklarowanie zestawu rekordów Odwo(cid:167)ania do biblioteki obiektów ADO (cid:166)(cid:159)czenie wszystkiego razem w kodzie procedury Zastosowanie obiektów ADO w aktywnym skoroszycie Operacje z plikami tekstowymi Otwieranie plików tekstowych Odczytywanie plików tekstowych Zapisywanie danych do plików tekstowych Przydzielanie numeru pliku Okre(cid:314)lanie lub ustawianie pozycji w pliku Instrukcje pozwalaj(cid:159)ce na odczytywanie i zapisywanie plików Przyk(cid:167)ady wykonywania operacji na plikach Importowanie danych z pliku tekstowego Eksportowanie zakresu do pliku tekstowego Importowanie pliku tekstowego do zakresu Logowanie wykorzystania Excela Filtrowanie zawarto(cid:314)ci pliku tekstowego 431 431 432 435 435 436 437 438 438 439 442 442 443 445 446 446 447 449 450 451 451 453 455 456 457 457 458 461 463 465 466 466 468 469 470 472 474 475 476 476 476 477 478 478 478 479 480 481 482 Poleć książkęKup książkę Spis tre(cid:258)ci 13 Najcz(cid:163)(cid:314)ciej wykonywane operacje na plikach Zastosowanie polece(cid:295) j(cid:163)zyka VBA do wykonywania operacji na plikach Zastosowanie obiektu FileSystemObject Pakowanie i rozpakowywanie plików Pakowanie plików do formatu ZIP Rozpakowywanie plików ZIP Cz(cid:218)(cid:258)(cid:202) III. Praca z formularzami UserForm Rozdzia(cid:171) 12. Tworzenie w(cid:171)asnych okien dialogowych Zanim rozpoczniesz tworzenie formularza UserForm Okno wprowadzania danych Funkcja InputBox j(cid:163)zyka VBA Metoda Application.InputBox Funkcja MsgBox j(cid:163)zyka VBA Metoda GetOpenFilename programu Excel Metoda GetSaveAsFilename programu Excel Okno wybierania katalogu Wy(cid:314)wietlanie wbudowanych okien dialogowych Excela Wy(cid:314)wietlanie formularza danych Wy(cid:314)wietlanie formularza wprowadzania danych Wy(cid:314)wietlanie formularza wprowadzania danych za pomoc(cid:159) VBA Rozdzia(cid:171) 13. Wprowadzenie do formularzy UserForm Jak Excel obs(cid:167)uguje niestandardowe okna dialogowe Wstawianie nowego formularza UserForm Dodawanie formantów do formularza UserForm Formanty okna Toolbox Formant CheckBox Formant ComboBox Formant CommandButton Formant Frame Formant Image Formant Label Formant ListBox Formant MultiPage Formant OptionButton Formant RefEdit Formant ScrollBar Formant SpinButton Formant TabStrip Formant TextBox Formant ToggleButton Modyfikowanie formantów formularza UserForm Modyfikowanie w(cid:167)a(cid:314)ciwo(cid:314)ci formantów Zastosowanie okna Properties Wspólne w(cid:167)a(cid:314)ciwo(cid:314)ci Uwzgl(cid:163)dnienie wymaga(cid:295) u(cid:343)ytkowników preferuj(cid:159)cych korzystanie z klawiatury 483 483 488 491 492 493 495 497 497 498 498 500 504 509 513 514 514 517 518 519 521 521 522 523 524 524 525 525 525 526 526 526 526 526 527 527 527 527 527 528 529 531 531 533 535 Poleć książkęKup książkę 14 Spis tre(cid:258)ci Wy(cid:314)wietlanie formularza UserForm Zmiana po(cid:167)o(cid:343)enia formularza na ekranie Wy(cid:314)wietlanie niemodalnych okien formularzy UserForm Wy(cid:314)wietlanie formularza UserForm na podstawie zmiennej (cid:166)adowanie formularza UserForm Procedury obs(cid:167)ugi zdarze(cid:295) Zamykanie formularza UserForm Przyk(cid:167)ad tworzenia formularza UserForm Tworzenie formularza UserForm Tworzenie kodu procedury wy(cid:314)wietlaj(cid:159)cej okno dialogowe Testowanie okna dialogowego Dodawanie procedur obs(cid:167)ugi zdarze(cid:295) Zako(cid:295)czenie tworzenia okna dialogowego Zdarzenia powi(cid:159)zane z formularzem UserForm Zdobywanie informacji na temat zdarze(cid:295) Zdarzenia formularza UserForm Zdarzenia zwi(cid:159)zane z formantem SpinButton Wspó(cid:167)praca formantu SpinButton z formantem TextBox Odwo(cid:167)ywanie si(cid:163) do formantów formularza UserForm Dostosowywanie okna Toolbox do w(cid:167)asnych wymaga(cid:295) Dodawanie nowych kart Dostosowywanie lub (cid:167)(cid:159)czenie formantów Dodawanie nowych formantów ActiveX Tworzenie szablonów formularzy UserForm Lista kontrolna tworzenia i testowania formularzy UserForm Rozdzia(cid:171) 14. Przyk(cid:171)ady formularzy UserForm Tworzenie formularza UserForm pe(cid:167)ni(cid:159)cego funkcj(cid:163) menu Zastosowanie przycisków CommandButton w formularzach UserForm Zastosowanie formantów ListBox w formularzach UserForm Zaznaczanie zakresów przy u(cid:343)yciu formularza UserForm Tworzenie okna powitalnego Wy(cid:167)(cid:159)czanie przycisku Zamknij formularza UserForm Zmiana wielko(cid:314)ci formularza UserForm Powi(cid:163)kszanie i przewijanie arkusza przy u(cid:343)yciu formularza UserForm Zastosowania formantu ListBox Tworzenie listy elementów formantu ListBox Identyfikowanie zaznaczonego elementu listy formantu ListBox Identyfikowanie wielu zaznaczonych elementów listy formantu ListBox Wiele list w jednym formancie ListBox Przenoszenie elementów listy formantu ListBox Zmiana kolejno(cid:314)ci elementów listy formantu ListBox Wielokolumnowe formanty ListBox Zastosowanie formantu ListBox do wybierania wierszy arkusza Uaktywnianie arkusza za pomoc(cid:159) formantu ListBox Filtrowanie zawarto(cid:314)ci listy za pomoc(cid:159) pola tekstowego Zastosowanie formantu MultiPage na formularzach UserForm Korzystanie z formantów zewn(cid:163)trznych Animowanie etykiet 537 538 538 539 539 539 540 542 542 545 545 547 548 549 549 550 551 553 556 558 558 559 560 561 563 565 566 566 567 568 570 573 574 575 577 578 584 585 586 587 589 591 593 596 598 601 602 605 Poleć książkęKup książkę Rozdzia(cid:171) 15. Zaawansowane techniki korzystania z formularzy UserForm Niemodalne okna dialogowe Wy(cid:314)wietlanie wska(cid:341)nika post(cid:163)pu zadania Tworzenie samodzielnego wska(cid:341)nika post(cid:163)pu zadania Wy(cid:314)wietlanie wska(cid:341)nika post(cid:163)pu zintegrowanego z formularzem UserForm Tworzenie innych, niegraficznych wska(cid:341)ników post(cid:163)pu Tworzenie kreatorów Konfigurowanie formantu MultiPage w celu utworzenia kreatora Dodawanie przycisków do formularza UserForm kreatora Programowanie przycisków kreatora Zale(cid:343)no(cid:314)ci programowe w kreatorach Wykonywanie zada(cid:295) za pomoc(cid:159) kreatorów Emulacja funkcji MsgBox Emulacja funkcji MsgBox: kod funkcji MyMsgBox Jak dzia(cid:167)a funkcja MyMsgBox Wykorzystanie funkcji MyMsgBox do emulacji funkcji MsgBox Formularz UserForm z formantami, których po(cid:167)o(cid:343)enie mo(cid:343)na zmienia(cid:243) Formularz UserForm bez paska tytu(cid:167)owego Symulacja paska narz(cid:163)dzi za pomoc(cid:159) formularza UserForm Emulowanie panelu zada(cid:295) za pomoc(cid:159) formularza UserForm Formularze UserForm z mo(cid:343)liwo(cid:314)ci(cid:159) zmiany rozmiaru Obs(cid:167)uga wielu przycisków formularza UserForm za pomoc(cid:159) jednej procedury obs(cid:167)ugi zdarze(cid:295) Wybór koloru za pomoc(cid:159) formularza UserForm Wy(cid:314)wietlanie wykresów na formularzach UserForm Zapisywanie wykresu w postaci pliku GIF Modyfikacja w(cid:167)a(cid:314)ciwo(cid:314)ci Picture formantu Image Tworzenie pó(cid:167)przezroczystych formularzy UserForm Uk(cid:167)adanka na formularzu UserForm Poker na formularzu UserForm Cz(cid:218)(cid:258)(cid:202) IV. Tworzenie aplikacji Rozdzia(cid:171) 16. Tworzenie i wykorzystanie dodatków Czym s(cid:159) dodatki? Porównanie dodatku ze standardowym skoroszytem Po co tworzy si(cid:163) dodatki? Mened(cid:343)er dodatków Excela Tworzenie dodatków Przyk(cid:167)ad tworzenia dodatku Tworzenie opisu dla dodatku Tworzenie dodatku Instalowanie dodatku Testowanie dodatków Dystrybucja dodatków Modyfikowanie dodatku Spis tre(cid:258)ci 15 609 610 614 615 619 623 626 628 628 629 631 632 633 635 636 638 638 640 642 644 646 651 654 656 657 657 657 660 661 663 665 665 666 667 669 671 672 674 674 676 677 677 677 Poleć książkęKup książkę 16 Spis tre(cid:258)ci Porównanie plików XLAM i XLSM Pliki XLAM — przynale(cid:343)no(cid:314)(cid:243) do kolekcji z poziomu VBA Widoczno(cid:314)(cid:243) plików XLSM i XLAM Arkusze i wykresy w plikach XLSM i XLAM Dost(cid:163)p do procedur VBA w dodatku Przetwarzanie dodatków za pomoc(cid:159) kodu VBA Dodawanie nowych elementów do kolekcji AddIns Usuwanie elementów z kolekcji AddIns W(cid:167)a(cid:314)ciwo(cid:314)ci obiektu AddIn Korzystanie z dodatku jak ze skoroszytu Zdarzenia zwi(cid:159)zane z obiektami AddIn Optymalizacja wydajno(cid:314)ci dodatków Problemy z dodatkami Upewnij si(cid:163), (cid:343)e dodatek zosta(cid:167) zainstalowany Odwo(cid:167)ywanie si(cid:163) do innych plików z poziomu dodatku Wykrywanie w(cid:167)a(cid:314)ciwej wersji Excela dla dodatku Rozdzia(cid:171) 17. Praca ze Wst(cid:160)(cid:346)k(cid:160) Wprowadzenie do pracy ze Wst(cid:159)(cid:343)k(cid:159) Dostosowywanie Wst(cid:159)(cid:343)ki do w(cid:167)asnych potrzeb Dodawanie nowych przycisków do Wst(cid:159)(cid:343)ki Dodawanie przycisków do paska narz(cid:163)dzi Szybki dost(cid:163)p Ograniczenia w dostosowywaniu Wst(cid:159)(cid:343)ki Modyfikowanie Wst(cid:159)(cid:343)ki za pomoc(cid:159) kodu RibbonX Dodawanie przycisków do istniej(cid:159)cej karty Dodawanie pola wyboru do istniej(cid:159)cej karty Demo formantów Wst(cid:159)(cid:343)ki Przyk(cid:167)ad u(cid:343)ycia formantu DynamicMenu Wi(cid:163)cej wskazówek dotycz(cid:159)cych modyfikacji Wst(cid:159)(cid:343)ki VBA i Wst(cid:159)(cid:343)ka Dost(cid:163)p do polece(cid:295) Wst(cid:159)(cid:343)ki Praca ze Wst(cid:159)(cid:343)k(cid:159) Aktywowanie karty Tworzenie pasków narz(cid:163)dzi w starym stylu Ograniczenia funkcjonalno(cid:314)ci tradycyjnych pasków narz(cid:163)dzi w Excelu 2007 i nowszych wersjach Kod tworz(cid:159)cy pasek narz(cid:163)dzi Rozdzia(cid:171) 18. Praca z menu podr(cid:164)cznym Obiekt CommandBar Rodzaje obiektów CommandBar Wy(cid:314)wietlanie menu podr(cid:163)cznych Odwo(cid:167)ania do elementów kolekcji CommandBars Odwo(cid:167)ania do formantów obiektu CommandBar W(cid:167)a(cid:314)ciwo(cid:314)ci formantów obiektu CommandBar Wy(cid:314)wietlanie wszystkich elementów menu podr(cid:163)cznego Wykorzystanie VBA do dostosowywania menu podr(cid:163)cznego Menu podr(cid:163)czne w jednodokumentowym interfejsie Excela Resetowanie menu podr(cid:163)cznego Wy(cid:167)(cid:159)czanie menu podr(cid:163)cznego 679 679 680 680 681 685 685 687 687 691 691 692 693 693 695 696 697 697 700 700 703 703 705 705 712 716 724 726 728 729 730 732 732 733 733 737 737 738 738 740 740 742 743 746 746 748 749 Poleć książkęKup książkę Wy(cid:167)(cid:159)czanie wybranych elementów menu podr(cid:163)cznego Dodawanie nowego elementu do menu podr(cid:163)cznego Cell Dodawanie nowego podmenu do menu podr(cid:163)cznego Ograniczanie zasi(cid:163)gu modyfikacji menu podr(cid:163)cznego do jednego skoroszytu Menu podr(cid:163)czne i zdarzenia Automatyczne tworzenie i usuwanie menu podr(cid:163)cznego Wy(cid:167)(cid:159)czanie lub ukrywanie elementów menu podr(cid:163)cznego Tworzenie kontekstowych menu podr(cid:163)cznych Rozdzia(cid:171) 19. Tworzenie systemów pomocy w aplikacjach Systemy pomocy w aplikacjach Excela Systemy pomocy wykorzystuj(cid:159)ce komponenty Excela Wykorzystanie komentarzy do tworzenia systemów pomocy Wykorzystanie pól tekstowych do wy(cid:314)wietlania pomocy Wykorzystanie arkusza do wy(cid:314)wietlania tekstu pomocy Wy(cid:314)wietlanie pomocy w oknie formularza UserForm Wy(cid:314)wietlanie pomocy w oknie przegl(cid:159)darki sieciowej Zastosowanie plików w formacie HTML Zastosowanie plików w formacie MHTML Wykorzystanie systemu HTML Help Wykorzystanie metody Help do wy(cid:314)wietlania pomocy w formacie HTML Help (cid:166)(cid:159)czenie pliku pomocy z aplikacj(cid:159) Przypisanie tematów pomocy do funkcji VBA Rozdzia(cid:171) 20. Modu(cid:171)y klas Czym jest modu(cid:167) klasy? Wbudowane modu(cid:167)y klas Niestandardowe modu(cid:167)y klas Tworzymy klas(cid:163) NumLock Wstawianie modu(cid:167)u klasy Dodawanie kodu VBA do modu(cid:167)u klasy Zastosowanie klasy NumLock Programowanie w(cid:167)a(cid:314)ciwo(cid:314)ci, metod i zdarze(cid:295) Programowanie w(cid:167)a(cid:314)ciwo(cid:314)ci obiektów Programowanie metod obiektów Zdarzenia modu(cid:167)u klasy Zdarzenia obiektu QueryTable Tworzenie klas przechowuj(cid:159)cych inne klasy Tworzenie klas CSalesRep oraz CSalesReps Tworzenie klas CInvoice oraz CInvoices Wype(cid:167)nianie klasy nadrz(cid:163)dnej obiektami Obliczanie prowizji Rozdzia(cid:171) 21. Problem kompatybilno(cid:317)ci aplikacji Co to jest kompatybilno(cid:314)(cid:243)? Rodzaje problemów ze zgodno(cid:314)ci(cid:159) Unikaj u(cid:343)ywania nowych funkcji i mechanizmów Czy aplikacja b(cid:163)dzie dzia(cid:167)a(cid:243) na komputerach Macintosh? Praca z 64-bitow(cid:159) wersj(cid:159) Excela Spis tre(cid:258)ci 17 750 750 753 755 756 756 757 758 761 761 764 764 766 767 768 772 772 773 775 778 779 779 783 783 784 785 786 786 787 789 790 790 792 792 793 797 797 799 801 802 805 805 806 808 810 811 Poleć książkęKup książkę 18 Spis tre(cid:258)ci Tworzenie aplikacji dla wielu wersji narodowych Aplikacje obs(cid:167)uguj(cid:159)ce wiele j(cid:163)zyków Obs(cid:167)uga j(cid:163)zyka w kodzie VBA Wykorzystanie w(cid:167)a(cid:314)ciwo(cid:314)ci lokalnych Identyfikacja ustawie(cid:295) systemu Ustawienia daty i godziny Dodatki Dodatek A. Instrukcje i funkcje VBA Skorowidz 813 813 816 816 817 819 821 823 833 Poleć książkęKup książkę Rozdzia(cid:239) 2 Wprowadzenie do j(cid:218)zyka VBA W TYM ROZDZIALE: (cid:105) Jak korzysta(cid:243) z rejestratora makr programu Excel (cid:105) Jak korzysta(cid:243) z edytora VBE? (cid:105) Model obiektowy Excela (cid:105) Przyk(cid:167)ady zastosowa(cid:295) obiektów Range (cid:105) Gdzie szuka(cid:243) dodatkowych informacji Rejestrator makr Excela Makro to w zasadzie nic innego jak kod programu napisany w j(cid:163)zyku Visual Basic for Applications (VBA), który mo(cid:343)esz uruchamia(cid:243) w celu wykonania wielu ró(cid:343)nych operacji. Makra w Excelu mog(cid:159) by(cid:243) pisane bezpo(cid:314)rednio w edytorze lub rejestrowane za pomoc(cid:159) rejestratora makr. Terminologia u(cid:343)ywana w programowaniu Excela mo(cid:343)e by(cid:243) nieco myl(cid:159)ca. Zarejestrowane ma- kro z technicznego punktu widzenia nie ró(cid:343)ni si(cid:163) niczym od procedury VBA, któr(cid:159) mo(cid:343)esz napisa(cid:243) r(cid:163)cznie. Okre(cid:314)lenia „makro” i „procedura VBA” s(cid:159) bardzo cz(cid:163)sto u(cid:343)ywane wymiennie. Wielu u(cid:343)ytkowników Excela wszystkie procedury j(cid:163)zyka VBA nazywa makrami. Z drugiej jednak strony, bardzo cz(cid:163)sto u(cid:343)ytkownicy Excela, mówi(cid:159)c o makrach, maj(cid:159) na my(cid:314)li proce- dury VBA zarejestrowane przy u(cid:343)yciu rejestratora makr. 53 Poleć książkęKup książkę 54 Cz(cid:218)(cid:258)(cid:202) I. Wprowadzenie do j(cid:218)zyka Excel VBA Rejestrowanie makra przypomina nieco zapisywanie nowego numeru w pami(cid:163)ci telefonu komór- kowego. Aby to zrobi(cid:243), najpierw musisz r(cid:163)cznie wybra(cid:243) i zapisa(cid:243) numer w telefonie, dzi(cid:163)ki czemu mo(cid:343)esz pó(cid:341)niej szybko si(cid:163) z nim po(cid:167)(cid:159)czy(cid:243) za pomoc(cid:159) naci(cid:314)ni(cid:163)cia jednego klawisza. Podobnie ma si(cid:163) sprawa z Excelem, gdzie mo(cid:343)esz rejestrowa(cid:243) ró(cid:343)ne operacje podczas ich wykonywania. Kiedy Ty jeste(cid:314) zaj(cid:163)ty dzia(cid:167)aniem, Excel przetwarza wszystkie wykonywane przez Ciebie operacje, naci- (cid:314)ni(cid:163)cia klawiszy i klikni(cid:163)cia myszy na odpowiadaj(cid:159)ce im polecenia VBA. Po zarejestrowaniu ma- kra mo(cid:343)esz w dowolnym momencie uruchomi(cid:243) i odtworzy(cid:243) wykonywane wcze(cid:314)niej dzia(cid:167)ania. Zdecydowanie najlepszym sposobem na szybkie zapoznanie si(cid:163) ze specyfik(cid:159) i sk(cid:167)adni(cid:159) polece(cid:295) j(cid:163)zyka VBA jest uruchomienie rejestratora makr, wykonanie kilku operacji w Excelu, a nast(cid:163)p- nie uwa(cid:343)ne przeanalizowanie kodu utworzonego przez rejestrator. W tym podrozdziale b(cid:163)dziesz pracowa(cid:167) z ró(cid:343)nymi makrami i dowiesz si(cid:163), jak u(cid:343)ywa(cid:243) rejestra- tora makr do poznawania tajników programowania w j(cid:163)zyku VBA. Tworzenie pierwszego makra Aby móc rozpocz(cid:159)(cid:243) rejestrowanie swojego pierwszego makra, musisz najpierw odszuka(cid:243) przycisk uruchamiaj(cid:159)cy rejestrator makr, który znajduje si(cid:163) na karcie Deweloper. Niestety domy(cid:314)lnie po za- instalowaniu Excela karta Deweloper mo(cid:343)e nie by(cid:243) widoczna. Je(cid:343)eli chcesz pracowa(cid:243) z makrami VBA, b(cid:163)dziesz musia(cid:167) j(cid:159) samodzielnie w(cid:167)(cid:159)czy(cid:243). Aby to zrobi(cid:243), powiniene(cid:314) wykona(cid:243) nast(cid:163)puj(cid:159)ce operacje: 1. Przejd(cid:341) na kart(cid:163) Plik i naci(cid:314)nij przycisk Opcje. 2. Na ekranie pojawi si(cid:163) okno dialogowe opcji Excela. Wybierz opcj(cid:163) Dostosowywanie Wst(cid:160)(cid:347)ki. 3. Na li(cid:314)cie dost(cid:163)pnych kart, znajduj(cid:159)cej si(cid:163) w prawej cz(cid:163)(cid:314)ci okna, odszukaj i zaznacz kart(cid:163) Deweloper. 4. Naci(cid:314)nij przycisk OK, aby powróci(cid:243) do g(cid:167)ównego okna Excela. Od tej chwili na Wst(cid:159)(cid:343)ce Excela karta Deweloper powinna by(cid:243) widoczna. Aby teraz uruchomi(cid:243) re- jestrator makr, przejd(cid:341) na kart(cid:163) Deweloper i naci(cid:314)nij przycisk Zarejestruj makro, znajduj(cid:159)cy si(cid:163) w gru- pie opcji Kod. Na ekranie pojawi si(cid:163) okno dialogowe Rejestrowanie makra, pokazane na rysunku 2.1. Rysunek 2.1. Okno dialogowe Rejestrowanie makra Poleć książkęKup książkę Rozdzia(cid:239) 2. Wprowadzenie do j(cid:218)zyka VBA 55 W oknie dialogowym Rejestrowanie makra mo(cid:343)emy wyró(cid:343)ni(cid:243) cztery pola: (cid:120) Nazwa makra. Nazwa tego pola nie wymaga chyba specjalnych obja(cid:314)nie(cid:295). Excel przypisuje do nowego makra domy(cid:314)ln(cid:159) nazw(cid:163), sk(cid:167)adaj(cid:159)c(cid:159) si(cid:163) ze s(cid:167)owa Makro i kolejnego numeru, ale oczywi(cid:314)cie mo(cid:343)esz (i w wi(cid:163)kszo(cid:314)ci przypadków powiniene(cid:314)) zmieni(cid:243) t(cid:163) nazw(cid:163) na co(cid:314) bardziej opisowego. Na przyk(cid:167)ad makro, które b(cid:163)dzie zmienia(cid:167)o wygl(cid:159)d tabeli, mo(cid:343)esz nazwa(cid:243) FormatowanieTabeli. (cid:120) Klawisz skrótu. Aby dane makro zosta(cid:167)o uruchomione, musi zaj(cid:314)(cid:243) okre(cid:314)lone zdarzenie. Takim zdarzeniem mo(cid:343)e by(cid:243) naci(cid:314)ni(cid:163)cie danej kombinacji klawiszy, naci(cid:314)ni(cid:163)cie przycisku polecenia czy otwarcie lub zamkni(cid:163)cie skoroszytu. Je(cid:343)eli przypiszesz do makra okre(cid:314)lon(cid:159) kombinacj(cid:163) klawiszy, to makro zostanie uruchomione za ka(cid:343)dym razem, kiedy u(cid:343)ytkownik naci(cid:314)nie tak(cid:159) kombinacj(cid:163). Pole Klawisz skrótu jest opcjonalne. (cid:120) Przechowuj makro w. Domy(cid:314)ln(cid:159) warto(cid:314)ci(cid:159) tego pola jest Ten skoroszyt. Wybranie tej opcji oznacza po prostu, (cid:343)e nasze makro zostanie zapisane w aktualnie otwartym skoroszycie. Dzi(cid:163)ki temu nast(cid:163)pnym razem, kiedy otworzysz ten skoroszyt, b(cid:163)dziesz móg(cid:167) uruchomi(cid:243) zapisane w nim makro. Co wi(cid:163)cej, je(cid:343)eli udost(cid:163)pnisz ten skoroszyt innemu u(cid:343)ytkownikowi, to on równie(cid:343) b(cid:163)dzie móg(cid:167) takie makro uruchomi(cid:243) (oczywi(cid:314)cie przy za(cid:167)o(cid:343)eniu, (cid:343)e b(cid:163)dzie mia(cid:167) odpowiednio ustawione opcje bezpiecze(cid:295)stwa makr — wi(cid:163)cej informacji na ten temat znajdziesz w dalszej cz(cid:163)(cid:314)ci tego rozdzia(cid:167)u). (cid:120) Opis. Jest to pole opcjonalne, w którym mo(cid:343)esz zamie(cid:314)ci(cid:243) opis przeznaczenia i sposobu dzia(cid:167)ania makra. Takie pole jest bardzo przydatne zw(cid:167)aszcza w sytuacji, kiedy w skoroszycie zapisanych jest bardzo wiele makr lub chcesz przekaza(cid:243) innym u(cid:343)ytkownikom dodatkowe informacje na temat danego makra. Aby utworzy(cid:243) proste makro, które b(cid:163)dzie wpisywa(cid:167)o Twoje imi(cid:163) do wybranej komórki arkusza, otwórz okno rejestratora makr i wykonaj polecenia opisane poni(cid:343)ej: 1. W polu Nazwa makra wpisz now(cid:159) nazw(cid:163) makra, zast(cid:163)puj(cid:159)c domy(cid:314)ln(cid:159) nazw(cid:163) Makro1. W naszym przyk(cid:167)adzie wybrali(cid:314)my dla tego makra nazw(cid:163) MojeDane. 2. Przypisz do makra kombinacj(cid:163) klawiszy Ctrl+Shift+N. Aby to zrobi(cid:243), w polu Klawisz skrótu wpisz wielk(cid:159) liter(cid:163) N. 3. Naci(cid:314)nij przycisk OK, aby zamkn(cid:159)(cid:243) okno dialogowe Rejestrowanie makra i rozpocz(cid:159)(cid:243) rejestrowanie makra. 4. Kliknij dowolnie wybran(cid:159) komórk(cid:163) arkusza, wpisz w niej swoje imi(cid:163) i nazwisko, a nast(cid:163)pnie naci(cid:314)nij klawisz Enter. 5. Przejd(cid:341) na kart(cid:163) Deweloper i naci(cid:314)nij przycisk Zatrzymaj rejestrowanie, znajduj(cid:159)cy si(cid:163) w grupie polece(cid:295) Kod (zamiast tego mo(cid:343)esz po prostu nacisn(cid:159)(cid:243) przycisk Zatrzymaj rejestrowanie, znajduj(cid:159)cy si(cid:163) na pasku stanu w dolnej cz(cid:163)(cid:314)ci okna programu Excel). Poleć książkęKup książkę 56 Cz(cid:218)(cid:258)(cid:202) I. Wprowadzenie do j(cid:218)zyka Excel VBA PRZEGL(cid:107)DANIE I SPRAWDZANIE UTWORZONEGO MAKRA Nasze makro zosta(cid:167)o zarejestrowane w nowym module kodu o nazwie Module1. Aby wy(cid:314)wietli(cid:243) kod VBA znajduj(cid:159)cy si(cid:163) w tym module, musisz uruchomi(cid:243) edytor VBE. Mo(cid:343)esz to zrobi(cid:243) na jeden z dwóch sposobów: (cid:120) Naci(cid:314)nij kombinacj(cid:163) klawiszy Alt+F11. (cid:120) Przejd(cid:341) na kart(cid:163) Deweloper i naci(cid:314)nij przycisk Visual Basic znajduj(cid:159)cy si(cid:163) w grupie opcji Kod. W oknie edytora VBE znajdziesz panel o nazwie Project (projekt), w którym wy(cid:314)wietlana jest lista wszystkich aktualnie otwartych skoroszytów i dodatków. Ka(cid:343)dy skoroszyt i dodatek sta- nowi osobny projekt, którego w(cid:163)z(cid:167)y sk(cid:167)adowe mo(cid:343)esz dowolnie zwija(cid:243) i rozwija(cid:243). Kod naszego zarejestrowanego przed chwil(cid:159) makra znajduje si(cid:163) w module kodu o nazwie Module1 aktyw- nego skoroszytu. Kiedy dwukrotnie klikniesz lewym przyciskiem myszy ikon(cid:163) tego modu(cid:167)u, kod makra pojawi si(cid:163) w oknie kodu w prawej cz(cid:163)(cid:314)ci ekranu. UWAGA Je(cid:285)eli okno eksploratora projektów nie jest widoczne, mo(cid:285)esz je otworzy(cid:202), wybieraj(cid:200)c z menu g(cid:239)ównego edytora VBE polecenie View/Project Explorer (widok/eksplorator projektów). Ten sam efekt mo(cid:285)esz uzyska(cid:202), naciskaj(cid:200)c po prostu kombinacj(cid:218) klawiszy Ctrl+R. Kod naszego zarejestrowanego makra powinien wygl(cid:159)da(cid:243) mniej wi(cid:163)cej tak: Sub MojeDane() MojeDane Makro Klawisz skrótu: Ctrl+Shift+N ActiveCell.FormulaR1C1 = Maksymilian Kowalski End Sub Nasze makro zosta(cid:167)o zarejestrowane w postaci procedury Sub o nazwie MojeDane. Polecenia kodu VBA w ciele procedury informuj(cid:159) Excela o tym, co powinien zrobi(cid:243) po uruchomieniu makra. Zauwa(cid:343), (cid:343)e na pocz(cid:159)tku procedury Excel wstawi(cid:167) kilka wierszy komentarza, zawieraj(cid:159)cych informacje, które wprowadzi(cid:167)e(cid:314) w oknie Rejestrowanie makra. Wiersze komentarza (które roz- poczynaj(cid:159) si(cid:163) od znaku apostrofu) nie s(cid:159) niezb(cid:163)dne do poprawnego dzia(cid:167)ania makra i usuni(cid:163)cie ich nie b(cid:163)dzie mia(cid:167)o (cid:343)adnego wp(cid:167)ywu na jego dzia(cid:167)anie. Zatem je(cid:343)eli zignorujemy wszystkie komentarze, oka(cid:343)e si(cid:163), (cid:343)e nasza procedura tak naprawd(cid:163) sk(cid:167)ada si(cid:163) tylko z jednego wiersza kodu: ActiveCell.FormulaR1C1 = Maksymilian Kowalski Wykonanie powy(cid:343)szego polecenia powoduje wpisanie ci(cid:159)gu znaków Maksymilian Kowalski do aktywnej komórki arkusza. Poleć książkęKup książkę Rozdzia(cid:239) 2. Wprowadzenie do j(cid:218)zyka VBA 57 TESTOWANIE DZIA(cid:146)ANIA MAKRA Przed rozpocz(cid:163)ciem rejestrowania przypisa(cid:167)e(cid:314) do makra kombinacj(cid:163) klawiszy Ctrl+Shift+N. Aby przetestowa(cid:243) dzia(cid:167)anie makra, powiniene(cid:314) najpierw powróci(cid:243) do g(cid:167)ównego okna Excela. Mo(cid:343)esz to zrobi(cid:243) na jeden z dwóch sposobów: (cid:120) Naci(cid:314)nij kombinacj(cid:163) klawiszy Alt+F11. (cid:120) Naci(cid:314)nij przycisk View Microsoft Excel (wy(cid:314)wietl okno programu Excel), znajduj(cid:159)cy si(cid:163) na standardowym pasku narz(cid:163)dzi edytora VBE. Po przej(cid:314)ciu do okna Excela aktywuj skoroszyt (mo(cid:343)e to by(cid:243) skoroszyt zawieraj(cid:159)cy nasz modu(cid:167) kodu VBA, ale równie dobrze mo(cid:343)e to by(cid:243) dowolny inny skoroszyt). Kliknij wybran(cid:159) komórk(cid:163) arkusza i naci(cid:314)nij kombinacj(cid:163) klawiszy Ctrl+Shift+N. Excel uruchomi makro i wpisze w wy- branej komórce ci(cid:159)g znaków Maksymilian Kowalski. UWAGA Jak pami(cid:218)tasz, przed rozpocz(cid:218)ciem rejestrowania makra zaznaczy(cid:239)e(cid:258) wybran(cid:200) komórk(cid:218) arkusza. Jest to bardzo wa(cid:285)ny krok. Je(cid:285)eli zaznaczysz (cid:285)(cid:200)dan(cid:200) komórk(cid:218) dopiero po uruchomieniu rejestratora, to komórka, któr(cid:200) wybierzesz, zostanie zapisana w kodzie generowanego makra. W takiej sytuacji makro zawsze b(cid:218)dzie formatowa(cid:239)o tylko t(cid:218) jedn(cid:200), zaznaczon(cid:200) podczas rejestrowania komórk(cid:218) i dlatego nie b(cid:218)dzie makrem uniwersalnym. EDYTOWANIE MAKRA Po zarejestrowaniu makra mo(cid:343)esz dowolnie modyfikowa(cid:243) jego kod. Na przyk(cid:167)ad za(cid:167)ó(cid:343)my, (cid:343)e chcesz, aby imi(cid:163) i nazwisko wpisywane do komórki by(cid:167)y wyró(cid:343)nione pogrubion(cid:159) czcionk(cid:159). W zasadzie móg(cid:167)by(cid:314) usun(cid:159)(cid:243) stare makro i zarejestrowa(cid:243) je na nowo, ale (cid:343)(cid:159)dana zmiana spo- sobu dzia(cid:167)ania makra jest bardzo prosta, dlatego znacznie lepszym rozwi(cid:159)zaniem b(cid:163)dzie po prostu bezpo(cid:314)rednie dokonanie odpowiedniej modyfikacji kodu makra. Naci(cid:314)nij kombinacj(cid:163) klawiszy Alt+F11, aby aktywowa(cid:243) edytor VBE. Nast(cid:163)pnie przejd(cid:341) do modu(cid:167)u kodu Module1 i wstaw polecenie ActiveCell.Font.Bold = True, tak jak to zosta(cid:167)o pokazane w przyk(cid:167)a- dzie poni(cid:343)ej: Sub MojeDane() MojeDane Makro Klawisz skrótu: Ctrl+Shift+N ActiveCell.Font.Bold = True ActiveCell.FormulaR1C1 = Maksymilian Kowalski End Sub Przetestuj nowe makro i sprawd(cid:341), czy dzia(cid:167)a zgodnie z Twoimi oczekiwaniami. Poleć książkęKup książkę 58 Cz(cid:218)(cid:258)(cid:202) I. Wprowadzenie do j(cid:218)zyka Excel VBA Porównanie rejestrowania makr z odwo(cid:239)aniami wzgl(cid:218)dnymi i bezwzgl(cid:218)dnymi Pozna(cid:167)e(cid:314) ju(cid:343) podstawowe zasady pos(cid:167)ugiwania si(cid:163) interfejsem rejestratora makr, zatem nad- szed(cid:167) czas, aby zacz(cid:159)(cid:243) rejestrowanie znacznie bardziej z(cid:167)o(cid:343)onych makr. Zanim jednak zaczniemy, musisz wiedzie(cid:243), (cid:343)e Excel posiada dwa tryby rejestrowania makr — rejestrowanie z odwo(cid:167)a- niami bezwzgl(cid:163)dnymi i rejestrowanie z odwo(cid:167)aniami wzgl(cid:163)dnymi. REJESTROWANIE MAKR W TRYBIE ODWO(cid:146)A(cid:148) BEZWZGL(cid:125)DNYCH Domy(cid:314)lnie Excel rejestruje makra z odwo(cid:167)aniami bezwzgl(cid:163)dnymi. Jak zapewne wiesz, od- wo(cid:167)ania bezwzgl(cid:163)dne s(cid:159) bardzo cz(cid:163)sto u(cid:343)ywane w formu(cid:167)ach arkuszowych. Je(cid:343)eli w formule umie(cid:314)cimy bezwzgl(cid:163)dne odwo(cid:167)anie do danej komórki, to takie odwo(cid:167)anie nie zostanie auto- matycznie dostosowane po skopiowaniu formu(cid:167)y do nowej lokalizacji. Najlepszym sposobem, aby zrozumie(cid:243), jak dzia(cid:167)aj(cid:159) odwo(cid:167)ania bezwzgl(cid:163)dne, jest ich wypró- bowanie w praktyce. Otwórz skoroszyt z przyk(cid:167)adowym zestawem danych, a nast(cid:163)pnie zare- jestruj makro, które b(cid:163)dzie zlicza(cid:167)o liczb(cid:163) wierszy (patrz rysunek 2.2). Rysunek 2.2. Przyk(cid:239)adowy zestaw danych sk(cid:239)ada si(cid:218) z dwóch tabel NA FTP Skoroszyt z tym przyk(cid:239)adem (Przyk(cid:239)adowe dane.xlsm) znajdziesz na serwerze FTP wydawnictwa Helion (ftp://ftp.helion.pl/przyklady/e26pvw.zip). Aby zarejestrowa(cid:243) makro, wykonaj polecenia opisane poni(cid:343)ej: 1. Przed rozpocz(cid:163)ciem rejestrowania makra upewnij si(cid:163), (cid:343)e zaznaczy(cid:167)e(cid:314) komórk(cid:163) A1. 2. Przejd(cid:341) na kart(cid:163) Deweloper i wybierz polecenie Zarejestruj makro. Poleć książkęKup książkę Rozdzia(cid:239) 2. Wprowadzenie do j(cid:218)zyka VBA 59 3. W polu Nazwa makra wpisz DodajPodsumowanie. 4. W polu Przechowuj makro w wybierz opcj(cid:163) Ten skoroszyt. 5. Naci(cid:314)nij przycisk OK, aby rozpocz(cid:159)(cid:243) rejestrowanie makra. W tym momencie Excel rozpocznie rejestrowanie wykonywanych przez Ciebie operacji. 6. Zaznacz komórk(cid:163) o adresie A16 i wpisz w niej etykiet(cid:163) RAZEM. 7. Zaznacz pierwsz(cid:159) woln(cid:159) komórk(cid:163) w kolumnie D (powinna to by(cid:243) komórka o adresie D16) i wpisz w niej nast(cid:163)puj(cid:159)c(cid:159) formu(cid:167)(cid:163): =ILE.NIEPUSTYCH(D2:D15), która policzy liczb(cid:163) oddzia(cid:167)ów i umie(cid:314)ci j(cid:159) na dole kolumny D. Funkcja ILE.NIEPUSTYCH zosta(cid:167)a tutaj u(cid:343)yta, poniewa(cid:343) pozwala na uwzgl(cid:163)dnienie wszystkich kodów oddzia(cid:167)ów (liczby), które ewentualnie zosta(cid:167)y zapisane jako tekst. 8. Przejd(cid:341) na kart(cid:163) Deweloper i zatrzymaj rejestrowanie makra. Gotowy arkusz powinien wygl(cid:159)da(cid:243) tak, jak to zosta(cid:167)o pokazane na rysunku 2.3. Rysunek 2.3. Wygl(cid:200)d arkusza po zako(cid:241)czeniu rejestrowania makra Aby teraz zobaczy(cid:243) zarejestrowane makro w dzia(cid:167)aniu, usu(cid:295) wiersz podsumowania, który przed chwil(cid:159) doda(cid:167)e(cid:314), i wykonaj makro. Aby uruchomi(cid:243) makro, wykonaj nast(cid:163)puj(cid:159)ce polecenia: 1. Przejd(cid:341) na kart(cid:163) Deweloper i wybierz polecenie Makra. 2. Na li(cid:314)cie dost(cid:163)pnych makr odszukaj i zaznacz zarejestrowane przed chwil(cid:159) makro DodajPodsumowanie. 3. Naci(cid:314)nij przycisk Uruchom. Je(cid:343)eli wszystko posz(cid:167)o zgodnie z oczekiwaniami, makro zostanie wykonane bez przeszkód i na dole tabeli pojawi si(cid:163) odpowiednie podsumowanie. A teraz twardy orzech do zgryzienia: niezale(cid:343)nie od tego, jak wiele razy b(cid:163)dziesz próbowa(cid:167), nie b(cid:163)dziesz w stanie zmusi(cid:243) tego makra Poleć książkęKup książkę 60 Cz(cid:218)(cid:258)(cid:202) I. Wprowadzenie do j(cid:218)zyka Excel VBA do utworzenia podsumowania dla drugiej tabeli. Dlaczego? Poniewa(cid:343) zosta(cid:167)o zarejestrowane w trybie odwo(cid:167)a(cid:295) bezwzgl(cid:163)dnych. Aby zrozumie(cid:243), co to znaczy, musisz przeanalizowa(cid:243) kod VBA zarejestrowanego makra. Aby to zrobi(cid:243), przejd(cid:341) na kart(cid:163) Deweloper i wybierz polecenie Makra. Na ekranie pojawi si(cid:163) okno dialogowe Makra, przedstawione na rysunku 2.4, w którym domy(cid:314)lnie wy(cid:314)wietlona jest lista makr dost(cid:163)pnych we wszystkich aktualnie otwartych skoroszytach Excela (wraz ze wszystki- mi zainstalowanymi dodatkami). Aby ograniczy(cid:243) liczb(cid:163) wy(cid:314)wietlanych makr, mo(cid:343)esz zmieni(cid:243) ustawienie listy rozwijanej Makra w na opcj(cid:163) Ten skoroszyt. Rysunek 2.4. Okno dialogowe Makra Zaznacz makro DodajPodsumowanie i naci(cid:314)nij przycisk Edycja, co spowoduje uruchomienie edytora VBE i wy(cid:314)wietlenie kodu zarejestrowanego makra. Sub DodajPodsumowanie() Range( A16 ).Select ActiveCell.FormulaR1C1 = RAZEM Range( D16 ).Select ActiveCell.FormulaR1C1 = =COUNTA(R[-14]C:R[-1]C) End Sub Zwró(cid:243) szczególn(cid:159) uwag(cid:163) na drugi i czwarty wiersz kodu makra. Kiedy zaznacza(cid:167)e(cid:314) komórki o adresach A16 i D16, Excel zarejestrowa(cid:167) dok(cid:167)adnie takie adresy komórek. Poniewa(cid:343) makro by(cid:167)o rejestrowane w trybie odwo(cid:167)a(cid:295) bezwzgl(cid:163)dnych, Excel zinterpretowa(cid:167) odwo(cid:167)ania do ko- mórek jako bezwzgl(cid:163)dne. Innymi s(cid:167)owy, je(cid:343)eli w takim trybie zaznaczy(cid:167)e(cid:314) komórk(cid:163) A16, to po uruchomieniu makra Excel zaznaczy komórk(cid:163) A16. W kolejnym podrozdziale przekonasz si(cid:163), jak wygl(cid:159)da takie makro zarejestrowane w trybie odwo(cid:167)a(cid:295) wzgl(cid:163)dnych. Poleć książkęKup książkę Rozdzia(cid:239) 2. Wprowadzenie do j(cid:218)zyka VBA 61 REJESTROWANIE MAKR W TRYBIE ODWO(cid:146)A(cid:148) WZGL(cid:125)DNYCH W terminologii makr Excela odwo(cid:167)anie wzgl(cid:163)dne oznacza odwo(cid:167)anie wzgl(cid:163)dem aktualnie ak- tywnej komórki arkusza. Z tego powodu powiniene(cid:314) zawsze zachowa(cid:243) pewn(cid:159) ostro(cid:343)no(cid:314)(cid:243), wybieraj(cid:159)c komórk(cid:163) aktywn(cid:159), zarówno podczas rejestrowania makra, jak i pó(cid:341)niej, podczas jego uruchamiania. Otwórz skoroszyt z przyk(cid:167)adowym zestawem danych, z którego korzystali(cid:314)my w poprzed- nim podrozdziale (plik skoroszytu znajdziesz na serwerze FTP wydawnictwa Helion — ftp://ftp.helion.pl/przyklady/e26pvw.zip), a nast(cid:163)pnie zarejestruj makro w trybie odwo(cid:167)a(cid:295) wzgl(cid:163)dnych. Aby to zrobi(cid:243), wykonaj polecenia opisane poni(cid:343)ej: 1. Przejd(cid:341) na kart(cid:163) Deweloper i w(cid:167)(cid:159)cz opcj(cid:163) U(cid:347)yj odwo(cid:168)a(cid:297) wzgl(cid:164)dnych, tak jak zosta(cid:167)o to pokazane na rysunku 2.5. 2. Przed rozpocz(cid:163)ciem rejestrowania makra upewnij si(cid:163), (cid:343)e zaznaczy(cid:167)e(cid:314) komórk(cid:163) A1. 3. Przejd(cid:341) na kart(cid:163) Deweloper i wybierz polecenie Zarejestruj makro. 4. W polu Nazwa makra wpisz DodajPodsumowanieWzgl(cid:218)dne. 5. W polu Przechowuj makro w wybierz opcj(cid:163) Ten skoroszyt. 6. Naci(cid:314)nij przycisk OK, aby zacz(cid:159)(cid:243) rejestrowanie makra. W tym momencie Excel rozpocznie rejestrowanie wykonywanych przez Ciebie operacji. 7. Zaznacz komórk(cid:163) o adresie A16 i wpisz w niej etykiet(cid:163) RAZEM. 8. Zaznacz pierwsz(cid:159) woln(cid:159) komórk(cid:163) w kolumnie D (powinna to by(cid:243) komórka o adresie D16) i wpisz w niej nast(cid:163)puj(cid:159)c(cid:159) formu(cid:167)(cid:163): =ILE.NIEPUSTYCH(D2:D15). 9. Przejd(cid:341) na kart(cid:163) Deweloper i zatrzymaj rejestrowanie makra. Rysunek 2.5. Rejestrowanie makra w trybie odwo(cid:239)a(cid:241) wzgl(cid:218)dnych Po zako(cid:295)czeniu b(cid:163)dziemy mie(cid:243) zarejestrowane dwa makra. Teraz uwa(cid:343)nie przeanalizuj kod nowo utworzonego makra. Aby to zrobi(cid:243), przejd(cid:341) na kart(cid:163) Deweloper i wybierz polecenie Makra. Na ekranie pojawi si(cid:163) okno dialogowe Makra. Odszukaj i zaznacz makro DodajPodsumowanieWzgl(cid:218)dne, a nast(cid:163)pnie naci(cid:314)nij przycisk Edycja. Poleć książkęKup książkę 62 Cz(cid:218)(cid:258)(cid:202) I. Wprowadzenie do j(cid:218)zyka Excel VBA Naci(cid:314)ni(cid:163)cie tego przycisku spowoduje uruchomienie edytora VBE i wy(cid:314)wietlenie kodu zareje- strowanego makra. Tym razem kod naszego makra wygl(cid:159)da nast(cid:163)puj(cid:159)co: Sub DodajPodsumowanieWzgl(cid:218)dne() ActiveCell.Offset(15, 0).Range( A1 ).Select ActiveCell.FormulaR1C1 = RAZEM ActiveCell.Offset(0, 3).Range( A1 ).Select ActiveCell.FormulaR1C1 = =COUNTA(R[-14]C:R[-1]C) End Sub Zauwa(cid:343), (cid:343)e w kodzie procedury nie ma bezpo(cid:314)rednich odwo(cid:167)a(cid:295) do komórek, z wyj(cid:159)tkiem pocz(cid:159)tkowej komórki A1. Przyjrzymy si(cid:163) teraz samej procedurze i wyja(cid:314)nimy, co znacz(cid:159) po- szczególne fragmenty jej kodu. Zwró(cid:243) uwag(cid:163), (cid:343)e w wierszu 2. Excel u(cid:343)ywa w(cid:167)a(cid:314)ciwo(cid:314)ci Offset aktywnej komórki, która wskazuje konieczno(cid:314)(cid:243) przeniesienia kursora o okre(cid:314)lon(cid:159) liczb(cid:163) komórek w gór(cid:163) lub w dó(cid:167) oraz o okre(cid:314)lon(cid:159) liczb(cid:163) komórek w lewo lub w prawo. W naszym przypadku w(cid:167)a(cid:314)ciwo(cid:314)(cid:243) Offset nakazuje Excelowi przenie(cid:314)(cid:243) kursor 15 wierszy w dó(cid:167) i 0 kolumn w prawo od aktywnej komórki (któr(cid:159) jest w tym przypadku komórka A1). Excel nie musi bezpo(cid:314)rednio zaznacza(cid:243) komórki docelowej, tak jak to mia(cid:167)o miejsce w przypadku makra z odwo(cid:167)aniami bezwzgl(cid:163)dnymi. Aby zobaczy(cid:243) nasze nowe makro w dzia(cid:167)aniu, usu(cid:295) wiersz podsumowania i wykonaj nast(cid:163)- puj(cid:159)ce polecenia: 1. Zaznacz komórk(cid:163) A1. 2. Przejd(cid:341) na kart(cid:163) Deweloper i wybierz polecenie Makra. 3. Na li(cid:314)cie wyszukaj makro DodajPodsumowanieWzgl(cid:218)dne. 4. Naci(cid:314)nij przycisk Uruchom. 5. Zaznacz komórk(cid:163) F1. 6. Ponownie przejd(cid:341) na kart(cid:163) Deweloper i wybierz polecenie Makra. 7. Na li(cid:314)cie wyszukaj makro DodajPodsumowanieWzgl(cid:218)dne. 8. Naci(cid:314)nij przycisk Uruchom. Zauwa(cid:343), (cid:343)e tym razem nasze nowe makro, w przeciwie(cid:295)stwie do makra z poprzedniego przy- k(cid:167)adu, dzia(cid:167)a poprawnie na obydwu zestawach danych. Poniewa(cid:343) makro wykonuje operacje na komórkach wyznaczanych w odniesieniu do aktualnie aktywnej komórki, wszystkie ety- kiety i podsumowania s(cid:159) tworzone poprawnie. Aby nasze makro dzia(cid:167)a(cid:167)o poprawnie, musisz si(cid:163) po prostu upewni(cid:243), (cid:343)e: (cid:120) Przed uruchomieniem makra zaznaczy(cid:167)e(cid:314) odpowiedni(cid:159) komórk(cid:163) bazow(cid:159). (cid:120) Zestawy danych maj(cid:159) tak(cid:159) sam(cid:159) liczb(cid:163) wierszy i kolumn jak zestaw danych u(cid:343)yty podczas rejestrowania makra. Poleć książkęKup książkę Rozdzia(cid:239) 2. Wprowadzenie do j(cid:218)zyka VBA 63 Mamy nadziej(cid:163), (cid:343)e po uwa(cid:343)nym przeanalizowaniu obu przytoczonych przyk(cid:167)adów b(cid:163)dziesz ju(cid:343) wiedzia(cid:167), na czym polega ró(cid:343)nica mi(cid:163)dzy rejestrowaniem makra w trybie odwo(cid:167)a(cid:295) bez- wzgl(cid:163)dnych a rejestrowaniem makra w trybie odwo(cid:167)a(cid:295) wzgl(cid:163)dnych. Inne zagadnienia zwi(cid:200)zane z makrami Na tym etapie rejestrowanie makr w Excelu nie powinno ju(cid:343) Ci sprawia(cid:243) najmniejszych trudno(cid:314)ci. W tym podrozdziale omówimy kilka dodatkowych zagadnie(cid:295), o których powinie- ne(cid:314) pami(cid:163)ta(cid:243) podczas samodzielnego tworzenia lub rejestrowania makr. ROZSZERZENIA SKOROSZYTÓW Z OBS(cid:146)UG(cid:107) MAKR Pocz(cid:159)wszy od wersji 2007, skoroszyty Excela s(cid:159) domy(cid:314)lnie zapisywane z rozszerzeniem .xlsx. Niestety pliki w takim formacie nie mog(cid:159) przechowywa(cid:243) (cid:343)adnych makr. Je(cid:343)eli Twój skoroszyt zawiera jakie(cid:314) makra i zapiszesz go w formacie .xlsx, to automatycznie ca(cid:167)y kod VBA zostanie z takiego arkusza usuni(cid:163)ty. Na szcz(cid:163)(cid:314)cie wcze(cid:314)niej Excel wy(cid:314)wietli na ekranie odpowiednie ostrze(cid:343)enie i poprosi o potwierdzenie zamiaru wykonania takiej operacji. Je(cid:343)eli chcesz zachowa(cid:243) makra utworzone w skoroszycie, musisz zapisa(cid:243) go jako Skoroszyt programu Excel z obs(cid:168)ug(cid:160) makr. Takie pliki posiadaj(cid:159) rozszerzenie .xlsm. Ca(cid:167)a idea takiego rozgraniczenia formatów plików polega na tym, (cid:343)e wszystkie skoroszyty z rozszerzeniem .xlsx s(cid:159) automatycznie uznawane za bezpieczne, natomiast skoroszyty .xlsm mog(cid:159) potencjalnie stanowi(cid:243) pewne zagro(cid:343)enie. BEZPIECZE(cid:148)STWO MAKR W EXCELU Pocz(cid:159)wszy od wersji 2010, firma Microsoft wprowadzi(cid:167)a znacz(cid:159)ce zmiany w modelu bezpie- cze(cid:295)stwa pakietu Office. Jedn(cid:159) z najbardziej istotnych zmian by(cid:167)o wdro(cid:343)enie koncepcji do- kumentów zaufanych. W skrócie i bez zbytniego zag(cid:167)(cid:163)biania si(cid:163) w szczegó(cid:167)y techniczne mo(cid:343)e- my powiedzie(cid:243), (cid:343)e dokument zaufany (ang. trusted document) to skoroszyt, który uzna(cid:167)e(cid:314) za bezpieczny poprzez w(cid:167)(cid:159)czenie w nim obs(cid:167)ugi makr. Je(cid:343)eli otworzysz w Excelu skoroszyt zawieraj(cid:159)cy makra, to na ekranie pojawi si(cid:163) okno ostrze- (cid:343)enia z informacj(cid:159), (cid:343)e makra (aktywna zawarto(cid:314)(cid:243) skoroszytu) zosta(cid:167)y zablokowane. Je(cid:343)eli naci(cid:314)niesz przycisk W(cid:168)(cid:160)cz makra, to automatycznie taki skoroszyt zostanie uznany za zaufany. Oznacza to, (cid:343)e Excel nie b(cid:163)dzie ju(cid:343) wi(cid:163)cej pyta(cid:167) o w(cid:167)(cid:159)czenie makr dla tego pliku. Podstawowe za(cid:167)o(cid:343)enie tego rozwi(cid:159)zania jest takie, (cid:343)e je(cid:343)eli raz pokaza(cid:167)e(cid:314) Excelowi, (cid:343)e „ufasz” danemu skoroszytowi, w(cid:167)(cid:159)czaj(cid:159)c w nim mo(cid:343)liwo(cid:314)(cid:243) wykonywania makr, to istnieje bardzo du(cid:343)e prawdopodobie(cid:295)stwo, (cid:343)e b(cid:163)dziesz takie makra w(cid:167)(cid:159)cza(cid:167) za ka(cid:343)dym razem, kiedy b(cid:163)dziesz otwiera(cid:167) ten plik. Aby u(cid:167)atwi(cid:243) Ci (cid:343)ycie, Excel zapami(cid:163)tuje, (cid:343)e ju(cid:343) kiedy(cid:314) w(cid:167)(cid:159)czy(cid:167)e(cid:314) makra w danym dokumencie, i zawiesza ponowne wy(cid:314)wietlanie komunikatów o w(cid:167)(cid:159)czeniu makr w tym dokumencie. Poleć książkęKup książkę 64 Cz(cid:218)(cid:258)(cid:202) I. Wprowadzenie do j(cid:218)zyka Excel VBA W sumie jest to ca(cid:167)kiem niez(cid:167)a wiadomo(cid:314)(cid:243) zarówno dla Ciebie, jak i dla Twoich klientów, którzy po jednorazowym w(cid:167)(cid:159)czeniu makr nie b(cid:163)d(cid:159) ju(cid:343) wi(cid:163)cej monitowani komunikatami o w(cid:167)(cid:159)czaniu makr, a Ty nie b(cid:163)dziesz musia(cid:167) si(cid:163) martwi(cid:243), (cid:343)e Twoja oparta na makrach aplikacja Excela przestanie dzia(cid:167)a(cid:243) z powodu zablokowanych makr. ZAUFANE LOKALIZACJE Je(cid:343)eli irytuje Ci(cid:163) konieczno(cid:314)(cid:243) nawet jednorazowego w(cid:167)(cid:159)czania obs(cid:167)ugi makr, to mo(cid:343)esz dla swoich skoroszytów zdefiniowa(cid:243) tak zwan(cid:159) zaufan(cid:159) lokalizacj(cid:163), czyli utworzy(cid:243) dedykowany, bezpieczny katalog, w którym b(cid:163)dziesz przechowywa(cid:243) wy(cid:167)(cid:159)cznie zaufane, sprawdzone i bez- pieczne skoroszyty. Utworzenie wspó(cid:167)dzielonej zaufanej lokalizacji pozwoli zarówno Tobie, jak i Twoim klientom na uruchamianie przechowywanych tam skoroszytów z obs(cid:167)ug(cid:159) makr bez (cid:343)adnych ogranicze(cid:295). Aby utworzy(cid:243) tak(cid:159) zaufan(cid:159) lokalizacj(cid:163), powiniene(cid:314) wykona(cid:243) nast(cid:163)puj(cid:159)ce polecenia: 1. Przejd(cid:341) na kart(cid:163) Deweloper i wybierz polecenie Bezpiecze(cid:297)stwo makr. Na ekranie pojawi si(cid:163) okno dialogowe Centrum zaufania. 2. Wybierz opcj(cid:163) Zaufane lokalizacje. W prawej cz(cid:163)(cid:314)ci okna dialogowego pojawi si(cid:163) panel Zaufane lokalizacje (patrz rysunek 2.6), w którym znajdziesz list(cid:163) wszystkich katalogów uwa(cid:343)anych za zaufane. Rysunek 2.6. Panel Zaufane lokalizacje pozwala na dodawanie nowych katalogów uwa(cid:285)anych za bezpieczne Poleć książkęKup książkę Rozdzia(cid:239) 2. Wprowadzenie do j(cid:218)zyka VBA 65 3. Naci(cid:314)nij przycisk Dodaj now(cid:160) lokalizacj(cid:164). 4. Na ekranie pojawi si(cid:163) okno dialogowe Zaufana lokalizacja pakietu Microsoft Office. Naci(cid:314)nij przycisk Przegl(cid:160)daj i wybierz katalog, który chcesz doda(cid:243) do listy zaufanych lokalizacji. Po dodaniu zaufanej lokalizacji wszystkie przechowywane w niej skoroszyty po otwarciu w Excelu b(cid:163)d(cid:159) mia(cid:167)y automatycznie w(cid:167)(cid:159)czon(cid:159) obs(cid:167)ug(cid:163) makr. ZAPISYWANIE MAKR W SKOROSZYCIE MAKR OSOBISTYCH Wi(cid:163)kszo(cid:314)(cid:243) makr tworzonych przez u(cid:343)ytkowników jest przeznaczona do dzia(cid:167)ania w okre(cid:314)lo- nym skoroszycie, ale od czasu do czasu mo(cid:343)esz napisa(cid:243) makro, które powinno by(cid:243) dost(cid:163)pne we wszystkich skoroszytach. Takie makra ogólnego przeznaczenia mo(cid:343)esz zapisywa(cid:243) w tzw. skoroszycie makr osobistych (ang. Personal Macro Workbook), dzi(cid:163)ki czemu b(cid
Pobierz darmowy fragment (pdf)

Gdzie kupić całą publikację:

Excel 2016 PL. Programowanie w VBA. Vademecum Walkenbacha
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ą: