Excel 2010 PL : programowanie w VBA / John Walkenbach
Transkrypt
Excel 2010 PL : programowanie w VBA / John Walkenbach
Excel 2010 PL : programowanie w VBA / John Walkenbach. – Gliwice, cop. 2011 Spis treści O autorze Przedmowa 19 21 Część I: Podstawowe informacje Rozdział 1. Skąd się wziął Excel 2007? Krótka historia arkuszy kalkulacyjnych Wszystko zaczęło się od programu VisiCalc Lotus 1-2-3 Quattro Pro Microsoft Excel Excel jako dobre narzędzie dla projektantów aplikacji Rola Excela w strategii Microsoftu 29 31 31 31 32 35 36 41 43 Rozdział 2. Program Excel w zarysie Myślenie w kategoriach obiektów Skoroszyty Arkusze Arkusze wykresów Arkusze makr XLM Arkusze dialogowe programów Excel 5 i 95 Interfejs uŜytkownika programu Excel Wprowadzenie do WstąŜki Menu podręczne i minipasek narzędzi Okna dialogowe Skróty klawiszowe Tagi inteligentne Panel zadań Dostosowywanie wyświetlania do własnych potrzeb Wprowadzanie danych Formuły, funkcje i nazwy Zaznaczanie obiektów Formatowanie Opcje ochrony Ochrona formuł przed nadpisaniem Ochrona struktury skoroszytu Ochrona skoroszytu przy uŜyciu hasła Ochrona kodu VBA przy uŜyciu hasła Wykresy Kształty i obiekty typu SmartArt Dostęp do baz danych 45 45 46 46 48 49 50 50 51 57 58 59 59 60 61 61 61 63 64 65 65 66 66 67 68 68 69 Arkuszowe bazy danych Zewnętrzne bazy danych Funkcje internetowe Narzędzia analizy danych Dodatki Makra i programowanie Zgodność formatu plików System pomocy Excela 69 70 71 72 73 74 74 74 Rozdział 3. Wybrane zasady stosowania formuł Formuły Obliczanie formuł Odwołania do komórki lub zakresu Dlaczego warto uŜywać odwołań, które nie są względne? Notacja W1K1 Odwołania do innych arkuszy lub skoroszytów Zastosowanie nazw Nadawanie nazw komórkom i zakresom Nadawanie nazw istniejącym odwołaniom Stosowanie nazw z operatorem przecięcia Nadawanie nazw kolumnom i wierszom Obszar obowiązywania nazw Nadawanie nazw stałym Nadawanie nazw formułom Nadawanie nazw obiektom Błędy występujące w formułach Formuły tablicowe Przykładowa formuła tablicowa Kalendarz oparty na formule tablicowej Zalety i wady formuł tablicowych Metody zliczania i sumowania Przykłady formuł zliczających Przykłady formuł sumujących Inne narzędzia zliczające Przetwarzanie daty i czasu Wprowadzanie daty i czasu Przetwarzanie dat sprzed roku 1900 Tworzenie megaformuł 77 77 78 79 79 80 81 83 83 83 84 85 85 86 87 88 89 89 90 91 92 93 94 95 95 96 96 97 98 Rozdział 4. Pliki programu Excel Uruchamianie Excela Formaty plików Formaty plików obsługiwane w programie Excel Formaty plików tekstowych Formaty plików baz danych 101 101 103 104 104 104 Inne formaty plików Praca z plikami szablonów Przeglądanie dostępnych szablonów Tworzenie szablonów Tworzenie szablonów skoroszytu Budowa plików programu Excel Zaglądamy do wnętrza pliku Dlaczego format pliku jest taki waŜny? Plik OfficeUI Plik XLB Pliki dodatków Ustawienia Excela w rejestrze systemu Windows Rejestr systemu Windows Ustawienia Excela 105 106 108 109 110 111 112 115 116 117 117 118 118 120 Część II: Projektowanie aplikacji w Excelu Rozdział 5. Czym jest aplikacja arkusza kalkulacyjnego? Aplikacje arkuszy kalkulacyjnych Projektant i uŜytkownik końcowy Kim są projektanci i czym się zajmują? Klasyfikacja uŜytkowników arkuszy kalkulacyjnych Odbiorcy aplikacji arkusza kalkulacyjnego Rozwiązywanie problemów przy uŜyciu Excela Podstawowe kategorie arkuszy kalkulacyjnych Arkusze robocze Arkusze przeznaczone wyłącznie do uŜytku prywatnego Aplikacje jednego uŜytkownika Aplikacje typu "spaghetti" Aplikacje narzędziowe Dodatki zawierające funkcje arkusza Arkusze jednoblokowe Modele warunkowe Aplikacje bazodanowe przechowujące i udostępniające dane Aplikacje komunikujące się z bazami danych Aplikacje "pod klucz" 123 125 125 126 127 128 129 129 130 131 131 132 132 133 133 134 134 134 135 135 Rozdział 6. Podstawy projektowania aplikacji arkusza kalkulacyjnego Podstawowe etapy projektowania Określanie wymagań uŜytkownika Planowanie aplikacji spełniającej wymagania uŜytkownika Wybieranie odpowiedniego interfejsu uŜytkownika Dostosowywanie WstąŜki do potrzeb uŜytkownika Dostosowywanie menu podręcznego do potrzeb uŜytkownika Tworzenie klawiszy skrótu Tworzenie niestandardowych okien dialogowych 137 137 138 139 141 144 144 145 146 Zastosowanie formantów ActiveX w arkuszu Rozpoczęcie prac projektowych Zadania realizowane z myślą o końcowym uŜytkowniku Testowanie aplikacji Uodpornianie aplikacji na błędy popełniane przez uŜytkownika Nadawanie aplikacji przyjaznego, intuicyjnego i estetycznego wyglądu Tworzenie systemu pomocy i dokumentacji przeznaczonej dla uŜytkownika Dokumentowanie prac projektowych Przekazanie aplikacji uŜytkownikom Aktualizacja aplikacji kiedy to konieczne Pozostałe kwestie dotyczące projektowania Wersja Excela zainstalowana przez uŜytkownika Wersje językowe Wydajność systemu Tryby karty graficznej 146 148 149 149 150 152 154 155 155 156 156 157 157 157 158 Część III: Język Visual Basic for Applications Rozdział 7. Wprowadzenie do języka VBA Podstawowe informacje o języku BASIC Język VBA Modele obiektowe Porównanie języka VBA z językiem XLM Wprowadzenie do języka VBA Edytor VBE Wyświetlanie karty Deweloper Uruchamianie edytora VBE Okna edytora VBE Tajemnice okna Project Explorer Dodawanie nowego modułu VBA Usuwanie modułu VBA Eksportowanie i importowanie obiektów Tajemnice okna Code Minimalizacja i maksymalizacja okien Przechowywanie kodu źródłowego języka VBA Wprowadzanie kodu źródłowego języka VBA Dostosowywanie edytora Visual Basic Karta Editor Karta Editor Format Karta General Zastosowanie karty Docking Rejestrator makr Excela Co właściwie zapisuje rejestrator makr? Odwołania względne czy bezwzględne? Opcje związane z rejestrowaniem makr Modyfikowanie zarejestrowanych makr 159 161 161 162 162 162 163 165 166 167 167 169 170 171 171 171 172 172 173 179 180 183 184 185 185 186 187 191 191 Obiekty i kolekcje Hierarchia obiektów Kolekcje Odwoływanie się do obiektów Właściwości i metody Właściwości obiektów Metody obiektowe Tajemnice obiektu Comment Pomoc dla obiektu Comment Właściwości obiektu Comment Metody obiektu Comment Kolekcja Comments Właściwość Comment Obiekty zawarte w obiekcie Comment Sprawdzanie, czy komórka posiada komentarz Dodawanie nowego obiektu Comment Kilka przydatnych właściwości obiektu Application Tajemnice obiektów Range Właściwość Range Właściwość Cells Właściwość Offset Co naleŜy wiedzieć o obiektach? Podstawowe zagadnienia, które naleŜy zapamiętać Dodatkowe informacje na temat obiektów i właściwości 192 193 194 195 196 196 197 198 199 199 199 201 202 202 203 204 205 206 207 209 210 212 212 213 Rozdział 8. Podstawy programowania w języku VBA Przegląd elementów języka VBA Komentarze Zmienne, typy danych i stałe Definiowanie typów danych Deklarowanie zmiennych Zasięg zmiennych Zastosowanie stałych Praca z łańcuchami tekstu Przetwarzanie dat Instrukcje przypisania Tablice Deklarowanie tablic Deklarowanie tablic wielowymiarowych Deklarowanie tablic dynamicznych Zmienne obiektowe Typy danych definiowane przez uŜytkownika Wbudowane funkcje VBA Praca z obiektami i kolekcjami Konstrukcja With ... End With 217 217 219 220 222 222 226 229 232 232 233 235 236 236 237 237 238 239 242 242 Konstrukcja For Each ... Next Sterowanie wykonywaniem procedur Polecenie GoTo Konstrukcja If ... Then Konstrukcja Select Case Wykonywanie bloku instrukcji w ramach pętli 243 244 245 245 249 252 Rozdział 9. Tworzenie procedur w języku VBA 261 Kilka słów o procedurach 261 Deklarowanie procedury Sub 262 Zasięg procedury 263 Wykonywanie procedur Sub 264 Uruchamianie procedury przy uŜyciu polecenia Run Sub/UserForm 265 Uruchamianie procedury z poziomu okna dialogowego Makro 265 Uruchamianie procedury przy uŜyciu skrótu z klawiszem Ctrl 266 Uruchamianie procedury za pomocą WstąŜki 267 Uruchamianie procedur za pośrednictwem niestandardowego menu podręcznego 267 Wywoływanie procedury z poziomu innej procedury 267 Uruchamianie procedury poprzez kliknięcie obiektu 271 Wykonywanie procedury po wystąpieniu określonego zdarzenia 273 Uruchamianie procedury z poziomu okna Immediate 274 Przekazywanie argumentów procedurom 275 Metody obsługi błędów 278 Przechwytywanie błędów 278 Przykłady kodu źródłowego obsługującego błędy 279 Praktyczny przykład wykorzystujący procedury Sub 282 Cel 283 Wymagania projektowe 283 Co juŜ wiesz 283 Podejście do zagadnienia 284 Co musimy wiedzieć? 285 Wstępne rejestrowanie makr 285 Wstępne przygotowania 286 Tworzenie kodu źródłowego 288 Tworzenie procedury sortującej 289 Dodatkowe testy 292 Usuwanie problemów 293 Dostępność narzędzia 296 Ocena projektu 296 Rozdział 10. Tworzenie funkcji w języku VBA Porównanie procedur Sub i Function Dlaczego tworzymy funkcje niestandardowe? Twoja pierwsza funkcja Zastosowanie funkcji w arkuszu 299 299 300 301 301 Zastosowanie funkcji w procedurze języka VBA Analiza funkcji niestandardowej Procedury Function Zasięg funkcji Wywoływanie procedur Function Argumenty funkcji Przykłady funkcji Funkcja bezargumentowa Funkcja jednoargumentowa Funkcje z dwoma argumentami Funkcja pobierająca tablicę jako argument Funkcje z argumentami opcjonalnymi Funkcje zwracające tablicę VBA Funkcje zwracające wartość błędu Funkcje o nieokreślonej liczbie argumentów Emulacja funkcji arkuszowej SUMA Rozszerzone funkcje daty Wykrywanie i usuwanie błę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łady zastosowania funkcji interfejsu API systemu Windows Identyfikacja katalogu domowego systemu Windows Wykrywanie wciśnięcia klawisza Shift Dodatkowe informacje na temat funkcji interfejsu API 302 302 304 306 306 310 311 311 313 316 317 318 319 322 323 324 327 329 330 332 333 334 335 336 336 337 338 339 Rozdział 11. Przykłady i techniki programowania w języku VBA Nauka poprzez praktykę Przetwarzanie zakresów Kopiowanie zakresów Przenoszenie zakresów Kopiowanie zakresu o zmiennej wielkości Zaznaczanie oraz identyfikacja róŜnego typu zakresów Wprowadzanie wartości do komórki Wprowadzanie wartości do następnej pustej komórki Wstrzymywanie działania makra w celu umoŜliwienia pobrania zakresu wyznaczonego przez uŜytkownika Zliczanie zaznaczonych komórek Określanie typu zaznaczonego zakresu Wydajne przetwarzanie komórek zaznaczonego zakresu przy uŜyciu pętli Usuwanie wszystkich pustych wierszy Powielanie wierszy 341 341 342 342 344 344 345 346 348 350 351 352 353 356 357 Określanie, czy zakres zawiera się w innym zakresie Określanie typu danych zawartych w komórce Odczytywanie i zapisywanie zakresów Lepsza metoda zapisywania zakresu Przenoszenie zawartości tablic jednowymiarowych Przenoszenie zawartości zakresu do tablicy typu Variant Zaznaczanie komórek na podstawie wartości Kopiowanie nieciągł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 Synchronizowanie arkuszy Techniki programowania w języku VBA Przełączanie wartości właściwości typu logicznego Określanie liczby drukowanych stron Wyświetlanie daty i czasu Pobieranie listy czcionek Sortowanie tablicy Przetwarzanie grupy plików Ciekawe funkcje, których moŜesz uŜyć w swoich projektach Funkcja FileExists Funkcja FileNameOnly Funkcja PathExists Funkcja RangeNameExists Funkcja SheetExists Funkcja WorkbookIsOpen Pobieranie wartości z zamkniętego skoroszytu UŜyteczne, niestandardowe funkcje arkuszowe Funkcje zwracające informacje o formatowaniu komórki Gadający arkusz? Wyświetlanie daty zapisania lub wydrukowania pliku Obiekty nadrzędne Zliczanie komórek, których wartości zawierają się pomiędzy dwoma wartościami Wyznaczanie ostatniej niepustej komórki kolumny lub wiersza Czy dany łańcuch tekstu jest zgodny z wzorcem? Wyznaczanie n-tego elementu łańcucha Zamiana wartości na słowa Funkcja wielofunkcyjna Funkcja SheetOffset Zwracanie maksymalnej wartości ze wszystkich arkuszy Zwracanie tablicy zawierającej unikatowe, losowo uporządkowane liczby całkowite Porządkowanie zakresu w losowy sposób Wywołania funkcji interfejsu Windows API 358 359 360 361 363 363 364 365 367 367 368 368 369 370 370 371 372 373 374 376 378 378 378 379 379 380 381 381 382 382 384 384 385 386 387 388 390 390 391 392 393 394 395 396 Określanie skojarzeń plików Pobieranie informacji o napędach dyskowych Pobieranie informacji dotyczących drukarki domyślnej Pobieranie informacji o aktualnej rozdzielczości karty graficznej Dodanie dźwięku do aplikacji Odczytywanie zawartości rejestru systemu Windows i zapisywanie w nim danych 397 397 398 399 400 402 Część IV: Praca z formularzami UserForm Rozdział 12. Tworzenie własnych okien dialogowych Zanim rozpoczniesz tworzenie formularza UserForm Okno wprowadzania danych Funkcja InputBox języka VBA Metoda InputBox Excela Funkcja MsgBox języka VBA Metoda GetOpenFilename programu Excel Metoda GetSaveAsFilename programu Excel Okno wybierania katalogu Wyświetlanie wbudowanych okien dialogowych Excela Wyświetlanie formularza danych Wyświetlanie formularza wprowadzania danych Wyświetlanie formularza wprowadzania danych za pomocą VBA 405 407 407 407 408 409 412 415 419 419 420 421 423 424 Rozdział 13. Wprowadzenie do formularzy UserForm Jak Excel obsł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łaściwości formantów Zastosowanie okna Properties 425 425 426 426 428 428 429 429 429 429 429 429 430 430 430 430 430 430 431 431 432 432 432 Wspólne właściwości Uwzględnienie wymagań uŜytkowników preferujących korzystanie z klawiatury Wyświetlanie formularza UserForm Wyświetlanie niemodalnych okien formularzy UserForm Wyświetlanie formularza UserForm na podstawie zmiennej Ładowanie formularza UserForm Procedury obsługi zdarzeń Zamykanie formularza UserForm Przykład tworzenia formularza UserForm Tworzenie formularza UserForm Tworzenie kodu procedury wyświetlającej okno dialogowe Testowanie okna dialogowego Dodawanie procedur obsługi zdarzeń Sprawdzanie poprawności danych Zakończenie tworzenia okna dialogowego Zdarzenia powiązane z formularzem UserForm Zdobywanie informacji na temat zdarzeń Zdarzenia formularza UserForm Zdarzenia związane z formantem SpinButton Współpraca formantu SpinButton z formantem TextBox Odwoływanie się do formantów formularza UserForm Dostosowywanie okna Toolbox do własnych wymagań Dodawanie nowych kart Dostosowywanie lub łączenie formantów Dodawanie nowych formantów ActiveX Tworzenie szablonów formularzy UserForm Lista kontrolna tworzenia i testowania formularzy UserForm 435 435 438 438 439 439 439 439 441 441 444 444 445 447 447 447 448 449 449 451 453 454 455 455 456 457 458 Rozdział 14. Przykłady formularzy UserForm Tworzenie formularza UserForm pełniącego funkcję menu Zastosowanie w formularzu UserForm formantów CommandButton Zastosowanie w formularzu UserForm formantu ListBox Zaznaczanie zakresów przy uŜyciu formularza UserForm Tworzenie okna powitalnego Wyłączanie przycisku Zamknij formularza UserForm Zmiana wielkości formularza UserForm Powiększanie i przewijanie arkusza przy uŜ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 jednej kontrolce ListBox Przenoszenie elementów listy formantu ListBox Zmiana kolejności elementów listy formantu ListBox Wielokolumnowe formanty ListBox 459 459 460 460 461 463 465 466 468 470 471 475 475 476 478 479 480 Zastosowanie formantu ListBox do wybierania wierszy arkusza Uaktywnianie arkusza za pomocą formantu ListBox Zastosowanie formantu MultiPage na formularzach UserForm Korzystanie z formantów zewnętrznych Animowanie etykiet 482 484 487 488 490 Rozdział 15. Zaawansowane techniki korzystania z formularzy UserForm Nie modalne okna dialogowe Wyświetlanie wskaźnika postępu zadania Tworzenie samodzielnego wskaźnika postępu zadania Wyświetlanie wskaźnika postępu zadania za pomocą formantu MultiPage Wyświetlanie wskaźnika postępu zadania bez korzystania z kontrolki MultiPage Tworzenie kreatorów Konfigurowanie formantu MultiPage w celu utworzenia kreatora Dodawanie przycisków do formularza UserForm kreatora Programowanie przycisków kreatora ZaleŜności programowe w kreatorach Wykonywanie zadań za pomocą kreatorów Emulacja funkcji MsgBox Emulacja funkcji MsgBox: kod funkcji MyMsgBox Jak działa funkcja MyMsgBox Wykorzystanie funkcji MyMsgBox do emulacji funkcji MsgBox Formularz UserForm z formantami, których połoŜenie moŜna zmieniać Formularz UserForm bez paska tytułowego Symulacja paska narzędzi za pomocą formularza UserForm Formularze UserForm z moŜliwością zmiany rozmiaru Obsługa wielu przycisków formularza UserForm za pomocą jednej procedury obsługi zdarzeń Wybór koloru za pomocą formularza UserForm Wyświetlanie wykresów na formularzach UserForm Zapisywanie wykresu w postaci pliku GIF Modyfikacja właściwości Picture formantu Image Tworzenie półprzezroczystych formularzy UserForm Zaawansowane formularze danych Opis ulepszonego formularza danych Instalacja dodatku - ulepszonego formularza danych Puzzle na formularzu UserForm Wideo Poker na formularzu UserForm 493 493 497 498 502 504 505 506 507 508 509 511 511 512 513 515 515 516 518 520 Część V: Zaawansowane techniki programowania Rozdział 16. Tworzenie narzędzi dla Excela w języku VBA Kilka słów o narzędziach dla programu Excel Zastosowanie języka VBA do tworzenia narzędzi Co decyduje o przydatności narzędzia? Operacje tekstowe: anatomia narzędzia 537 539 539 540 541 541 524 527 528 529 530 530 531 533 533 535 536 Kilka słów o programie Operacje tekstowe Określenie wymagań dla narzędzia Operacje tekstowe Skoroszyt narzędzia Operacje tekstowe Jak działa narzędzie Operacje tekstowe? Formularz UserForm dla narzędzia Operacje tekstowe Moduł VBA Module1 Moduł formularza UserForm1 Poprawa wydajności narzędzia Operacje tekstowe Zapisywanie ustawień narzędzia Operacje tekstowe Implementacja procedury Cofnij Wyświetlanie pliku pomocy Umieszczanie poleceń na WstąŜce Ocena realizacji projektu Działanie narzędzia Operacje tekstowe Dodatkowe informacje na temat narzędzi Excela 542 543 543 544 545 546 548 550 551 553 554 556 556 558 558 Rozdział 17. Tabele przestawne Przykład prostej tabeli przestawnej Tworzenie tabel przestawnych Analiza zarejestrowanego kodu tworzenia tabeli przestawnej Optymalizacja wygenerowanego kodu tworzącego tabelę przestawną Tworzenie złoŜonych tabel przestawnych Kod tworzący tabelę przestawną Jak działa złoŜona tabela przestawna? Jednoczesne tworzenie wielu tabel przestawnych Tworzenie odwróconych tabel przestawnych 559 559 560 561 562 565 567 568 569 572 Rozdział 18. Wykresy Podstawowe wiadomości o wykresach Lokalizacja wykresu Rejestrator makr a wykresy Model obiektu Chart Tworzenie wykresów osadzonych na arkuszu danych Tworzenie wykresu na arkuszu wykresu Wykorzystanie VBA do uaktywnienia wykresu Przenoszenie wykresu Wykorzystanie VBA do deaktywacji wykresu Sprawdzanie, czy wykres został uaktywniony Usuwanie elementów z kolekcji ChartObjects lub Charts Przetwarzanie wszystkich wykresów w pętli Zmiana rozmiarów i wyrównywanie obiektów ChartObject Eksportowanie wykresów Eksportowanie wszystkich obiektów graficznych Zmiana danych prezentowanych na wykresie Modyfikacja danych wykresu na podstawie aktywnej komórki 575 575 576 576 577 578 579 580 582 582 583 584 585 587 588 589 590 592 Zastosowanie języka VBA do identyfikacji zakresu danych prezentowanych na wykresie Wykorzystanie VBA do wyświetlania dowolnych etykiet danych na wykresie Wyświetlanie wykresu w oknie formularza UserForm Zdarzenia związane z wykresami Przykład wykorzystania zdarzeń związanych z wykresami Obsługa zdarzeń dla wykresów osadzonych Przykład: zastosowanie zdarzeń dla wykresów osadzonych Jak ułatwić sobie pracę z wykresami przy uŜyciu VBA? Drukowanie wykresów osadzonych na arkuszu Ukrywanie serii danych poprzez ukrywanie kolumn Tworzenie wykresów, które nie są połączone z danymi Wykorzystanie zdarzenia MouseOver do wyświetlania tekstu Wykresy animowane Przewijanie wykresów Tworzenie wykresu krzywych hipocykloidalnych Tworzenie wykresu-zegara Tworzenie wykresu interaktywnego bez uŜycia VBA Przygotowanie danych do utworzenia wykresu interaktywnego Tworzenie przycisków opcji dla interaktywnego wykresu Tworzenie listy miast dla wykresu interaktywnego Tworzenie zakresów danych dla wykresu interaktywnego Utworzenie wykresu interaktywnego Tworzenie wykresów przebiegu w czasie 593 596 598 601 601 604 606 608 608 608 610 611 614 615 617 618 619 620 620 621 621 623 623 Rozdział 19. Obsługa zdarzeń Co powinieneś wiedzieć o zdarzeniach Sekwencje zdarzeń Gdzie naleŜy umieścić procedury obsługi zdarzeń? Wyłączanie obsługi zdarzeń Wprowadzanie kodu procedury obsługi zdarzeń Procedury obsługi zdarzeń 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 627 627 628 628 630 631 632 634 634 636 636 636 637 637 638 639 641 641 642 647 Zdarzenie BeforeDoubleClick Zdarzenie BeforeRightClick Zdarzenia dotyczące wykresów Zdarzenia dotyczące aplikacji Włączenie obsługi zdarzeń poziomu aplikacji Sprawdzanie, czy skoroszyt jest otwarty Monitorowanie zdarzeń poziomu aplikacji Zdarzenia dotyczące formularzy UserForm Zdarzenia niezwiązane z obiektami Zdarzenie OnTime Zdarzenie OnKey 648 648 649 649 651 653 654 655 655 655 658 Rozdział 20. Interakcje z innymi aplikacjami Uruchamianie innych aplikacji z poziomu Excela Zastosowanie funkcji Shell języka VBA Zastosowanie funkcji ShellExecute interfejsu Windows API Uaktywnianie aplikacji z poziomu Excela Wykorzystanie instrukcji AppActivate Uaktywnianie aplikacji pakietu Microsoft Office Uruchamianie okien dialogowych Panelu sterowania Wykorzystanie automatyzacji w programie Excel Działania z obiektami innych aplikacji z wykorzystaniem automatyzacji Wczesne i późne wiązanie Funkcja GetObject a CreateObject Prosty przykład późnego wiązania Sterowanie Wordem z poziomu Excela Zarządzanie Excelem z poziomu innej aplikacji Wysyłanie spersonalizowanych wiadomości e-mail z wykorzystaniem Outlooka Wysyłanie wiadomości e-mail z załącznikami z poziomu Excela Zastosowanie metody SendKeys 663 663 663 665 667 667 668 668 669 670 670 673 673 674 677 678 682 684 Rozdział 21. Tworzenie i wykorzystanie dodatków Czym są dodatki? Porównanie dodatku ze standardowym skoroszytem Po co tworzy się dodatki? MenedŜer dodatków Excela Tworzenie dodatków Przykład tworzenia dodatku Tworzenie opisu dla dodatku Tworzenie dodatku Instalowanie dodatku Testowanie dodatków Dystrybucja dodatków Modyfikowanie dodatku Porównanie plików XLAM i XLSM 685 685 686 687 688 689 690 691 692 693 694 694 695 695 Pliki XLAM - przynaleŜność do kolekcji z poziomu VBA Widoczność plików XLSM i XLAM Arkusze i wykresy w plikach XLSM i XLAM Dostęp do procedur VBA w dodatku Przetwarzanie dodatków za pomocą kodu VBA Właściwości obiektu AddIn Korzystanie z dodatku jak ze skoroszytu Zdarzenia związane z obiektami Addin Optymalizacja wydajności dodatków Problemy z dodatkami Zapewnienie, Ŝe dodatek został zainstalowany Odwoływanie się do innych plików z poziomu dodatku Wykrywanie właściwej wersji Excela dla dodatku 696 697 697 698 701 703 706 706 707 708 708 710 710 Część VI: Tworzenie aplikacji Rozdział 22. Tworzenie pasków narzędzi Wprowadzenie do pracy ze WstąŜką VBA i WstąŜka Dostęp do poleceń WstąŜki Praca ze WstąŜką Aktywowanie karty Dostosowywanie WstąŜki do własnych potrzeb Prosty przykład kodu RibbonX Prosty przykład kodu RibbonX - podejście 2 Kolejny przykład kodu RibbonX Demo formantów WstąŜki Przykład uŜycia formantu DynamicMenu Więcej wskazówek dotyczących modyfikacji WstąŜki Tworzenie pasków narzędzi w starym stylu Ograniczenia funkcjonalności tradycyjnych pasków narzędzi w Excelu 2010 Kod tworzący pasek narzędzi 711 713 713 715 718 719 721 721 722 725 730 732 738 741 742 742 743 Rozdział 23. Praca z menu podręcznym Obiekt CommandBar Rodzaje obiektów CommandBar Wyświetlanie menu podręcznych Odwołania do elementów kolekcji CommandBars Odwołania do formantów w obiekcie CommandBar Właściwości formantów obiektu CommandBar Wyświetlanie wszystkich elementów menu podręcznego Wykorzystanie VBA do dostosowywania menu podręcznego Resetowanie menu podręcznego Wyłączanie menu podręcznego Wyłączanie wybranych elementów menu podręcznego Dodawanie nowego elementu do menu podręcznego Cell 747 747 748 748 749 750 751 752 754 755 755 756 756 Dodawanie nowego podmenu do menu podręcznego Menu podręczne i zdarzenia Automatyczne tworzenie i usuwanie menu podręcznego Wyłączanie lub ukrywanie elementów menu podręcznego Tworzenie kontekstowych menu podręcznych 758 761 761 762 762 Rozdział 24. Tworzenie systemów pomocy w aplikacjach Systemy pomocy w aplikacjach Excela Pomoc online Systemy pomocy wykorzystujące komponenty Excela Wykorzystanie komentarzy do tworzenia systemów pomocy Wykorzystanie pól tekstowych do wyświetlania pomocy Wykorzystanie arkusza do wyświetlania tekstu pomocy Wyświetlanie pomocy w oknie formularza UserForm Wyświetlanie pomocy w oknie przeglądarki sieciowej Zastosowanie plików w formacie HTML Zastosowanie plików w formacie MHTML Wykorzystanie systemu HTML Help Wykorzystanie metody Help do wyświetlania pomocy w formacie HTML Help Łączenie pliku pomocy z aplikacją Przypisanie tematów pomocy do funkcji VBA 765 765 766 766 768 769 770 771 774 774 775 776 779 780 780 Rozdział 25. Tworzenie aplikacji przyjaznych dla uŜytkownika Czym jest aplikacja przyjazna dla uŜytkownika? Kreator amortyzacji poŜyczek Obsługa Kreatora amortyzacji poŜyczek Struktura skoroszytu Kreatora amortyzacji poŜyczek Jak działa Kreator amortyzacji poŜyczek? Potencjalne usprawnienia Kreatora amortyzacji poŜyczek Wskazówki dotyczące projektowania aplikacji 783 783 783 784 785 786 793 793 Część VII: Inne zagadnienia Rozdział 26. Problem kompatybilności aplikacji Co to jest kompatybilność? Rodzaje problemów ze zgodnością Unikaj uŜywania nowych funkcji i mechanizmów Czy aplikacja będzie działać na komputerach Macintosh? Praca z 64-bitową wersją Excela Tworzenie aplikacji dla wielu wersji narodowych Aplikacje obsługujące wiele języków Obsługa języka w kodzie VBA Wykorzystanie właściwości lokalnych Identyfikacja ustawień systemu Ustawienia daty i godziny 795 797 797 798 799 801 802 803 805 805 806 807 809 Rozdział 27. Operacje na plikach wykonywane za pomocą kodu VBA Najczęściej wykonywane operacje na plikach Zastosowanie poleceń języka VBA do wykonywania operacji na plikach Zastosowanie obiektu FileSystemObject Wyświetlanie rozszerzonych informacji o plikach Operacje z plikami tekstowymi Otwieranie plików tekstowych Odczytywanie plików tekstowych Zapisywanie danych do plików tekstowych Przydzielanie numeru pliku Określanie lub ustawianie pozycji w pliku Instrukcje pozwalające na odczytywanie i zapisywanie plików Przykłady wykonywania operacji na plikach Importowanie danych z pliku tekstowego Eksportowanie zakresu do pliku tekstowego Importowanie pliku tekstowego do zakresu Rejestrowanie wykorzystania Excela Filtrowanie zawartości pliku tekstowego Eksportowanie zakresu komórek do pliku HTML Eksportowanie zakresu komórek do pliku XLM Pakowanie i rozpakowywanie plików Pakowanie plików do formatu ZIP Rozpakowywanie plików ZIP Działania z obiektami danych ActiveX ADO 811 811 812 816 820 821 822 823 823 823 824 824 825 825 827 828 829 830 830 832 835 836 838 838 Rozdział 28. Operacje na składnikach języka VBA Podstawowe informacje o środowisku IDE Model obiektowy środowiska IDE Kolekcja VBProjects Wyświetlanie wszystkich składników projektu VBA Wyświetlanie wszystkich procedur VBA w arkuszu Zastępowanie modułu uaktualnioną wersją Zastosowanie języka VBA do generowania kodu VBA Zastosowanie VBA do umieszczenia formantów na formularzu UserForm Operacje z formularzami UserForm w fazie projektowania i wykonania Dodanie 100 przycisków CommandButton w fazie projektowania Programowe tworzenie formularzy UserForm Prosty przykład formularza UserForm UŜyteczny ale juŜ nie tak prosty przykład dynamicznego formularza UserForm 841 841 843 844 846 847 848 850 852 852 854 855 855 857 Rozdział 29. Moduły klas Czym jest moduł klasy? Przykład: utworzenie klasy NumLock Wstawianie modułu klasy Dodawanie kodu VBA do modułu klasy 863 863 864 865 865 Wykorzystanie klasy NumLock Dodatkowe informacje na temat modułów klas Programowanie właściwości obiektów Programowanie metod obiektów Zdarzenia definiowane w module klasy Przykład: klasa CSVFileClass Zmienne poziomu modułu dla klasy CSVFileClass Definicje właściwości klasy CSVFileClass Definicje metod klasy CSVFileClass Wykorzystanie obiektów CSVFileClass 867 868 868 870 871 871 872 872 872 874 Rozdział 30. Praca z kolorami Definiowanie kolorów Model kolorów RGB Model kolorów HSL Konwersja kolorów Skala szarości Zamiana kolorów na skalę szarości Wyświetlanie wykresów w skali szarości Eksperymenty z kolorami Praca z motywami dokumentów Kilka słów o motywach dokumentów Kolory motywów dokumentów Wyświetlanie wszystkich kolorów motywu Praca z obiektami Shape Kolor tła kształtu Kształty i kolory motywów Przykłady kształtów Modyfikacja kolorów wykresów 877 877 878 878 879 880 883 883 885 886 886 887 890 893 893 895 897 897 Rozdział 31. Często zadawane pytania na temat programowania w Excelu FAQ - czyli często zadawane pytania Ogólne pytania dotyczące programu Excel Pytania dotyczące edytora Visual Basic Pytania dotyczące procedur Pytania dotyczące funkcji Pytania dotyczące obiektów, właściwości, metod i zdarzeń Pytania dotyczące formularzy UserForm Pytania dotyczące dodatków Pytania dotyczące pasków poleceń 901 901 902 908 911 916 919 928 932 934 Część VIII: Dodatki Dodatek A: Zasoby online dotyczące Excela Pomoc systemowa programu Excel Pomoc techniczna firmy Microsoft Opcje pomocy technicznej Baza wiedzy firmy Microsoft Strona domowa programu Microsoft Excel Strona domowa pakietu Microsoft Office Internetowe grupy dyskusyjne Dostęp do grup dyskusyjnych za pomocą czytników grup dyskusyjnych Dostęp do grup dyskusyjnych za pomocą przeglądarki sieciowej Wyszukiwanie informacji w grupach dyskusyjnych Strony internetowe WWW Strona domowa Spreadsheet Strona Daily Dose of Excel Strona o Excelu Jona Peltiera Pearson Software Consulting Contextures Pointy Haired Dilbert Strony o Excelu Davida McRitchie Mr. Excel 937 939 939 940 940 940 940 940 941 941 941 942 943 943 944 944 944 944 944 945 945 Dodatek B: Instrukcje i funkcje VBA 947 Wywoływanie funkcji Excela w instrukcjach VBA 950 Dodatek C: Kody błędów VBA 957 Dodatek D: Zawartość płyty CD-ROM 961 Skorowidz 977 oprac. BPK