okladka

Excel jeszcze bogatszy, poręczniejszy i dostosowany
do Twoich potrzeb

Możliwości Excela są ogromne, jednak nie zawsze w pełni odpowiadają naszym potrzebom. Najpopularniejszy obecnie arkusz kalkulacyjny zawiera także wiele interesujących funkcji ukrytych w tle i nieznanych typowemu użytkownikowi. Czy istnieje sposób na wykorzystanie ukrytych funkcji Excela oraz dostosowanie tych znanych do wymagań stawianych przez konkretne zadanie? Tak -- tym sposobem jest Visual Basic for Applications (VBA). VBA to język programowania umożliwiający tworzenie aplikacji bazujących na możliwościach innych aplikacji, w tym przypadku -- na możliwościach Excela.

Książka "Excel 2003 PL. Programowanie w VBA. Vademecum profesjonalisty" przeznaczona jest dla wszystkich użytkowników Excela, którzy chcą pogłębić swoją wiedzę o tej aplikacji i stworzyć własne, powiązane z nią, programy. Przedstawia podstawy programowania w Excelu oraz techniki zaawansowane -- wszystko, co jest związane z projektowaniem aplikacji w Excelu i programowaniem w języku VBA.

  • Niezbędne wiadomości o Excelu i wykorzystywanych przez niego formatach plików
  • Zasady projektowania aplikacji arkusza kalkulacyjnego
  • Programowanie w języku VBA
  • Tworzenie niestandardowych okien dialogowych -- formularzy UserForm
  • Pisanie narzędzi dla programu Excel
  • Praca z wykresami
  • Programowanie obsługi zdarzeń
  • Współpraca z innymi aplikacjami
  • Tworzenie elementów aplikacji -- menu, pasków narzędzi i systemów pomocy
  • Operacje na plikach
  • Komponenty języka VBA

Niewielu użytkowników Excela jest tak naprawdę świadomych jego możliwości. Przeczytaj niniejszą książkę i dołącz do tej elitarnej grupy.


O Autorze (19)
Przedmowa (21)
Część I Podstawowe informacje (27)
Rozdział 1. Skąd się wziął Excel 2003? (29)
  • Historia arkuszy kalkulacyjnych w zarysie (29)
    • Wszystko zaczęło się od programu VisiCalc (29)
    • Program 1-2-3 firmy Lotus (30)
    • Program Quattro Pro (33)
    • Program Microsoft Excel (34)
  • Excel jako dobre narzędzie dla projektantów aplikacji (36)
  • Rola Excela w strategii Microsoftu (38)
Rozdział 2. Program Excel w zarysie (39)
  • Myślenie obiektowe (39)
  • Skoroszyty (40)
    • Arkusze (40)
    • Arkusze wykresów (41)
    • Arkusze makr XLM (42)
    • Arkusze dialogowe programów Excel 5/95 (42)
  • Interfejs użytkownika w Excelu (42)
    • Menu (42)
    • Menu podręczne (43)
    • Paski narzędzi (43)
    • Okna dialogowe (44)
    • Funkcja "przeciągnij i upuść" (45)
    • Skróty klawiaturowe (45)
    • Inteligentne tagi (45)
    • Panel zadań (46)
  • Wprowadzanie danych (46)
  • Formuły, funkcje i nazwy (48)
  • Dostosowywanie zawartości okna Excela (49)
  • Zaznaczanie obiektów (49)
  • Formatowanie (50)
    • Formatowanie liczbowe (50)
    • Formatowane stylu (50)
  • Kształty (51)
  • Wykresy (52)
  • Makra i programowanie (52)
  • Dostęp do bazy danych (53)
    • Arkuszowe bazy danych (53)
    • Zewnętrzne bazy danych (55)
  • Funkcje internetowe (55)
  • Funkcje związane z językiem XML (56)
  • Narzędzia analizy (56)
    • Konspekty (56)
    • Automatyczne sumy częściowe (56)
    • Dodatek Analysis ToolPak (56)
    • Tabele przestawne (57)
    • Dodatek Solver (58)
  • Dodatki (58)
  • Zgodność wersji (58)
  • Opcje ochrony (58)
    • Ochrona formuł przed nadpisaniem (59)
    • Ochrona struktury skoroszytu (59)
    • Ochrona skoroszytu przy użyciu hasła (60)
    • Ochrona kodu języka VBA przy użyciu hasła (60)
  • System pomocy Excela (61)
Rozdział 3. Wybrane zasady stosowania formuł (63)
  • Formuły (63)
  • Obliczanie formuł (63)
  • Odwołania do komórki lub zakresu (64)
    • Dlaczego warto stosować odwołania, które nie są względne? (65)
    • Notacja W1K1 (65)
    • Odwołania do innych arkuszy lub skoroszytów (66)
  • Zastosowanie nazw (67)
    • Nadawanie nazw komórkom i zakresom (67)
    • Nadawanie nazw istniejącym odwołaniom (68)
    • Stosowanie nazw z operatorem przecięcia (69)
    • Nadawanie nazw kolumnom i wierszom (70)
    • Obszar obowiązywania nazw (70)
    • Nadawanie nazw stałym (70)
    • Nadawanie nazw formułom (71)
    • Nadawanie nazw obiektom (73)
  • Błędy formuł (73)
  • Formuły tablicowe (74)
    • Przykład formuły tablicowej (74)
    • Kalendarz oparty na formule tablicowej (75)
    • Zalety i wady formuły tablicowej (75)
  • Metody zliczania i sumowania (76)
    • Zastosowanie funkcji LICZ.JEŻELI lub SUMA.JEŻELI (76)
    • Zastosowanie formuł tablicowych do zliczania i sumowania (77)
    • Inne narzędzia zliczające (79)
  • Używanie daty i czasu (79)
    • Wprowadzanie daty i czasu (79)
    • Stosowanie dat sprzed roku 1900 (80)
  • Tworzenie megaformuł (81)
Rozdział 4. Pliki Excela (85)
  • Uruchamianie Excela (85)
  • Obsługiwane formaty plików arkuszy kalkulacyjnych (87)
    • Pliki arkusza kalkulacyjnego 1-2-3 firmy Lotus (87)
    • Pliki arkusza kalkulacyjnego Quattro Pro (88)
    • Formaty plików baz danych (88)
    • Formaty plików tekstowych (89)
    • Inne formaty plików (89)
  • Pliki tworzone przez Excel (89)
    • Pliki formatu XLS (90)
    • Pliki obszaru roboczego (90)
    • Pliki szablonów (91)
    • Pliki pasków narzędzi (91)
    • Pliki dodatków (92)
  • Excel i język HTML (92)
    • W jaki sposób Excel korzysta z formatu HTML? (93)
    • Zwiększanie złożoności (94)
    • Tworzenie interaktywnych plików HTML (94)
  • Importowanie i eksportowanie plików XML (96)
    • Czym jest XML? (96)
    • Importowanie zawartości plików XML przy użyciu mapy (97)
    • Importowanie zawartości plików XML do listy (99)
    • Eksportowanie zawartości plików XML z Excela (99)
  • Ustawienia Excela w rejestrze systemu Windows (100)
    • Rejestr systemu Windows (100)
    • Ustawienia Excela (101)
Część II Projektowanie aplikacji w Excelu (103)
Rozdział 5. Czym jest aplikacja arkusza kalkulacyjnego? (105)
  • Robocza definicja aplikacji arkusza kalkulacyjnego (105)
  • Projektant i użytkownik końcowy (106)
    • Kim są projektanci i czym się zajmują? (107)
    • Klasyfikacja użytkowników arkuszy kalkulacyjnych (108)
    • Odbiorcy aplikacji arkusza kalkulacyjnego (108)
  • Rozwiązywanie problemów przy użyciu aplikacji arkusza kalkulacyjnego (109)
  • Podstawowe kategorie aplikacji arkusza kalkulacyjnego (110)
    • Arkusze kalkulacyjne tworzone szybko i niestarannie (111)
    • Arkusze kalkulacyjne przeznaczone wyłącznie do użytku prywatnego (111)
    • Aplikacje jednego użytkownika (112)
    • Aplikacje typu "spaghetti" (112)
    • Aplikacje użytkowe (112)
    • Dodatki zawierające funkcje arkusza (113)
    • Jednoblokowe budżety (113)
    • Modele warunkowe (114)
    • Aplikacje przechowujące dane i udzielające do nich dostępu (114)
    • Aplikacje komunikujące się z bazami danych (115)
    • Aplikacje "pod klucz" (115)
Rozdział 6. Podstawy projektowania aplikacji arkusza kalkulacyjnego (117)
  • Podstawowe etapy projektowania (117)
  • Określenie wymagań użytkownika (118)
  • Planowanie aplikacji spełniającej wymagania użytkownika (119)
  • Określenie najwłaściwszego interfejsu użytkownika (121)
    • Tworzenie niestandardowych okien dialogowych (122)
    • Zastosowanie kontrolek ActiveX w arkuszu (122)
    • Dostosowanie menu (123)
    • Dostosowywanie pasków narzędzi (125)
    • Tworzenie skrótów klawiaturowych (127)
    • Rozpoczęcie prac projektowych (127)
  • Zadania realizowane z myślą o końcowym użytkowniku (127)
    • Testowanie aplikacji (128)
    • Zwiększanie odporności aplikacji (128)
    • Tworzenie aplikacji intuicyjnej i estetycznie wyglądającej (131)
    • Tworzenie systemu pomocy przeznaczonego dla użytkownika (132)
    • Dokumentowanie prac projektowych (132)
    • Przekazanie aplikacji użytkownikom (132)
    • Uaktualnianie aplikacji w razie konieczności (133)
  • Pozostałe kwestie dotyczące projektowania (134)
    • Wersja Excela zainstalowana przez użytkownika (134)
    • Wersja językowa (134)
    • Szybkość systemu (135)
    • Tryby karty graficznej (135)
Część III Język Visual Basic for Applications (137)
Rozdział 7. Wprowadzenie do języka VBA (139)
  • Podstawowe informacje o języku BASIC (139)
  • Język VBA (139)
    • Modele obiektowe (140)
    • Porównanie języka VBA z językiem XLM (140)
  • Wprowadzenie do języka VBA (140)
  • Edytor Visual Basic (144)
    • Uruchomienie edytora VBE (144)
    • Okna edytora Visual Basic (145)
  • Zastosowanie okna Project Explorer (146)
    • Dodanie nowego modułu VBA (147)
    • Usuwanie modułu VBA (148)
    • Eksportowanie i importowanie obiektów (148)
  • Zastosowanie okien Code (148)
    • Minimalizacja i maksymalizacja okien (149)
    • Przechowywanie kodu źródłowego języka VBA (149)
    • Wprowadzanie kodu źródłowego języka VBA (150)
  • Dostosowywanie edytora Visual Basic (155)
    • Zakładka Editor (156)
    • Zakładka Editor Format (158)
    • Zakładka General (159)
    • Zastosowanie zakładki Docking (160)
  • Rejestrator makr Excela (160)
    • Co właściwie rejestrator makr zapisuje? (161)
    • Względne czy bezwzględne? (162)
    • Opcje związane z rejestrowaniem (165)
    • Modyfikowanie zarejestrowanych makr (166)
  • Obiekty i zbiory (167)
    • Hierarchia obiektów (168)
    • Zbiory (168)
    • Odwoływanie się do obiektów (169)
  • Właściwości i metody (169)
    • Właściwości obiektów (170)
    • Metody obiektów (171)
  • Obiekt Comment (172)
    • Pomoc dotycząca obiektu Comment (172)
    • Właściwości obiektu Comment (173)
    • Metody obiektu Comment (173)
    • Zbiór Comments (174)
    • Właściwość Comment (175)
    • Obiekty podlegające obiektowi Comment (175)
    • Sprawdzanie, czy komórka zawiera komentarz (177)
    • Dodanie nowego obiektu Comment (177)
    • Kilka przydatnych właściwości obiektu Application (178)
  • Obiekty Range (179)
    • Właściwość Range (180)
    • Właściwość Cells (181)
    • Właściwość Offset (182)
  • Co należy wiedzieć o obiektach? (184)
    • Podstawowe zagadnienia, które należy zapamiętać (184)
    • Dodatkowe informacje na temat obiektów i właściwości (185)
Rozdział 8. Podstawy programowania w języku VBA (189)
  • Przegląd elementów języka VBA (189)
  • Komentarze (191)
  • Zmienne, typy danych i stałe (192)
    • Definiowanie typów danych (193)
    • Deklarowanie zmiennych (196)
    • Zasięg zmiennych (197)
    • Zastosowanie stałych (201)
    • Zastosowanie łańcuchów (202)
    • Zastosowanie dat (203)
  • Instrukcje przypisania (204)
  • Tablice (205)
    • Deklarowanie tablic (205)
    • Deklarowanie tablic wielowymiarowych (206)
  • Zmienne obiektowe (207)
  • Typy danych definiowane przez użytkownika (208)
  • Funkcje wbudowane (208)
  • Manipulowanie obiektami i zbiorami (211)
    • Konstrukcja With ... End With (211)
    • Konstrukcja For Each ... Next (212)
  • Sterowanie wykonywaniem procedur (214)
    • Instrukcja GoTo (214)
    • Konstrukcja If ... Then (215)
    • Konstrukcja Select Case (218)
    • Wykonywanie bloku instrukcji w ramach pętli (221)
Rozdział 9. Zastosowanie procedur Sub języka VBA (227)
  • Deklarowanie i tworzenie procedur Sub języka VBA (227)
    • Deklarowanie procedury Sub (227)
    • Zasięg procedury (228)
  • Wykonywanie procedur Sub (229)
    • Wykonywanie procedury przy użyciu polecenia Run Sub/UserForm (230)
    • Uruchamianie procedury z poziomu okna dialogowego Makro (230)
    • Wykonywanie procedury przy użyciu skrótu opartego na klawiszu Ctrl (231)
    • Wykonywanie procedury przy użyciu niestandardowego menu (232)
    • Wywoływanie procedury z innej procedury (233)
    • Wykonywanie procedury przy użyciu przycisku paska narzędzi (237)
    • Wykonywanie procedury poprzez kliknięcie obiektu (238)
    • Wykonywanie makra po wystąpieniu zdarzenia (239)
    • Wykonywanie procedury z poziomu okna Immediate (239)
  • Przekazywanie argumentów procedurom (240)
  • Metody obsługi błędów (243)
    • Przechwytywanie błędów (243)
    • Przykłady kodu źródłowego obsługującego błędy (245)
  • Rzeczywisty przykład wykorzystujący procedury Sub (247)
    • Cel (247)
    • Wymagania projektowe (247)
    • Dostępne informacje (248)
    • Sposób realizacji (248)
    • Co należy wiedzieć? (249)
    • Wstępne rejestrowanie makra (249)
    • Wstępne przygotowania (250)
    • Pisanie kodu źródłowego (251)
    • Tworzenie procedury sortującej (252)
    • Dodatkowe testy (255)
    • Usuwanie problemów (256)
    • Dostępność narzędzia (258)
    • Ocenianie projektu (259)
Rozdział 10. Tworzenie procedur Function (261)
  • Porównanie procedur Sub i Function (261)
  • Dlaczego tworzy się funkcje niestandardowe? (261)
  • Pierwszy przykład procedury Function (262)
    • Funkcja niestandardowa (262)
    • Zastosowanie funkcji w arkuszu (263)
    • Zastosowanie funkcji w procedurze języka VBA (264)
    • Analiza funkcji niestandardowej (264)
  • Procedury Function (265)
    • Deklarowanie funkcji (265)
    • Zasięg funkcji (266)
    • Wykonywanie procedur Function (267)
  • Argumenty procedury Function (268)
  • Przykłady funkcji (268)
    • Funkcja pozbawiona argumentów (269)
    • Kolejna funkcja pozbawiona argumentów (270)
    • Funkcja z jednym argumentem (270)
    • Funkcja z dwoma argumentami (273)
    • Funkcja pobierająca tablicę jako argument (274)
    • Funkcja używająca opcjonalnych argumentów (274)
    • Funkcja zwracająca tablicę języka VBA (276)
    • Funkcja zwracająca wartość błędu (278)
    • Funkcja o nieokreślonej liczbie argumentów (280)
  • Emulowanie funkcji SUMA Excela (280)
  • Funkcje wykrywające i usuwające błędy (283)
  • Okno dialogowe Wstawianie funkcji (284)
    • Definiowanie kategorii funkcji (285)
    • Dodanie opisu funkcji (286)
  • Dodatki przechowujące funkcje niestandardowe (287)
  • Interfejs API systemu Windows (287)
    • Przykłady zastosowania funkcji interfejsu API systemu Windows (288)
    • Identyfikacja katalogu systemu Windows (288)
    • Wykrywanie wciśnięcia klawisza Shift (289)
    • Dodatkowe informacje na temat funkcji interfejsu API (290)
Rozdział 11. Przykłady i metody programowania w języku VBA (291)
  • Przetwarzanie zakresów (291)
    • Kopiowanie zakresu (292)
    • Przenoszenie zakresu (293)
    • Kopiowanie zakresu o zmiennej wielkości (293)
    • Zaznaczanie różnego typu zakresów i identyfikowanie ich (294)
    • Wprowadzanie wartości do komórki (296)
    • Wprowadzanie wartości do następnej pustej komórki (297)
    • Wstrzymywanie wykonywania makra w celu pobrania zakresu zaznaczonego przez użytkownika (298)
    • Zliczanie zaznaczonych komórek (299)
    • Określanie typu zaznaczonego zakresu (300)
    • Wydajne przetwarzanie komórek zaznaczonego zakresu przy użyciu pętli (302)
    • Usuwanie wszystkich pustych wierszy (303)
    • Określanie, czy zakres zawiera się w innym zakresie (304)
    • Określanie typu danych zawartych w komórce (304)
    • Odczytywanie i zapisywanie zakresów (305)
    • Lepsza metoda zapisywania zakresu (306)
    • Przenoszenie zawartości tablic jednowymiarowych (308)
    • Przenoszenie zawartości zakresu do tablicy typu Variant (308)
    • Zaznaczanie maksymalnej wartości zakresu (309)
    • Zaznaczanie wszystkich komórek określonego formatu (310)
  • Przetwarzanie skoroszytów i arkuszy (312)
    • Zapisywanie wszystkich skoroszytów (312)
    • Zapisywanie i zamykanie wszystkich skoroszytów (312)
    • Korzystanie z właściwości skoroszytu (312)
    • Synchronizowanie arkuszy (313)
  • Metody programowania w języku VBA (314)
    • Przełączanie wartości właściwości typu logicznego (314)
    • Określanie liczby drukowanych stron (315)
    • Wyświetlanie daty i czasu (315)
    • Pobieranie listy czcionek (317)
    • Sortowanie tablicy (318)
    • Przetwarzanie grupy plików (319)
  • Funkcje przydatne w procedurach języka VBA (320)
    • Funkcja FileExists (321)
    • Funkcja FileNameOnly (321)
    • Funkcja PathExists (321)
    • Funkcja RangeNameExists (322)
    • Funkcja SheetExists (322)
    • Funkcja WorkbookIsOpen (322)
    • Pobieranie wartości z zamkniętego skoroszytu (322)
  • Funkcje przydatne w formułach arkusza (324)
    • Funkcje zwracające informacje o formatowaniu komórki (324)
    • Wyświetlanie daty w trakcie zapisywania lub drukowania pliku (325)
    • Obiekty nadrzędne (326)
    • Zliczanie komórek, których wartości zawierają się pomiędzy dwoma wartościami (327)
    • Zliczanie widocznych komórek zakresu (328)
    • Określanie ostatniej niepustej komórki kolumny lub wiersza (328)
    • Czy łańcuch jest zgodny z wzorcem? (330)
    • Wydzielanie n-tego elementu łańcucha (331)
    • Funkcja wielofunkcyjna (332)
    • Funkcja SHEETOFFSET (333)
    • Zwracanie maksymalnej wartości ze wszystkich arkuszy (334)
    • Zwracanie tablicy zawierającej unikatowe, losowo uporządkowane liczby całkowite (335)
    • Porządkowanie zakresu w losowy sposób (336)
  • Funkcje interfejsu API systemu Windows (338)
    • Określanie skojarzeń plików (338)
    • Określenie informacji dotyczących domyślnej drukarki (339)
    • Określenie aktualnej rozdzielczości karty graficznej (340)
    • Dodanie dźwięku do aplikacji (340)
    • Odczytywanie zawartości rejestru systemu Windows i zapisywanie w nim danych (342)
Część IV Zastosowanie formularzy UserForm (345)
Rozdział 12. Alternatywne metody tworzenia niestandardowych okien dialogowych (347)
  • Okno wprowadzania danych (347)
    • Funkcja InputBox języka VBA (347)
    • Metoda InputBox Excela (349)
  • Okno komunikatu - funkcja MsgBox języka VBA (351)
  • Metoda GetOpenFilename Excela (354)
  • Metoda GetSaveAsFilename Excela (357)
  • Okno wybierania katalogu (357)
    • Wybieranie katalogu przy użyciu funkcji interfejsu API systemu Windows (358)
    • Wybieranie katalogu przy użyciu obiektu FileDialog (360)
  • Wyświetlanie wbudowanych okien dialogowych Excela (360)
    • Zastosowanie zbioru Dialogs (361)
    • Dodatkowe informacje na temat wbudowanych okien dialogowych (362)
    • Zastosowanie argumentów z wbudowanymi oknami dialogowymi (363)
    • Bezpośrednie wybieranie pozycji menu (363)
Rozdział 13. Wprowadzenie do formularzy UserForm (365)
  • Wstawianie nowego formularza UserForm (365)
  • Dodawanie kontrolek do formularza UserForm (366)
  • Kontrolki okna Toolbox (367)
    • Kontrolka CheckBox (367)
    • Kontrolka ComboBox (367)
    • Kontrolka CommandButton (367)
    • Kontrolka Frame (367)
    • Kontrolka Image (369)
    • Kontrolka Label (369)
    • Kontrolka ListBox (369)
    • Kontrolka MultiPage (369)
    • Kontrolka OptionButton (369)
    • Kontrolka RefEdit (370)
    • Kontrolka ScrollBar (370)
    • Kontrolka SpinButton (370)
    • Kontrolka TabStrip (370)
    • Kontrolka TextBox (370)
    • Kontrolka ToggleButton (370)
  • Modyfikowanie kontrolek formularza UserForm (370)
  • Modyfikowanie właściwości kontrolki (371)
    • Zastosowanie okna Properties (372)
    • Wspólne właściwości (373)
    • Zdobywanie dodatkowych informacji o właściwościach (373)
    • Uwzględnienie wymagań użytkowników preferujących korzystanie z klawiatury (373)
  • Wyświetlanie i zamykanie formularzy UserForm (375)
    • Wyświetlanie formularza UserForm (375)
    • Zamykanie formularza UserForm (377)
    • Procedury obsługi zdarzeń (378)
  • Przykład tworzenia formularza UserForm (378)
    • Tworzenie formularza UserForm (378)
    • Pisanie kodu źródłowego procedury wyświetlającej okno dialogowe (381)
    • Testowanie okna dialogowego (381)
    • Dodawanie procedur obsługi zdarzeń (382)
    • Sprawdzanie poprawności danych (384)
    • Ukończenie tworzenia okna dialogowego (384)
  • Zdarzenia powiązane z formularzem UserForm (385)
    • Zdobywanie informacji na temat zdarzeń (385)
    • Zdarzenia formularza UserForm (386)
    • Zdarzenia związane z kontrolką SpinButton (386)
    • Współpraca kontrolki SpinButton z kontrolką TextBox (388)
  • Odwoływanie się do kontrolek formularza UserForm (390)
  • Dostosowywanie okna Toolbox do własnych wymagań (391)
    • Modyfikacja ikon lub tekstu podpowiedzi (391)
    • Dodawanie nowych zakładek (391)
    • Dostosowywanie lub łączenie kontrolek (392)
    • Dodawanie nowych kontrolek ActiveX (392)
  • Tworzenie szablonów formularzy UserForm (393)
  • Lista kontrolna związana z tworzeniem formularzy UserForm (394)
Rozdział 14. Przykłady formularzy UserForm (395)
  • Tworzenie formularza UserForm pełniącego funkcję menu (395)
    • Zastosowanie w formularzu UserForm kontrolek CommandButton (395)
    • Zastosowanie w formularzu UserForm kontrolki ListBox (396)
  • Zaznaczanie zakresów przy użyciu formularza UserForm (397)
  • Tworzenie okna powitalnego (398)
  • Wyłączanie przycisku Zamknij formularza UserForm (400)
  • Zmiana wielkości formularza UserForm (401)
  • Powiększanie i przewijanie arkusza przy użyciu formularza UserForm (402)
  • Zastosowania kontrolki ListBox (404)
    • Kontrolka ListBox (404)
    • Umieszczanie pozycji w kontrolce ListBox (405)
    • Identyfikowanie zaznaczonej pozycji (408)
    • Identyfikowanie wielu zaznaczonych pozycji kontrolki ListBox (409)
    • Wiele list w jednej kontrolce ListBox (410)
    • Przenoszenie pozycji kontrolki ListBox (410)
    • Przemieszczanie pozycji kontrolki ListBox (412)
    • Stosowanie wielokolumnowych kontrolek ListBox (413)
    • Zastosowanie kontrolki ListBox do wybierania wierszy arkusza (415)
    • Uaktywnianie arkusza za pomocą kontrolki ListBox (417)
  • Zastosowania kontrolki MultiPage (418)
Rozdział 15. Zaawansowane techniki korzystania z formularzy UserForm (421)
  • Wyświetlanie wskaźnika postępu zadania (421)
    • Tworzenie samodzielnego wskaźnika postępu zadania (422)
    • Wyświetlanie wskaźnika postępu zadania za pomocą kontrolki MultiPage (424)
    • Wyświetlanie wskaźnika postępu zadania bez korzystania z kontrolki MultiPage (426)
  • Kreatory - interaktywne sekwencje okien dialogowych (427)
    • Konfigurowanie kontrolki MultiPage w celu utworzenia kreatora (428)
    • Dodawanie przycisków do formularza UserForm kreatora (428)
    • Programowanie przycisków kreatora (429)
    • Zależności programowe w kreatorach (430)
    • Wykonywanie zadań za pomocą kreatorów (431)
  • Emulacja funkcji MsgBox (432)
    • Emulacja funkcji MsgBox: kod funkcji MyMsgBox (433)
    • Jak działa funkcja emulująca MsgBox (434)
    • Wykorzystanie funkcji MyMsgBox (435)
  • Niemodalne okna dialogowe (435)
  • Obsługa wielu przycisków formularza UserForm za pomocą jednej procedury obsługi zdarzeń (438)
  • Wybór koloru za pomocą formularza UserForm (441)
  • Wyświetlanie wykresów w formularzach UserForm (442)
    • Metoda 1. zapisanie wykresu do pliku (443)
    • Metoda 2. zastosowanie kontrolki ChartSpace z pakietu OWC (444)
  • Wyświetlanie arkuszy w formularzach UserForm (446)
    • Udostępnianie kontrolki Spreadsheet (447)
    • Dodawanie kontrolki Spreadsheet w formularzu UserForm (447)
    • Prosty przykład zastosowania kontrolki Spreadsheet komponentów sieci WWW pakietu Office (447)
  • UserForm Deluxe: ulepszony formularz danych (450)
    • Opis ulepszonego formularza danych (450)
    • Instalacja dodatku - ulepszonego formularza danych (450)
    • Wykorzystanie ulepszonego formularza danych (451)
Część V Zaawansowane techniki programowania (453)
Rozdział 16. Tworzenie narzędzi dla Excela w języku VBA (455)
  • Wprowadzenie (455)
  • Zastosowanie języka VBA do tworzenia narzędzi (456)
  • Co decyduje o przydatności narzędzia? (456)
  • Operacje tekstowe - anatomia narzędzia (457)
    • Podstawy tworzenia narzędzia Operacje tekstowe (458)
    • Określenie wymagań dla narzędzia Operacje tekstowe (458)
    • Jak działa narzędzie Operacje tekstowe? (458)
    • Skoroszyt narzędzia Operacje tekstowe (459)
    • Formularz UserForm dla narzędzia Operacje tekstowe (459)
    • Moduł kodu ThisWorkbook (461)
    • Moduł VBA Module1 (462)
    • Moduł formularza UserForm1 (463)
    • Poprawa wydajności narzędzia Operacje tekstowe (464)
    • Zapisywanie ustawień narzędzia Operacje tekstowe (465)
    • Implementacja procedury Cofnij (466)
    • Ocena realizacji projektu (468)
    • Działanie narzędzia Operacje tekstowe (469)
  • Dodatkowe informacje na temat narzędzi Excela (469)
Rozdział 17. Tabele przestawne (471)
  • Wykorzystanie języka VBA do tworzenia tabel przestawnych (471)
    • Tworzenie tabel przestawnych (471)
    • Analiza zarejestrowanego kodu tworzenia tabeli przestawnej (473)
    • Ulepszanie zarejestrowanego kodu tworzenia tabeli przestawnej (473)
  • Złożone tabele przestawne (474)
    • Dane dla złożonej tabeli przestawnej (475)
    • Kod tworzący tabelę przestawną (475)
    • Jak działa złożona tabela przestawna? (477)
  • Tworzenie tabel przestawnych na podstawie zewnętrznej bazy danych (478)
  • Jednoczesne tworzenie wielu tabel przestawnych (479)
  • Modyfikowanie tabel przestawnych (482)
Rozdział 18. Wykresy (485)
  • Podstawowe wiadomości o wykresach (485)
    • Położenie wykresu (485)
    • Model obiektu Chart (486)
  • Rejestrowanie makr dotyczących wykresów (487)
    • Zarejestrowany kod makra tworzącego wykres (487)
    • Ulepszanie zarejestrowanego kodu tworzenia wykresu (489)
  • Popularne techniki języka VBA dotyczące wykresów (489)
    • Wykorzystanie VBA do uaktywnienia wykresu (490)
    • Wykorzystanie VBA do deaktywacji wykresu (491)
    • Sprawdzanie, czy wykres uaktywniono (492)
    • Usuwanie elementów z kolekcji ChartObjects lub Charts (492)
    • Formatowanie wykresów za pomocą VBA (493)
    • Przetwarzanie wszystkich wykresów w pętli (494)
    • Zmiana rozmiarów i wyrównywanie obiektów ChartObject (494)
  • Inne techniki przetwarzania wykresów (496)
    • Zastosowanie nazw w formule SERIE (496)
    • Zastosowanie języka VBA w celu określenia danych wykorzystywanych na wykresie (497)
    • Zastosowanie języka VBA w celu określenia zakresu danych wykorzystywanych na wykresie (500)
    • Wykorzystanie VBA do wyświetlania dowolnych etykiet danych na wykresie (503)
    • Wyświetlanie wykresu w oknie UserForm (505)
  • Zdarzenia związane z wykresami (507)
    • Przykład wykorzystania zdarzeń związanych z wykresami (507)
    • Obsługa zdarzeń dla wykresów wbudowanych (511)
    • Zastosowanie zdarzeń dla wykresów wbudowanych (512)
  • Jak ułatwić sobie pracę z wykresami? (514)
    • Drukowanie wbudowanych wykresów (515)
    • Tworzenie "martwych" wykresów (515)
    • Wykorzystanie zdarzenia MouseOver do wyświetlania tekstu (517)
    • Wykresy animowane (518)
    • Tworzenie wykresu krzywych hipocykloidalnych (519)
    • Tworzenie wykresu-zegara (520)
  • Co można zrobić z wykresami bez użycia makr? (522)
    • Sterowanie seriami danych za pomocą automatycznego filtrowania (522)
    • Zapisywanie wielu wykresów w arkuszu-wykresie (523)
    • Tworzenie samorozszerzającego się wykresu (524)
    • Tworzenie interaktywnego wykresu (530)
Rozdział 19. Obsługa zdarzeń (535)
  • Typy zdarzeń, które można monitorować w Excelu (535)
  • Najważniejsze informacje o zdarzeniach (536)
    • Sekwencje zdarzeń (536)
    • Gdzie należy umieścić procedury obsługi zdarzeń? (537)
    • Wyłączanie obsługi zdarzeń (538)
    • Wprowadzanie kodu procedury obsługi zdarzeń (539)
    • Procedury obsługi zdarzeń z argumentami (540)
  • Zdarzenia poziomu skoroszytu (541)
    • Zdarzenie Open (541)
    • Zdarzenie Activate (543)
    • Zdarzenie SheetActivate (543)
    • Zdarzenie NewSheet (544)
    • Zdarzenie BeforeSave (544)
    • Zdarzenie Deactivate (544)
    • Zdarzenie BeforePrint (545)
    • Zdarzenie BeforeClose (546)
  • Zdarzenia poziomu arkusza (547)
    • Zdarzenie Change (547)
    • Monitorowanie modyfikacji w wybranym zakresie komórek (549)
    • Zdarzenie SelectionChange (551)
    • Zdarzenie BeforeRightClick (552)
  • Zdarzenia dotyczące wykresów (553)
  • Zdarzenia dotyczące aplikacji (553)
    • Włączenie obsługi zdarzeń poziomu aplikacji (554)
    • Sprawdzanie, czy skoroszyt jest otwarty (556)
    • Monitorowanie zdarzeń poziomu aplikacji (557)
  • Zdarzenia dotyczące formularzy UserForm (558)
  • Zdarzenia niezwiązane z obiektami (559)
    • Zdarzenie OnTime (560)
    • Zdarzenie OnKey (561)
Rozdział 20. Interakcje z innymi aplikacjami (563)
  • Uruchamianie innych aplikacji z poziomu Excela (563)
    • Zastosowanie funkcji Shell języka VBA (563)
    • Zastosowanie funkcji Windows API ShellExecute (566)
  • Uaktywnianie aplikacji z poziomu Excela (567)
    • Wykorzystanie instrukcji AppActivate (567)
    • Uaktywnianie aplikacji pakietu Microsoft Office (567)
  • Uruchamianie okien dialogowych Panelu sterowania (568)
  • Wykorzystanie automatyzacji (569)
    • Działania z obiektami innych aplikacji z wykorzystaniem automatyzacji (569)
    • Wczesne i późne wiązanie (570)
    • Prosty przykład późnego wiązania (572)
    • Zarządzanie Wordem z poziomu Excela (573)
    • Zarządzanie Excelem z poziomu innej aplikacji (576)
  • Wysyłanie spersonalizowanych wiadomości e-mail z wykorzystaniem Outlooka (577)
  • Działania z obiektami danych ActiveX (ADO) (579)
  • Wysyłanie wiadomości e-mail z załącznikami z poziomu Excela (581)
  • Zastosowanie metody SendKeys (582)
Rozdział 21. Tworzenie i wykorzystanie dodatków (585)
  • Czym są dodatki? (585)
    • Porównanie dodatku ze standardowym skoroszytem (585)
    • Po co tworzy się dodatki? (586)
  • Menedżer dodatków Excela (587)
  • Tworzenie dodatków (588)
  • Przykładowy dodatek (589)
    • Konfiguracja skoroszytu dla przykładowego dodatku (589)
    • Testowanie skoroszytu użytego do utworzenia przykładowego dodatku (589)
    • Wprowadzanie opisu dla przykładowego dodatku (590)
    • Utworzenie dodatku (590)
    • Instalowanie dodatku (592)
    • Dystrybucja dodatków (592)
    • Modyfikowanie dodatku (592)
  • Porównanie plików XLA i XLS (594)
    • Rozmiar i struktura plików XLS i XLA (594)
    • Pliki XLA - przynależność do kolekcji z poziomu VBA (594)
    • Widoczność plików XLS i XLA (594)
    • Arkusze i wykresy w plikach XLS i XLA (595)
    • Dostęp do procedur VBA w dodatku (596)
  • Przykłady przetwarzania dodatków za pomocą kodu VBA (597)
    • Kolekcja AddIns (598)
    • Właściwości obiektu AddIn (599)
    • Zdarzenia związane z obiektami Addin (602)
  • Optymalizacja wydajności dodatków (602)
    • Maksymalizacja szybkości kodu dodatków (602)
    • Kontrolowanie rozmiaru pliku dodatku (603)
  • Problemy z dodatkami (604)
    • Zapewnienie zainstalowania dodatku (604)
    • Odwoływanie się do innych plików z poziomu dodatku (605)
    • Wykrywanie właściwej wersji Excela dla dodatku (605)
Część VI Tworzenie aplikacji (607)
Rozdział 22. Tworzenie pasków narzędzi (609)
  • Paski narzędzi (609)
  • Działania z paskami narzędzi (609)
  • Jak Excel zarządza paskami narzędzi? (610)
    • Przechowywanie pasków narzędzi (610)
    • Problemy z działaniem pasków narzędzi (611)
  • Ręczne dostosowywanie pasków narzędzi (611)
    • Tryb dostosowywania pasków narzędzi (612)
    • Dystrybucja pasków narzędzi użytkownika (615)
  • Działania z kolekcją CommandBars (617)
    • Rodzaje pasków narzędzi (617)
    • Wyświetlenie wszystkich obiektów CommandBar (617)
    • Tworzenie pasków narzędzi (618)
    • Odwoływanie się do pasków narzędzi w VBA (619)
    • Usuwanie paska narzędzi za pomocą kodu VBA (620)
    • Właściwości pasków narzędzi (620)
    • Odwoływanie się do kontrolek na pasku narzędzi (625)
    • Wyszczególnienie kontrolek na pasku narzędzi (626)
    • Wyświetlanie wszystkich kontrolek na wszystkich paskach narzędzi (627)
    • Dodawanie kontrolki na pasku narzędzi (628)
    • Usuwanie kontrolki z paska narzędzi (628)
    • Właściwości kontrolek pasków narzędzi (629)
Rozdział 23. Tworzenie menu (639)
  • Pasek menu w Excelu (639)
  • Modyfikowanie menu Excela przez użytkownika (640)
    • Pojęcia związane z systemem menu Excela (640)
    • Usuwanie elementów menu Excela (641)
    • Dodawanie elementów menu Excela (641)
    • Modyfikacja elementów menu Excela (642)
  • Wykorzystanie języka VBA do dostosowywania menu w Excelu (642)
    • Wyświetlanie informacji o menu Excela (643)
    • Dodawanie nowego menu na pasku menu (644)
    • Usuwanie menu z paska menu (646)
    • Dodawanie pozycji menu (647)
    • Wyświetlanie klawisza skrótu wraz z nazwą polecenia (650)
    • Odtwarzanie menu, które zostało usunięte (651)
  • Wykorzystanie zdarzeń do programowania menu (652)
    • Automatyczne dodawanie i usuwanie menu (652)
    • Dezaktywacja lub ukrywanie menu (653)
    • Działania z poleceniami menu powiązanymi z polami wyboru (654)
  • Tworzenie menu użytkownika - łatwy sposób (657)
  • Utworzenie zastępczego paska menu arkusza kalkulacyjnego (659)
  • Operacje z menu podręcznymi (660)
    • Dodawanie pozycji do menu podręcznych (662)
    • Usuwanie pozycji z menu podręcznych (663)
    • Dezaktywacja pozycji menu podręcznych (663)
    • Dezaktywacja menu podręcznych (663)
    • Przywracanie ustawień menu podręcznych (664)
    • Tworzenie nowych menu podręcznych (664)
Rozdział 24. Tworzenie systemów pomocy w aplikacjach (667)
  • Dlaczego należy tworzyć systemy pomocy w aplikacjach? (667)
  • Systemy pomocy wykorzystujące komponenty Excela (668)
    • Wykorzystanie komentarzy w celu tworzenia systemów pomocy (668)
    • Wykorzystanie pól tekstowych w celu utworzenia systemu pomocy (670)
    • Wykorzystanie arkusza do wyświetlania tekstu pomocy (670)
    • Wyświetlanie pomocy w oknie UserForm (671)
    • Wykorzystanie asystenta pakietu Office do wyświetlania pomocy (674)
  • Symulacja właściwości Co to jest? za pomocą formularza UserForm (676)
  • Wykorzystanie systemu HTML Help (677)
  • Powiązanie pliku pomocy z aplikacją (678)
  • Wiązanie tematów pomocy z funkcjami VBA (679)
  • Inne sposoby wyświetlania plików pomocy HTML Help (680)
    • Wykorzystanie metody Help (680)
    • Wyświetlanie pomocy z okna informacyjnego (680)
    • Wyświetlanie pomocy z okna InputBox (681)
Rozdział 25. Tworzenie aplikacji wygodnych dla użytkownika (683)
  • Co to jest aplikacja user-oriented? (683)
  • Przykładowa aplikacja - Kreator amortyzacji pożyczek (683)
    • Obsługa Kreatora amortyzacji pożyczek (683)
    • Struktura skoroszytu Kreatora amortyzacji pożyczek (685)
    • Jak działa Kreator amortyzacji pożyczek? (686)
    • Potencjalne usprawnienia Kreatora amortyzacji pożyczek (690)
  • Wskazówki dotyczące projektowania aplikacji (690)
Część VII Inne zagadnienia (693)
Rozdział 26. Problemy zgodności (695)
  • Co to jest zgodność? (695)
  • Rodzaje problemów zgodności (696)
  • Obsługiwane formaty plików Excela (697)
  • Kiedy trzeba unikać nowych właściwości? (698)
  • Czy aplikacja będzie działać na komputerach Macintosh? (698)
  • Tworzenie aplikacji dla wielu wersji narodowych (699)
    • Aplikacje obsługujące wiele języków (701)
    • Obsługa języka w kodzie VBA (702)
    • Wykorzystanie właściwości lokalnych (702)
    • Identyfikacja ustawień systemu (703)
    • Ustawienia daty i godziny (705)
Rozdział 27. Operacje na plikach wykonywane za pomocą kodu VBA (707)
  • Wykonywanie popularnych operacji na plikach (707)
    • Wykorzystanie poleceń języka VBA do wykonywania operacji na plikach (707)
    • Wykorzystanie obiektu FileSearch (710)
    • Wykorzystanie obiektu FileSystemObject (711)
    • Wyszukiwanie plików zawierających określony tekst (713)
  • Operacje z plikami tekstowymi (714)
    • Otwieranie plików tekstowych (714)
    • Czytanie plików tekstowych (715)
    • Zapisywanie danych do plików tekstowych (716)
    • Uzyskanie numeru pliku (716)
    • Określanie lub ustawianie pozycji w pliku (716)
    • Instrukcje pozwalające na odczytywanie i zapisywanie plików (716)
  • Przykłady wykonywania operacji na plikach (717)
    • Importowanie danych z pliku tekstowego (717)
    • Eksportowanie zakresu do pliku tekstowego (718)
    • Importowanie pliku tekstowego do zakresu (719)
    • Rejestrowanie wykorzystania Excela (720)
    • Filtrowanie pliku tekstowego (721)
    • Importowanie więcej niż 256 kolumn danych do skoroszytu (721)
    • Eksportowanie zakresu do pliku HTML (723)
    • Eksportowanie zakresu do pliku XLM (726)
Rozdział 28. Operacje na komponentach języka VBA (729)
  • Podstawowe informacje o środowisku IDE (729)
  • Model obiektów środowiska IDE (730)
    • Kolekcja VBProjects (731)
  • Wyświetlanie wszystkich komponentów projektu VBA (733)
  • Zastępowanie modułu uaktualnioną wersją (734)
  • Wykorzystanie języka VBA do generowania kodu VBA (736)
  • Wykorzystywanie kodu VBA do umieszczenia kontrolek w formularzu UserForm w fazie projektowania (738)
    • Operacje z formularzami UserForm w fazie projektowania i wykonania (738)
    • Dodanie 100 przycisków CommandButton w fazie projektowania (739)
  • Programowe tworzenie formularzy UserForm (741)
    • Prosty przykład formularza UserForm (741)
    • Skomplikowany przykład dynamicznego formularza UserForm (743)
Rozdział 29. Moduły klas (749)
  • Czym jest moduł klasy? (749)
  • Przykład: utworzenie klasy NumLock (750)
    • Wstawianie modułu klasy (750)
    • Dodawanie kodu VBA do modułu klasy (751)
    • Wykorzystanie klasy NumLock (753)
  • Dodatkowe informacje na temat modułów klas (754)
    • Nadawanie nazwy klasie obiektów (754)
    • Programowanie właściwości obiektów (754)
    • Programowanie metod obiektów (756)
    • Zdarzenia definiowane w module klasy (757)
  • Przykład: klasa CSVFileClass (757)
    • Zmienne poziomu modułu dla klasy CSVFileClass (757)
    • Definicje właściwości klasy CSVFileClass (758)
    • Definicje metod klasy CSVFileClass (758)
    • Wykorzystanie obiektów CSVFileClass (760)
Rozdział 30. Często zadawane pytania na temat programowania w Excelu (763)
  • Pytania dotyczące Excela (764)
  • Pytania dotyczące edytora Visual Basic (768)
  • Pytania dotyczące procedur (771)
  • Pytania dotyczące funkcji (776)
  • Pytania dotyczące obiektów, właściwości, metod i zdarzeń (779)
  • Pytania dotyczące formularzy UserForm (788)
  • Pytania dotyczące dodatków (793)
  • Pytania dotyczące pasków poleceń (795)
Dodatki (799)
Dodatek A Zasoby online dotyczące Excela (801)
  • Pomoc techniczna Microsoftu (801)
    • Opcje pomocy technicznej (801)
    • Baza wiedzy firmy Microsoft (802)
    • Macierzysta strona programu Microsoft Excel (802)
    • Narzędzia pakietu Microsoft Office w internecie (802)
  • Internetowe grupy dyskusyjne (802)
    • Grupy dyskusyjne poświęcone arkuszom kalkulacyjnym (803)
    • Grupy dyskusyjne Microsoftu (803)
    • Wyszukiwanie informacji w grupach dyskusyjnych (804)
  • Witryny WWW (805)
    • Strona Spreadsheet (805)
    • Pearson Software Consulting (805)
    • Strona o Excelu Stephena Bullena (805)
    • Strony o Excelu Davida McRitchie (806)
    • Strona o Excelu Jona Peltiera (806)
    • Mr. Excel (806)
    • Najczęściej zadawane pytania (806)
Dodatek B Instrukcje i funkcje VBA (807)
  • Wywoływanie funkcji Excela w instrukcjach VBA (810)
Dodatek C Kody błędów VBA (817)
Dodatek D Zawartość płyty CD-ROM (821)
  • Wymagania systemowe (821)
  • Korzystanie z płyty CD-ROM w systemie Windows (821)
  • Co znajduje się na płycie CD-ROM (822)
    • Materiały utworzone przez autora tej książki (822)
    • Aplikacje (834)
  • Rozwiązywanie problemów (835)
Skorowidz (837)