Redakcja

Autorzy:

Piotr Dynia, Jakub Kudliński

Kierownik grupy wydawniczej:

Ewa Ziętek-Maciejczyk

Wydawca:

Monika Kijok

Redaktor prowadzący:

Rafał Janus

Korekta:

Zespół

Skład i łamanie:

Norbert Bogajczyk

Projekt okładki:

Piotr Fedorczyk

Druk: Miller

ISBN: 978-83-269-3772-9

Copyright by Wydawnictwo Wiedza i Praktyka sp. z o.o.

Warszawa 2015

Wydawnictwo Wiedza i Praktyka sp. z o.o.

03-918 Warszawa, ul. Łotewska 9a

tel. 22 518 29 29, faks 22 617 60 10

NIP: 526-19-92-256

Numer KRS: 0000098264 – Sąd Rejonowy dla m.st. Warszawy, Sąd Gospodarczy XIII Wydział Gospodarczy Rejestrowy. Wysokość kapitału zakładowego: 200.000 zł

„Automatyzacja pracy z użyciem makr” wraz z przysługującymi Czytelnikom innymi elementami dostępnymi w subskrypcji (e-letter, strona www i inne) chronione są prawem autorskim. Przedruk materiałów opublikowanych w książce „Automatyzacja pracy z użyciem makr” oraz w innych dostępnych elementach subskrypcji – bez zgody wydawcy – jest zabroniony. Zakaz nie dotyczy cytowania publikacji z powołaniem się na źródło.

Publikacja „Automatyzacja pracy z użyciem makr” została przygotowana z zachowaniem najwyższej staranności i wykorzystaniem wysokich kwalifikacji, wiedzy i doświadczenia autorów oraz konsultantów. Zaproponowane w publikacji „Automatyzacja pracy z użyciem makr” oraz w innych dostępnych elementach subskrypcji wskazówki, porady i interpretacje nie mają charakteru porady prawnej. Ich zastosowanie w konkretnym przypadku może wymagać dodatkowych, pogłębionych konsultacji. Publikowane rozwiązania nie mogą być traktowane jako oficjalne stanowisko organów i urzędów państwowych. W związku z powyższym redakcja nie może ponosić odpowiedzialności prawnej za zastosowanie zawartych w publikacji „Automatyzacja pracy z użyciem makr” lub w innych dostępnych elementach subskrypcji wskazówek, przykładów, informacji itp. do konkretnych przypadków.

Wstęp

Praca z Excelem potrafi być czasochłonna. Tymczasem nasz kolega z pracy, siedzący przy biurku obok, potrafi przygotować raport w ciągu 5 minut, podczas gdy nam to samo zadanie zajmuje ponad godzinę. Jak to możliwe? Odpowiedź jest prosta: napisał własne makro, które wykonało za niego całą pracę lub znaczną jej część.

Makra to kod napisany w języku Visual Basic for Application (VBA) wykonujący polecenia aplikacji, do której jest dołączony. Wiele z tych poleceń jest niedostępnych z poziomu okna Excela. Makra pozwalają na automatyzację pracy z dokumentami Excela i nie tylko. Mogą wykonywać tysiące poleceń za jednym razem i dlatego są niejako rozszerzeniem możliwości pracy z aplikacją, do której został dołączony edytor Visual Basic.

Jak w przypadku każdego kursu, w pierwszej kolejności należy poznać niezbędne podstawy, które pozwolą później swobodnie budować własne narzędzia w języku Visual Basic. Pierwsze rozdziały wyjaśniają więc podstawowe pojęcia, opisują najprostsze makra i podpowiadają, jak je uruchamiać. W kolejnych rozdziałach znajdziemy coraz bardziej zaawansowane zagadnienia, jak tworzenie pętli czy instrukcji warunkowych. Są w nich również bardzo złożone przykłady makr, które mogą przydać się w pracy. Zobaczymy, np. jak utworzyć formularz pomocny przy wypełnianiu zestawienia z fakturami. Zawarte w książce makra można wykorzystać w Excelu 2007, 2010 oraz 2013. Powinny również działać we wcześniejszych wersjach programu, choć mogą wymagać drobnych modyfikacji.

1. Informacje wstępne

Aby rozpocząć pracę z makrami, należy uruchomić edytor Visual Basic. We wszystkich programach pakietu Office można to zrobić, naciskając jednocześnie na klawiaturze lewy [Alt]+[F11]. Można również otworzyć kartę Deweloper i kliknąć Visual Basic. Jeśli nie widać karty Deweloper, przejdźmy do Plik/Opcje/Dostosowywanie wstążki. Na liście Karty główne zaznaczmy Deweloper.

U góry znajduje się menu poleceń i pasek narzędzi Standard. Po lewej stronie u góry znajduje się okno przeglądarki projektu (Project VBAProject). W Excelu znajduje się tam jeden projekt o nazwie dokładnie takiej samej jak nazwa skoroszytu. Znajdują się w nim moduły wszystkich arkuszy zawartych w skoroszycie i dodatkowo moduł noszący nazwę Ten_skoroszyt. W niektórych komputerach okno przeglądarki projektu może zawierać też inne moduły czy projekty, w zależności od tego, czy korzystano już z makr lub instalowano dodatki.

Jeśli w edytorze nie widać przeglądarki projektu i okna właściwości (jak na rysunku 1.1), wciśnijmy najpierw kombinację klawiszy [Ctrl]+[R], a następnie [F4].

Rysunek 1.1. Okno edytora Visual Basic po otwarciu w Excelu

W programie Word (rysunek 1.2) w oknie przeglądarki projektów znajdują się dwa projekty: jeden o nazwie Normal i drugi o nazwie dokładnie takiej samej jak otwarty dokument. Ten drugi projekt zawiera moduł ThisDocument. W innych programach mających edytor Visual Basic jest jeszcze inaczej. O poszczególnych modułach w projektach dowiemy się więcej w kolejnych rozdziałach.

Rysunek 1.2. Okno edytora Visual Basic po otwarciu w Wordzie

Okno po lewej stronie poniżej przeglądarki projektu to okno właściwości. Więcej na temat właściwości dowiemy się w kolejnych rozdziałach. W tym pokażemy, jak utworzyć pierwsze, własne makro.

1.1. Przygotowanie własnej procedury

Makra z reguły są przechowywane w modułach standardowych. Aby wstawić taki moduł do projektu, należy w edytorze Visual Basic z menu Insert wybrać polecenie Module lub skorzystać z paska narzędzi Standard, tak jak to pokazano na rysunku 1.3.

Po wybraniu tego polecenia w oknie edytora Visual Basic pojawi się białe okno, a w oknie przeglądarki projektu zaznaczony będzie moduł standardowy o nazwie Module1 (rysunek 1.4). Białe okno na środku to okno kodu, do którego należy wpisywać polecenia języka Visual Basic.

Rysunek 1.3. Wstawianie modułu standardowego

Makra zawarte są najczęściej wewnątrz procedury, która stanowi blok instrukcji języka Visual Basic. Każda procedura ma nazwę. Nazwa nie może zawierać spacji ani innych niedozwolonych znaków. Jeśli makro będzie wykorzystywane w aplikacjach obcojęzycznych, to nazwa nie powinna również zawierać polskich znaków.

Rysunek 1.4. Okno edytora Visual Basic po wstawieniu modułu standardowego

Jeśli chcemy, aby nazwa zawierała kilka wyrazów, to stosujmy znak podkreślenia, np. Moje_makro, lub każdy wyraz zaczynajmy od wielkiej litery, np. MojeMakro.

Aby stworzyć procedurę:

1. Wpiszmy słowo kluczowe Sub.

2. Naciśnijmy spację.

3. Wpiszmy nazwę procedury, np. MojeMakro, i naciśnijmy klawisz [Enter]. W oknie kodu pojawi się zapis jak na rysunku 1.5.

Rysunek 1.5. Stworzenie procedury o nazwie MojeMakro

Edytor od razu skoryguje nasz zapis: doda dwa nawiasy na końcu pierwszej linii kodu, a także w pustym wierszu wpisze: End Sub. Zauważmy, że słowa Sub i End Sub są zaznaczone na niebiesko. To są słowa kluczowe i nie wolno używać ich w innym kontekście niż tworzenie procedury. Każda procedura zaczyna się od słowa Sub i kończy instrukcją End Sub.

Pomiędzy tymi dwiema liniami znajdują się instrukcje, które będą wykonywane przez procedurę. Oczywiście w tej chwili nie ma tam żadnej, ale dalej pokażemy, jak dodać instrukcję, która spowoduje wyświetlenie informacji na ekranie w postaci okna.

1.2. Instrukcja MsgBox – wyświetlanie informacji w oknie

Nadszedł czas, aby przygotować pierwsze makro. Będzie to procedura wyświetlająca w oknie dialogowym dowolny tekst.

Więcej znajdziesz w wersji pełnej publikacji

Tematy publikacji w pełnej wersji

Wstęp

1. Informacje wstępne

2. Zmienne i operacje arytmetyczne

3. Typy zmiennych i operacje na tekstach

4. Operacje na tekście i instrukcja warunkowa If

5. Operacje na datach i wartościach czasu, rozszerzona instrukcja MsgBox

6. Obiekty, metody i właściwości

7. Obiekt Worksheet, pętla po elementach kolekcji i instrukcja Select Case

8. Obiekt Range, instrukcja With i formatowanie komórek

9. Pętle i inne sposoby odwoływania się do komórek

10. Zaawansowane możliwości obiektu Range

11. Procedury zdarzeń

12. Formularze UserForm i podstawowe kontrolki

Przygotowanie do wersji elektronicznej: RASTER studio, 603 59 59 71