Strona używa cookies (ciasteczek). Dowiedz się więcej o celu ich używania i zmianach ustawień. Korzystając ze strony wyrażasz zgodę na używanie cookies, zgodnie z aktualnymi ustawieniami przeglądarki.    X

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. 

Komentarze

0 nowych
iluzion   5 #1 06.10.2010 17:36

Dobry wpis. Możliwości Excela są ogromne. Sporo ciekawych, inżynierskich przykładów znajduje się na stronie http://www.excelcalcs.com/. W przykładach tych skorzystano z komercyjnego niestety rozszerzenia.

Jeden z przykładów:

http://www.youtube.com/user/ExcelCalcs#p/u/18/eOnJQu_EwXw

Obliczenie reakcji kół koparki w zależności od przyłożonego obciążenia i geometrii "łyżki" + procentowe wykorzystanie nośności poszczególnych "prętów" układu :)

Ps Popełniłeś kilka drobnych błędów językowych np. "bardziej wygodniejszy".

treuer25   6 #2 06.10.2010 18:55

Bardzo fajnie opisane jestem pod wrażeniem.
sam myślałem żeby coś napisać ale o OpenOffice i możliwościach Calca jeśli chodzi o makra.

skandyn   9 #3 06.10.2010 21:50

@iluzion

Dziękuję za zwrócenie uwagi mój błąd. Troszeczkę się pospieszyłem z publikacją wpisu i dokładnie wszystkiego nie sprawdziłem.

Pozdrawiam.

borzole   4 #4 06.10.2010 22:40

Pamiętam, że na zajęcia z mechaniki ktoś u nas zrobił zagadnienie obrotu dwóch ciał (np. słońce-ziemia) w excelu. Wszystko działało OK, tylko że renderowało się około minuty :)

Może jako alter-ego ktoś opisze skrypty pythona w openoffice ?