Excel
Programowanie w VBA dla
bystrzaków
- Programuj w VBA i
rozszerzaj możliwości Excela 2013, 2016 i 2019
- Twórz własne
aplikacje i dodatki do programu Excel
- Pracuj efektywniej dzięki
językowi VBA
W
środku znajdziesz wszystko, czego potrzebujesz, aby szybko rozpocząć
programowanie w języku VBA. Niezależnie od tego, czy chcesz być
bardziej produktywny, zautomatyzować nużące zadania, czy stworzyć
własną, zabójczą aplikację, książka Excel. Programowanie w
VBA dla bystrzaków. Wydanie V zapewni Ci podstawową wiedzę
na temat elementów i koncepcji programowania w Excelu.
Skorzystaj z przyjaznych porad na temat najprostszych
sposobów tworzenia niestandardowych okien dialogowych,
pasków narzędzi i menu i twórz aplikacje Excel
dostosowane do Twoich unikalnych potrzeb!
W książce:
- Automatyzacja nużących
zadań z rutynowym przetwarzaniem danych
- Tworzenie makr,
które przetwarzają i formatują dane
- Tworzenie dynamicznie
generowanych tabel przestawnych i wykresów
- Niestandardowe funkcje
arkuszowe
- Tworzenie własnych
aplikacji w Excelu
O
autorze 15
Wstęp 17
CZĘŚĆ I:
WSTĘP DO PROGRAMOWANIA W
VBA
23
Rozdział 1:
Czym
jest VBA? 25
No dobrze, czym jest więc VBA? 25
Co można zrobić za pomocą VBA? 26
Wprowadzanie bloków tekstu 27
Automatyzacja często wykonywanego zadania 27
Automatyzacja powtarzalnych operacji 27
Tworzenie własnego polecenia 28
Tworzenie własnego przycisku 28
Tworzenie własnych funkcji arkusza kalkulacyjnego 28
Tworzenie własnych dodatków do Excela 28
Zalety i wady języka VBA 28
Zalety języka VBA 28
Wady języka VBA 29
VBA w pigułce 30
Kompatybilność wersji Excela 32
Rozdział 2:
Szybkie
zanurzenie 33
Przygotowanie do pracy 33
Plan działania 34
Stawiamy pierwsze kroki 34
Rejestrowanie makra 35
Testowanie makra 36
Podgląd kodu makra 37
Modyfikowanie makra 39
Zapisywanie skoroszytów zawierających makra 40
Bezpieczeństwo makr 40
Więcej o makrze NameAndTime 42
CZĘŚĆ II:
JAK
VBA WSPÓŁPRACUJE Z EXCELEM?
45
Rozdział 3:
Praca
w edytorze VBE 47
Czym jest Visual Basic Editor? 47
Uruchamianie edytora VBE 48
Zapoznanie z komponentami edytora VBE 48
Praca z oknem Project 50
Dodawanie nowego modułu VBA 51
Usuwanie modułu VBA 52
Eksportowanie i importowanie obiektów 52
Praca z oknem Code 53
Minimalizowanie i maksymalizowanie okien 53
Tworzenie modułu 54
Wprowadzanie kodu VBA do modułu 55
Bezpośrednie wprowadzanie kodu 55
Używanie rejestratora makr 58
Kopiowanie kodu VBA 60
Dostosowywanie środowiska VBA 61
Karta Editor 61
Karta Editor Format 64
Karta General 65
Karta Docking 65
Rozdział 4:
Wprowadzenie
do modelu obiektowego w Excelu
67
Czy Excel to obiekt? 68
Wspinaczka po hierarchii obiektów 68
Zapoznanie z kolekcjami 69
Odwoływanie się do obiektów 70
Nawigacja po hierarchii obiektów 71
Upraszczanie odwołań do obiektów 71
Właściwości i metody obiektów 72
Właściwości obiektów 73
Metody obiektów 75
Zdarzenia obiektów 77
Poszukiwanie dodatkowych informacji 77
System pomocy VBA 77
Narzędzie Object Browser 78
Automatyczna lista właściwości i metod 79
Rozdział 5:
Procedury
Sub i Function w języku VBA 81
Procedury Sub a funkcje 81
Rzut oka na procedury Sub 82
Rzut oka na procedury Function 82
Nazwy procedur Sub i Function 83
Uruchamianie procedur Sub 84
Bezpośrednie uruchamianie procedur Sub 86
Uruchamianie procedur z poziomu okna dialogowego Makro 86
Uruchamianie makr za pomocą skrótów klawiszowych
87
Uruchamianie procedur przy użyciu przycisków i
kształtów 88
Uruchamianie procedur z poziomu innych procedur 90
Uruchamianie procedur Function 90
Wywoływanie funkcji z poziomu procedur Sub 91
Wywoływanie funkcji z poziomu formuł arkusza 91
Rozdział 6:
Używanie
rejestratora makr 95
Podstawy rejestrowania makr 96
Przygotowania do rejestrowania makr 97
Względne czy bezwzględne? 98
Rejestrowanie makr w trybie odwołań bezwzględnych 98
Rejestrowanie makr w trybie odwołań względnych 99
Co jest rejestrowane? 100
Opcje rejestratora makr 102
Nazwa makra 102
Klawisz skrótu 102
Opcja "Przechowuj makro w" 103
Opis 103
Czy to coś jest wydajne? 103
CZĘŚĆ III:
PODSTAWY PROGRAMOWANIA
107
Rozdział 7:
Kluczowe
elementy języka VBA 109
Stosowanie komentarzy w kodzie VBA 109
Używanie zmiennych, stałych i typów danych 111
Pojęcie zmiennej 111
Czym są typy danych w języku VBA? 113
Deklarowanie zmiennych i określanie ich zasięgu 114
Stałe 120
Stałe predefiniowane 121
Łańcuchy znaków 122
Daty i godziny 122
Instrukcje przypisania 123
Przykłady instrukcji przypisania 124
O znaku równości 124
Proste operatory 124
Praca z tablicami 126
Deklarowanie tablic 126
Tablice wielowymiarowe 127
Tablice dynamiczne 128
Stosowanie etykiet 129
Rozdział 8:
Praca z obiektami Range 131
Szybka powtórka 131
Inne sposoby odwoływania się do zakresu 133
Właściwość Cells 133
Właściwość Offset 134
Wybrane właściwości obiektu Range 135
Właściwość Value 136
Właściwość Text 137
Właściwość Count 137
Właściwości Column i Row 137
Właściwość Address 138
Właściwość HasFormula 138
Właściwość Font 139
Właściwość Interior 141
Właściwość Formula 141
Właściwość NumberFormat 142
Wybrane metody obiektu Range 142
Metoda Select 143
Metody Copy i Paste 143
Metoda Clear 144
Metoda Delete 144
Rozdział 9:
Praca
z funkcjami VBA i arkusza kalkulacyjnego
145
Co to jest funkcja? 145
Stosowanie wbudowanych funkcji VBA 146
Przykłady funkcji języka VBA 146
Funkcje języka VBA, które robią coś więcej niż tylko
zwracanie wartości 149
Odkrywanie funkcji języka VBA 149
Używanie funkcji arkuszowych z poziomu kodu VBA 152
Przykłady zastosowania funkcji arkuszowych 153
Wprowadzanie funkcji arkuszowych 155
Więcej o użyciu funkcji arkuszowych 156
Używanie własnych funkcji 156
Rozdział 10:
Kontrolowanie przepływu
sterowania i podejmowanie decyzji 159
Zabierz się za przepływ, kolego 160
Instrukcja GoTo 160
Decyzje, decyzje 162
Struktura If-Then 162
Struktura Select Case 166
Entliczek, pętliczek - czyli jak używać pętli? 169
Pętla For-Next 169
Pętla Do-While 174
Pętla Do-Until 174
Użycie pętli For Each-Next z kolekcjami 175
Rozdział 11:
Automatyczne procedury i
zdarzenia 177
Przygotowanie do wielkiego zdarzenia 177
Czy zdarzenia są przydatne? 179
Programowanie procedur obsługi zdarzeń 180
Gdzie jest umieszczony kod VBA? 180
Tworzenie procedury obsługi zdarzenia 181
Przykłady wprowadzające 183
Zdarzenie Open dla skoroszytu 183
Zdarzenie BeforeClose dla skoroszytu 185
Zdarzenie BeforeSave dla skoroszytu 186
Przykłady zdarzeń aktywacyjnych 187
Zdarzenia aktywacji i dezaktywacji arkusza 187
Zdarzenia aktywacji i dezaktywacji skoroszytu 188
Zdarzenia aktywacji skoroszytu 189
Inne zdarzenia dotyczące arkusza 189
Zdarzenie BeforeDoubleClick 190
Zdarzenie BeforeRightClick 190
Zdarzenie Change 191
Zdarzenia niezwiązane z obiektami 193
Zdarzenie OnTime 193
Zdarzenia naciśnięcia klawisza 195
Rozdział 12:
Techniki obsługi
błędów 197
Rodzaje błędów 197
Błędny przykład 198
To makro nie jest idealne 199
Makro wciąż nie jest idealne 200
Czy teraz makro jest idealne? 200
Rezygnacja z ideału 201
Inny sposób obsługi błędów 202
Korekta procedury EnterSquareRoot 202
O instrukcji On Error 203
Obsługa błędów - szczegółowe informacje 203
Wznawianie wykonywania kodu po wystąpieniu błędu 204
Obsługa błędów w pigułce 205
Kiedy ignorować błędy? 206
Rozpoznawanie określonych błędów 206
Zamierzony błąd 208
Rozdział 13:
Dezynsekcja kodu, czyli
jak walczyć z pluskwami 211
Rodzaje pluskiew 211
Podstawy entomologii, czyli jak zidentyfikować pluskwę 213
Metody i techniki walki z pluskwami 214
Przeglądanie kodu VBA 214
Umieszczanie funkcji MsgBox w kluczowych miejscach kodu 215
Umieszczanie polecenia Debug.Print w kluczowych miejscach kodu 216
Korzystanie z debugera VBA 217
Kilka słów o debugerze 218
Ustawianie punktów przerwań w kodzie programu 218
Zastosowanie okna Watch 221
Zastosowanie okna Locals 223
Jak zredukować liczbę błędów w kodzie programu? 223
Rozdział 14:
Przykłady i techniki
programowania w języku VBA 225
Przetwarzanie zakresów komórek 226
Kopiowanie zakresów 227
Kopiowanie zakresu o zmiennej wielkości 227
Zaznaczanie komórek do końca wiersza lub kolumny 229
Zaznaczanie całego wiersza lub całej kolumny 230
Przenoszenie zakresów 230
Wydajne przetwarzanie komórek zaznaczonego zakresu przy
użyciu pętli 231
Wydajne przetwarzanie komórek zaznaczonego zakresu przy
użyciu pętli (część II) 233
Wprowadzanie wartości do komórki 233
Określanie typu zaznaczonego zakresu 234
Identyfikowanie zaznaczeń wielokrotnych 235
Zmiana ustawień Excela 236
Zmiana ustawień logicznych (opcje typu Boolean) 236
Zmiana innych opcji (typu non-Boolean) 237
Praca z wykresami 237
Metoda AddChart kontra metoda AddChart2 238
Modyfikowanie typu wykresu 240
Przechodzenie w pętli przez elementy kolekcji ChartObjects 240
Modyfikowanie właściwości wykresu 241
Zmiana formatowania wykresów 241
Jak przyspieszyć działanie kodu VBA? 243
Wyłączanie aktualizacji ekranu 243
Wyłączenie automatycznego przeliczania skoroszytu 244
Wyłączanie irytujących ostrzeżeń 244
Upraszczanie odwołań do obiektów 245
Deklarowanie typów zmiennych 246
Zastosowanie struktury With-End With 246
CZĘŚĆ IV:
KOMUNIKACJA Z UŻYTKOWNIKIEM
249
Rozdział 15:
Proste okna dialogowe 251
Co zamiast formularzy UserForm? 251
Funkcja MsgBox 252
Wyświetlanie prostych okien dialogowych 253
Pobieranie odpowiedzi z okna dialogowego 254
Dostosowywanie wyglądu okien dialogowych do własnych potrzeb 256
Funkcja InputBox 258
Składnia funkcji InputBox 258
Przykład zastosowania funkcji InputBox 259
Inny rodzaj okna dialogowego InputBox 260
Metoda GetOpenFilename 262
Składnia metody GetOpenFilename 262
Przykład zastosowania metody GetOpenFilename 262
Metoda GetSaveAsFilename 265
Pobieranie nazwy folderu 265
Wyświetlanie wbudowanych okien dialogowych programu Excel 266
Rozdział 16:
Wprowadzenie do formularzy
UserForm 269
Kiedy używać formularzy UserForm? 270
Tworzenie formularzy UserForm - wprowadzenie 271
Praca z formularzami UserForm 272
Wstawianie nowego formularza UserForm 272
Umieszczanie formantów na formularzu UserForm 272
Modyfikacja właściwości formantów formularza UserForm 274
Przeglądanie okna Code formularza UserForm 276
Wyświetlanie formularzy UserForm 276
Pobieranie i wykorzystywanie informacji z formularzy UserForm 277
Przykład tworzenia formularza UserForm 277
Tworzenie formularza UserForm 278
Dodawanie przycisków poleceń (formanty CommandButton) 279
Dodawanie przycisków opcji (formanty OptionButton) 279
Dodawanie procedur obsługi zdarzeń 282
Tworzenie makra, które wyświetla formularz na ekranie 283
Udostępnianie makra użytkownikowi 284
Testowanie działania makra 285
Rozdział 17:
Praca z formantami formularza UserForm 289
Rozpoczynamy pracę z formantami formularzy UserForm 290
Dodawanie formantów 290
Wprowadzenie do właściwości formantów 291
Formanty okien dialogowych - szczegóły 294
Formant CheckBox (pole wyboru) 294
Formant ComboBox (pole kombi) 295
Formant CommandButton (przycisk polecenia) 296
Formant Frame (pole grupy) 296
Formant Image (pole obrazu) 297
Formant Label (pole etykiety) 298
Formant ListBox (pole listy) 298
Formant MultiPage 300
Formant OptionButton (przycisk opcji) 300
Formant RefEdit (pole zakresu) 301
Formant ScrollBar (pasek przewijania) 302
Formant SpinButton (pokrętło) 303
Formant TabStrip (pole karty) 303
Formant TextBox (pole tekstowe) 304
Formant ToggleButton (przycisk przełącznika) 305
Praca z formantami w oknach dialogowych 305
Zmiana rozmiarów i przenoszenie formantów w inne
miejsce 305
Rozmieszczanie i wyrównywanie położenia formantów
w oknie dialogowym 306
Obsługa użytkowników preferujących korzystanie z klawiatury
307
Testowanie formularzy UserForm 309
Estetyka okien dialogowych 309
Rozdział 18:
Techniki pracy z
formularzami UserForm 311
Używanie własnych okien dialogowych 312
Przykładowy formularz UserForm 312
Tworzenie okna dialogowego 312
Tworzenie kodu procedury wyświetlającej okno dialogowe 315
Udostępnianie makra użytkownikowi 315
Testowanie okna dialogowego 316
Dodawanie procedur obsługi zdarzeń 316
Sprawdzanie poprawności danych 318
Teraz okno dialogowe działa tak, jak powinno! 319
Zastosowanie formantów ListBox 319
Wypełnianie listy 320
Identyfikowanie wybranego elementu listy 321
Identyfikowanie wielu zaznaczonych elementów listy 322
Zaznaczanie zakresów 324
Praca z wieloma grupami formantów OptionButton 326
Zastosowanie formantów SpinButton oraz TextBox 327
Wykorzystywanie formularza UserForm jako wskaźnika postępu zadania 329
Tworzenie okna dialogowego dla wskaźnika postępu 329
Procedury 330
Jak to działa? 331
Tworzenie niemodalnych okien dialogowych z wieloma kartami 332
Wyświetlanie wykresów na formularzach UserForm 334
Lista kontrolna tworzenia i testowania okien dialogowych 335
Rozdział 19:
Dostęp do makr z poziomu
interfejsu użytkownika 339
Dostosowywanie Wstążki 340
Ręczne dopasowywanie Wstążki do własnych potrzeb 340
Dodawanie do Wstążki przycisku własnego makra 342
Dostosowywanie Wstążki za pomocą kodu XML 343
Dostosowywanie menu podręcznego 348
Dodawanie nowego elementu do menu podręcznego Cell 349
Czym bieżąca wersja różni się od Excela 2007? 351
CZĘŚĆ V:
OD TEORII DO PRAKTYKI 353
Rozdział 20:
Jak tworzyć własne funkcje
arkuszowe i jak przeżyć, aby o tym opowiedzieć?
355
Dlaczego tworzymy własne funkcje? 356
Podstawowe informacje o funkcjach VBA 357
Tworzenie funkcji 358
Praca z argumentami funkcji 358
Funkcje bezargumentowe 359
Funkcje jednoargumentowe 359
Funkcje z dwoma argumentami 361
Funkcje pobierające zakres jako argument 362
Funkcje z argumentami opcjonalnymi 364
Funkcje opakowujące 366
Funkcja NumberFormat 367
Funkcja ExtractElement 367
Funkcja SayIt 368
Funkcja IsLike 369
Funkcje zwracające tablice 369
Zwracanie tablicy zawierającej nazwy miesięcy 369
Zwracanie posortowanej listy 370
Okno dialogowe Wstawianie funkcji 371
Wyświetlanie opisów funkcji 372
Dodawanie opisów argumentów 373
Rozdział 21:
Tworzenie dodatków
375
No dobrze... czym zatem są dodatki? 375
Po co tworzy się dodatki? 376
Praca z dodatkami 377
Podstawy tworzenia dodatków 378
Tworzymy przykładowy dodatek 380
Konfiguracja skoroszytu 380
Testowanie skoroszytu 382
Tworzenie opisów dodatku 383
Ochrona kodu VBA 383
Tworzenie dodatku 384
Otwieranie dodatku 384
Dystrybucja dodatków 385
Modyfikowanie dodatków 386
CZĘŚĆ VI:
DEKALOGI
387
Rozdział 22:
Dziesięć przydatnych wskazówek ułatwiających pracę z
edytorem VBE 389
Używanie komentarzy blokowych 390
Kopiowanie wielu wierszy kodu jednocześnie 391
Przechodzenie między modułami i procedurami 391
Przechodzenie do kodu wybranej funkcji 391
Jak pozostać w kodzie właściwej procedury 392
Krokowe wykonywanie programu 393
Przechodzenie do wybranego wiersza w kodzie 394
Zatrzymywanie działania programu w określonym miejscu 394
Przeglądanie początku i końca wartości długich zmiennych łańcuchowych
395
Wyłączanie automatycznego sprawdzania składni 396
Rozdział 23:
Źródła pomocy
dla języka VBA 399
Pozwól Excelowi napisać kod dla Ciebie 399
Korzystanie z kodu pobranego z internetu 401
Korzystanie z forów użytkowników 401
Blogi ekspertów 402
Materiały szkoleniowe w serwisie YouTube 403
Uczestnictwo w szkoleniach na żywo i online 403
Microsoft Office Dev Center 404
Analiza innych plików Excela 404
Zapytaj lokalnego guru Excela 404
Rozdział 24:
Dziesięć rzeczy,
które powinieneś robić i których nie powinieneś
robić w języku VBA 405
Zawsze deklaruj wszystkie zmienne 406
Nigdy nie powinieneś mylić hasła chroniącego kod VBA z bezpieczeństwem
aplikacji 406
Zawsze staraj się wyczyścić i zoptymalizować kod aplikacji 407
Nigdy nie umieszczaj wszystkiego w jednej procedurze 408
Zawsze powinieneś rozważyć zastosowanie innego oprogramowania 408
Nigdy nie zakładaj, że każdy użytkownik zezwala na uruchamianie makr 408
Zawsze staraj się eksperymentować z nowymi rozwiązaniami 409
Nigdy z góry nie zakładaj, że Twój kod będzie
poprawnie działał z innymi wersjami Excela 409
Zawsze pamiętaj o użytkownikach Twojej aplikacji 410
Nigdy nie zapominaj o tworzeniu kopii zapasowych 410
416
stron, oprawa miękka