Makropolecenia w Excelu
Trochę teorii
Makropolecenie w skrócie nazywane makro ma za zadanie automatyczne wykonanie powtarzających się po sobie określonych czynności. Na przykładzie arkusza kalkulacyjnego Excel możemy zaprogramować dowolną funkcje mniej lub bardziej skomplikowaną (dodawanie, mnożenie, operacje arytmetyczne, itp.), która jest rejestrowana i w tym samym momencie przetwarzana na instrukcje w języku Visual Basic dołączonym do całego pakietu Microsoft Office. Nasza przyszła praca z arkuszami kalkulacyjnymi dzięki wykorzystaniu makropoleceń będzie bardziej wygodna. Nie będziemy musieli powtarzać kilkakrotnie tych samych czasochłonnych operacji. Wystarczy, że uruchomimy wcześniej zapisane makro i dana procedura zostanie wykonana.
Visual Basic jest to zaawansowane narzędzie programistyczne. Chcąc tworzyć lub samodzielnie edytować wcześniej nagrane makro musimy poznać podstawowe zasady tego języka. Ponieważ wszystkie nasze nagrywane makra w arkuszu kalkulacyjnym będą automatycznie zapisywane w tym języku a następnie uruchomione jako skrypt mający za zadanie wykonać określoną funkcje.
Trochę praktyki
W kilku słowach postaram się opisać jak tworzone są makra w arkuszu kalkulacyjnym. Makropolecenia będą wykonane za pomocą Excel 2003 Professional Edition i podobnie się to robi Microsoft Office 2007, 2010 - tylko inny pasek menu. Dla przykładu zarejestrujemy kilka makr, które będą formatowały komórki z dowolnymi przez nas wpisanymi liczbami.
Rejestracja makr
Żeby nagrać makro uruchamiamy oczywiście arkusz kalkulacyjny a następnie z Paska Menu wybieramy Widok >> Paski narzędzi >> Visual Basic. Najlepszym sposobem od razu będzie dołączenie tego okienka do paska przycisków żeby nam nie przeszkadzał w dalszej pracy. Drugim sposobem, aby wywołać rejestrator to z Paska Menu wybieramy Narzędzia >> Makro >> Zarejestruj nowe makro. Moim zdaniem pierwszy sposób jest bardziej wygodny, ponieważ od razu będziemy mieli rejestrator makr i Visual Basic w jednym pasku przycisków. Przyda nam się to w ręcznym wprowadzaniu instrukcji w edytorze kodu VBA. Tak, więc klikamy na ikonę Zarejestruj makro pojawi się okno, w którym wpisujemy dane. Następnie wpisujemy nazwę makra Formatowanie. Dodatkowo w polu klawisz skrótu wpisujemy Ctrl+q, który będzie aktywował makro. Natomiast w polu Przechowuj makro w: domyślnie zapisujemy Ten skoroszyt lub Skoroszyt makr osobistych wtedy nasze makro będzie dostępne w każdym otwieranym skoroszycie. Poniżej możemy dołączyć alternatywny opis rejestrowanego makra. Klikamy przycisk OK i rozpoczyna się rejestracja makra.
Rejestrowanie makra
Na przykładzie formatowania komórek
Rejestrowanie makr zostało uruchomione. Arkusz kalkulacyjny Excel będzie zapamiętywał wszystkie wykonane przez nas czynności. Zaczynamy wpisując dowolne liczby w komórkach z dwoma lub trzema liczbami po przecinku. Dodatkowo możemy obramować i wypełnić dowolnym kolorem komórki. Następnie zaznaczamy wszystkie wypełnione pola i klikamy prawym przyciskiem myszy wybierając Formatuj komórki. Dla przykładu wybieramy Kategoria: Walutowe - Miejsca dziesiętne jedna liczba po przecinku. Zatrzymujemy rejestrowanie. Nasze pierwsze makro zostało utworzone. Teraz możemy zarejestrować następne makro np. Formatowanie 2. Podobnie zaznaczamy wszystkie wypełnione pola i wciskamy prawy przycisk myszy, ale tym razem wybieramy Kategoria: Procentowe - Miejsca dziesiętne jedna liczba po przecinku. Na takiej zasadzie rejestrujemy przykładowe makra, które następnie możemy uruchomić poprzez wybranie z pozycji dostępnych makr: Formatowanie, Formatowanie 2, Formatowanie 3 itp. Na zakończenie zapisujemy plik w wybranej przez nas lokalizacji.
Nasze przykładowe makra zostały zarejestrowane teraz możemy je uruchomić ikona Uruchom makro lub skrót klawiszowy, który wcześniej zdefiniowaliśmy do aktywowania makropolecenia (Ctrl + q). Pokazuje się nam okno z listą naszych makr wybieramy np. Formatowanie 2 i klikamy przycisk uruchom. Nasze liczby wpisane w komórkach automatyczne są przeliczane na procenty z jedną liczbą po przecinku. Ponownie klikamy uruchom makro, ale tym razem wybieramy Formatownie 3 nasze dane procentowe zostały przeliczone na ułamki. Na takim prostym przykładzie zarejestrowania kilku makr możemy w przyszłości tworzyć bardziej skomplikowane operacje matematyczne.
Uruchamianie makra
Programowanie w Visual Basic
Visual Basic for Applications w skrócie VBA tak jak pisałem wcześniej jest to zaawansowane narzędzie programistyczne firmy Microsoft dołączone do całego pakietu Office. W którym możemy samodzielnie edytować nasze wcześniej zarejestrowane makra wywołując polecenie Uruchom makro i klikając na przycisk Edycja. Natomiast, jeśli chcemy samemu od podstaw tworzyć instrukcje składające się na makra musimy uruchomić edytor Visual Basic. Następnie klikamy ikonę Insert >> Module otworzy się okno kodu gdzie wprowadzamy instrukcje, które po zapisaniu będziemy uruchomiać jako makropolecenia w arkuszu kalkulacyjnym Excel.
Przykład sumowania liczb
Przedstawiony poniżej prosty kod programu pokazuje, na jakiej zasadzie zostaje nasze wcześniej zarejestrowane makro przetworzone na instrukcje w języku Visual Basic.
Sub Suma() ' ' Suma Makro ' Sumowanie liczb ' ' Range("D4").Select ActiveCell.FormulaR1C1 = "24" Range("D5").Select ActiveCell.FormulaR1C1 = "45" Range("D6").Select ActiveCell.FormulaR1C1 = "18" Range("C10").Select ActiveCell.FormulaR1C1 = "=SUM(R[-6]C[1]:R[-5]C[1]:R[-4]C[1])" End Sub
Edycja makropoleceń w Visual Basic
Trochę na zakończenie
Makropolecenia to bardzo dobry sposób na zaprogramowanie ciągu powtarzanych przez nas czynności nie tylko w przykładowym tu opisanym arkuszu kalkulacyjnym, ale w całym pakiecie biurowym Microsoft Office. Wielokrotnie wykonywane przez nas czynności: klikanie myszą, naciskanie klawiszy, wypełnianie komórek, formatowanie komórek itp. możemy zautomatyzować poprzez nagranie w postaci makro. Dlatego jest to tak przydatna funkcja, która w dużym stopniu ułatwia zadanie i skraca czas naszej biurowej pracy. Natomiast, jeśli będziemy chcieli edytować lub tworzyć bardziej skomplikowane makrodefinicje to musimy otworzyć edytor kodu Visual Basic.
Pozdrawiam.