Kurs „Makra dla początkujących”
Transkrypt
Kurs „Makra dla początkujących”
– Wiadomości wstępne VBI/01 Piotr Dynia, specjalista ds. MS Office Z astanawiałeś się może, dlaczego Twój współpracownik, siedzący przy biurku obok skończył raport w ciągu 10 minut, a Tobie zajął on ponad godzinę? Odpowiedź jest oczywista: napisał własne makro, które wykonało za niego całą pracę lub znaczną jej część. Zadasz sobie zapewne pytanie: co to są makra? Makra to kod napisany w języku Visual Basic wykonujący polecenia aplikacji, do której jest dołączony. Część z tych poleceń jest niedoCzas, który poświęcisz stępnych z poziomu okna aplikacji Excel czy Word. na naukę tego Makra pozwalają na automatyzację pracy z dozagadnienia, kumentami Office i nie tylko. Mogą wykonywać to 15–20 minut. tysiące poleceń za jednym razem i dlatego są one niejako rozszerzeniem możliwości pracy z aplikacją, do której został dołączony Edytor Visual Basic for Application (w skrócie VBA). Jak w przypadku każdego kursu, w pierwszej kolejności powinieneś poznać niezbędne podstawy, które pozwolą Ci później swobodnie budować własne narzędzia w języku Visual Basic. Jak zbudowany jest Edytor Visual Basic? Jak przygotować własną procedurę? Jak za pomocą makra wyświetlić informację w oknie? W jaki sposób uruchamiać przygotowane makra? VBI/02 VBI/04 VBI/06 VBI/08 „Makra dla początkujących” – Wiadomości wstępne Kurs „Makra dla początkujących” „Makra dla początkujących” – Wiadomości wstępne 96 Wiadomości wstępne Styczeń 2011 Rys. 1. Okno Edytora Visual Basic po otwarciu w Excelu Wiedza i Praktyka 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 przypadku Excela 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ę ThisWorkbook. Aby rozpocząć pracę z makrami, należy uruchomić Edytor Visual Basic. W programach pakietu Office zrobisz to, wybierając z menu Narzędzia polecenie Makro/Edytor Visual Basic (w Excelu 2007: Deweloper/Visual Basic) lub naciskając jednocześnie na klawiaturze lewy Alt i F11. JAK ZBUDOWANY JEST EDYTOR VISUAL BASIC? EDYTOR VISUAL BASIC VBI/02 Wiedza i Praktyka Excel w praktyce © 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. W innych programach posiadających Edytor Visual Basic jest jeszcze inaczej. O poszczególnych modułach w projektach dowiesz się więcej w kolejnych lekcjach. Rys. 2. Okno Edytora Visual Basic po otwarciu w Wordzie 97 VBI/03 W przypadku programu Word (rys. 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. Jeśli w swoim Edytorze nie widzisz przeglądarki projektu i okna właściwości (jak na rysunku 1), wciśnij najpierw kombinację klawiszy Ctrl + R, a następnie F4. Wiadomości wstępne „Makra dla początkujących” – Wiadomości wstępne „Makra dla początkujących” – Wiadomości wstępne 98 Wiadomości wstępne Styczeń 2011 Rys. 3. Wstawianie modułu standardowego Wiedza i Praktyka 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 (rys. 4). Białe okno na środku to okno kodu, do którego należy wpisywać polecenia języka Visual Basic. 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 3. JAK PRZYGOTOWAĆ WŁASNĄ PROCEDURĘ? PROCEDURA W starszych programach, np. wchodzących w skład pakietu Office 97, polecenia menu są przetłumaczone na język polski. Okno po lewej stronie poniżej przeglądarki projektu to okno właściwości. Więcej na temat właściwości dowiesz się w kolejnych lekcjach. W tej pokażemy, jak stworzyć swoje pierwsze makro. VBI/04 Wiedza i Praktyka Excel w praktyce © 3. Wpisz nazwę procedury, np. MojeMakro, i naciśnij klawisz Enter. W oknie kodu pojawi się zapis jak na rysunku 5. 2. Naciśnij spację. 1. Wpisz słowo kluczowe Sub. Aby stworzyć procedurę: Jeśli chcesz, aby nazwa zawierała kilka wyrazów, to stosuj znak podkreślenia, np. Moje_makro, lub każdy wyraz zaczynaj od wielkiej litery, np. MojeMakro. Rys. 4. Okno Edytora Visual Basic po wstawieniu modułu standardowego Nie może ona 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. 99 VBI/05 Makra zawarte są najczęściej wewnątrz procedury, która stanowi blok instrukcji języka Visual Basic. Każda procedura posiada nazwę. Wiadomości wstępne „Makra dla początkujących” – Wiadomości wstępne „Makra dla początkujących” – Wiadomości wstępne 100 Wiadomości wstępne Styczeń 2011 Wiedza i Praktyka W tym celu: 1. Kliknij w miejscu pustej linii pomiędzy linią oznaczającą początek procedury a linią oznaczającą koniec procedury. 2. Naciśnij klawisz Tab, aby kod procedury był bardziej czytelny. Nadszedł czas, abyś przygotował swoje pierwsze makro. Będzie to procedura wyświetlająca w oknie dialogowym dowolny tekst. WYŚWIETLANIE INFORMACJI W OKNIE – TWOJE PIERWSZE MAKRO! INSTRUKCJA MSGBOX 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. Zauważ, ż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. Edytor od razu skoryguje Twój zapis, tj.: doda 2 nawiasy na końcu pierwszej linii kodu, a także pod pustym wierszem wpisze: End Sub. Rys. 5. Stworzenie procedury o nazwie MojeMakro VBI/06 Wiedza i Praktyka Excel w praktyce © 101 VBI/07 3. Wpisz słowo MsgBox, a po nim spację. 4. Wpisz znak cudzysłowu. 5. Wpisz tekst, który chcesz wyświetlić na ekranie, np. Oto moje pierwsze makro. 6. Wpisz powtórnie znak cudzysłowu. 7. Naciśnij klawisz Enter. Rys. 6. Zmiana liczby spacji odpowiadającej znakowi tabulacji Przy wprowadzaniu kodu najlepiej jest używać znaku tabulacji do wydzielania poszczególnych bloków instrukcji. We wszystkich lekcjach będziemy również używali tej konwencji. Możesz określić, ile spacji będzie zawierał znak tabulacji. Aby to zrobić, użyj polecenia menu Tools/Options i w zakładce Editor wpisz liczbę spacji w polu Tab Width. We wszystkich lekcjach będziemy używali szerokości znaku Tab odpowiadającej dwóm spacjom, dlatego najlepiej zmień tę opcję zgodnie z rysunkiem 6. Wiadomości wstępne „Makra dla początkujących” – Wiadomości wstępne „Makra dla początkujących” – Wiadomości wstępne 102 Wiadomości wstępne Każda instrukcja kończy się znakiem końca linii. Styczeń 2011 Rys. 8. Uruchamianie procedury z poziomu Edytora Visual Basic Wiedza i Praktyka W tym celu: 1. Kliknij w środku procedury, którą napisałeś. 2. Z menu Run wybierz polecenie Run Sub/User Form lub wybierz to polecenie z paska narzędzi Standard tak, jak pokazano na rysunku 8. Możesz również użyć klawisza F5, aby uruchomić procedurę. Napisałeś właśnie swoje pierwsze makro. Na pewno chciałbyś je uruchomić. W tej części powiemy Ci o dwóch sposobach uruchamiania procedury. Pierwszy to uruchamianie z poziomu Edytora Visual Basic. CO ZROBIĆ, ABY WŁĄCZYĆ MAKRO? 2 SPOSOBY URUCHAMIANIA MAKRA Rys. 7. Twoje pierwsze makro VBI/08 Wiedza i Praktyka Rys. 10. Okno uruchamiania makr w programie Excel Excel w praktyce © Aby to zrobić z poziomu Excela: 1. Wybierz polecenie menu Narzędzia/Makro/Makra (w Excelu 2007: Deweloper/Makra). 2. Otworzy się okno dialogowe Makro. Na liście makr po lewej stronie zaznacz to, które chcesz uruchomić. 3. Kliknij przycisk Uruchom. Gotowe. Czasami będziesz potrzebował uruchomić makro, nie otwierając Edytora Visual Basic. 3. Kliknij OK, aby zamknąć okno. Rys. 9. Okno z informacją wyświetlone za pomocą instrukcji MsgBox 103 VBI/09 Po uruchomieniu tej procedury ukaże się informacja z tekstem wpisanym po instrukcji MsgBox pomiędzy znakami cudzysłowu. Zostanie wyświetlona w postaci okna widocznego na rysunku 9. Wiadomości wstępne „Makra dla początkujących” – Wiadomości wstępne „Makra dla początkujących” – Wiadomości wstępne VBI/10 Wiadomości wstępne ZAPAMIĘ TA J ZAPAMIĘTAJ 1. Makra zwiększają możliwości programów pakietu Office. 2. Każda procedura zaczyna się słowem kluczowym Sub i nazwą procedury, a kończy się instrukcją End Sub. 3. Każda instrukcja kończy się znakiem końca linii. 4. Instrukcja MsgBox pozwala na wyświetlanie informacji w postaci okna. Po instrukcji należy podać tekst takiej informacji zawarty w cudzysłowie. SPRAWDŹ SIĘ SPRAWDŹ SIĘ 1. W nowym dokumencie programu Word dodaj moduł standardowy. 2. Napisz w nim procedurę o nazwie MojaPrezentacja. 3. Do procedury dodaj instrukcję wyświetlającą informację na temat Twojego imienia i nazwiska. 4. Uruchom makro MojaPrezentacja. 104 Styczeń 2011 Wiedza i Praktyka