Nagrywanie
Makr
Przykłady opisane w tej lekcji dostępne są w arkuszu Excela:
VBA.xls, tylko
ich samodzielne przerobienie daje gwarancję zapamiętania tej lekcji.
Przykłady dla wszystkich lekcji szkolenia Excel 2003: ExcelSzkolenie.pl Cwiczenia Excel 2003.zip
Bardzo wiele rozwiązań z wykorzystaniem makr można używać bez znajomości poleceń i struktury języka programowania Visual Basic for Applications.
Pozwala na to opcja nagrywania makr,
którą omówimy na 5 przykładach omówionych w tej lekcji.
Zanim jednak będziemy mogli wykonać jakiekolwiek operacje na makrach musimy się upewnić czy obsługa makr jest w naszym Excelu włączona.
Wybieramy z Menu → Narzędzia →
Opcje i wybieramy kartę ‘Zabezpieczenia’ a potem klikamy przycisk
‘Bezpieczeństwo makr...’.
Na karcie ‘Poziom zabezpieczeń’ wybieramy opcję:
‘Niskie’ –wszystkie makra będą uruchamiane, zgodnie z opisem opcja ta jest niezalecana przez Microsoft, jednak ja bez jakichkolwiek problemów używam jen od lat, lub też
‘Średnie’ – Excel każdorazowo będzie nas
pytać czy makra mają być aktywne, opcja niezalecana
przeze mnie, od setnego zapytania wzwyż używanie jej może mieć niekorzystny
wpływ na system nerwowy użytkownika.
Przykład 1.
(Arkusz:
‘Nagrywanie Makr
W poniższym przykładzie użytkownik Excela bardzo często zmienia format liczb tak, aby były bez miejsc dziesiętnych i używały separatora (spacji), co trzy cyfry. Aby to zrobić musi każdorazowo zaznaczyć obszar, dla którego chce wprowadzić taki format, kliknąć wewnątrz niego prawym przyciskiem myszy i w oknie ‘Formatuj Komórki’ wybrać format liczbowy, zmniejszyć ilość cyfr po przecinku do zera oraz zaznaczyć opcję Użyj Separatora.
Użytkownik ten zamiast wielokrotnie
powtarzać te same czynności preferuje poświęcić swój czas na ciekawsze rzeczy, postanowił więc zautomatyzować tą pracę używając makra.
Z Menu ‘Narzędzia’ → ‘Makro’ wybieramy opcję ‘Zarejestruj nowe makro’.
Wyświetlone zostanie okno ‘Rejestruj makro’.
Wprowadzamy nazwę makra np.: ‘Format_liczb’ (w nazwie nie może być znaku spacji ani znaków specjalnych czyli ? ‘ / etc.)
Wprowadzamy klawisz
skrótu np. ‘e’ oraz
Wybieramy opcję przechowywania makra
w ‘Skoroszycie makr osobistych’
Wciskamy ‘OK’
Wyświetlone zostanie małe okienko iformujące nas, że trwa proces nagrywania makra.
Formatujemy komórki, dokładnie tak samo jak zrobilibyśmy to, gdyby nie trwało nagrywanie makr.
Po zakończeniu formatowania klikamy symbol w postaci niebieskiego kwadratu, tym samym zatrzymując nagrywanie makra.
Sprawdzamy czy nasze pierwsze makro działa.
W tym samym arkuszu znajduje się
inna tabela, w której także należałoby poprawić format liczb. Zaznaczamy
obszar, w którym znajdują się liczby.
Wciskamy ‘Ctrl’+e i format liczb zmienia się od razu na właściwy. Makro działa prawidłowo.
Klawisz skrótu ‘Ctrl+e’ wprowadziliśmy w oknie Rejestruj makro. Klawisz skrótu jest opcjonalny i nie musi być wybierany dla każdego naszego makra.
Używanie go przy makrach często
używanych znacznie usprawnia i przyspiesza pracę.
Jeśli chodzi o wybór litery to
równie dobrze mogłaby to być inna litera, sugeruję jednak nie używać skrótów
już zarezerwowanych przez Excela czyli np. Ctrl+c (kopiuj), Ctrl+v (wklej), Ctrl+x (wytnij), Ctrl+s (zapisz), Ctrl+p (drukuj).
Jeżeli zdecydujemy się nie używać klawisza skrótu, makro możemy uruchamiać poprzez klikanie ikony, do której makro to przypiszemy, jest to bardzo wygodne, szczególnie, że możemy dobrać lub stworzyć dla każdego z makr ikonę, która będzie się nam kojarzyć z tym makrem.
Jak przypisać makro do ikony i jak stworzyć własne ikony
dowiemy się z lekcji: Zmiany w menu
i własne ikony.
Trzecim sposobem na uruchomienie nagranego makra jest wybranie z Menu: ‘Narzędzia’ → ‘Makro’ → ‘Makra...’
Wyświetlone zostanie okno ‘Makro’, w którym wybieramy makro, które chcemy uruchomić.
Podczas nagrywania makra wybraliśmy opcję Przechowuj makro w ‘Skoroszyt makr osobistych’, dzięki temu makro to będzie dostępne zawsze gdy uruchomimy Excela.
Gdybyśmy wybrali opcję ten skoroszyt
makro byłoby dostępne tylko wtedy, kiedy plik, w którym się znajduje będzie
otwarty.
Przykład 2.
(Arkusz:
‘Nagrywanie Makr
Kompletując dane dość często musimy używać opcji transpozycja i wklej wartości. Poniżej dane z 4 tabel należy zgromadzić w 1 tabeli o innym formacie. Ponieważ dość często i dla różnych tabel wykonujemy takie operacje łatwiej będzie nagrać makro i posłużyć się nim.
Postępujemy analogicznie do tego jak
nagrywaliśmy makro w przykładzie pierwszym.
Ponieważ nasze makro ma tylko wklejać dane jako wartości z wykorzystaniem opcji transpozycja, przed rozpoczęciem nagrywania musimy zaznaczyć obszar C19:N19, skopiować go i ustawić się w miejscu, w którym chcielibyśmy, aby dane się znalazły. Po czym rozpoczynamy rejestrowanie makra.
Przykład 3.
(Arkusz:
‘Nagrywanie Makr
Dość często zachodzi konieczność zastąpienia formuł w arkuszu Excela wartościami, które aktualnie przyjmują.
Dzięki takiemu zabiegowi Excel
będzie pracował znacznie szybciej.
Postanowiliśmy zautomatyzować tą
operację nagrywając makro, które będzie ją wykonywać.
Przeprowadzamy następujące czynności:
1. Zaznaczamy obszar, na którym chcemy zamienić formuły na
wartości.
2. Wybieramy z Menu: ‘Narzędzia’ → ‘Makro’ →
‘Zarejestruj nowe makro’, (lub klikamy ikonę )
wprowadzamy nazwę makra i opcjonalnie klawisz skrótu.
3. Kopiujemy wybrany wcześniej obszar (np
wciskając Ctrl+C)
4. Klikamy obszar prawym klawiszem
myszki i wybieramy opcję ‘Wklej Specjalnie’
5. Zaznaczamy ‘Wartości’ i klikamy ‘OK’
6. Wciskamy klawisz ‘Esc’ (aby zakończyć proces kopiowania)
Wybieramy z Menu: ‘Narzędzia’ → ‘Makro’ →
‘Zatrzymaj rejestrowanie’ bądź klikamy ikonę jeśli jest widoczna.
Sprawdzamy działanie naszego makra na innej formule.
W tym przykładzie ważne jest, aby podczas nagrywania makra nie zaznaczać komórek ani nie wybierać innych komórek, nawet wtedy gdybyśmy ostatecznie wrócili na to samo miejsce.
Wszystkie operacje przeprowadzone
przez nas podczas nagrywania zostaną zapamiętane i w niektórych przypadkach
mogą uniemożliwić wykonanie makra, a naszym celem jest przygotowanie makra,
które będzie jak najbardziej uniwersalne.
Przykład 4.
(Arkusz:
‘Nagrywanie Makr
Autofiltr można włączyć wybierając z Menu: ‘Dane’ → ‘Filtr’ → ‘Autofiltr’ lub co jest znacznie wygodniejsze klikając ikonę
Niestety nie ma w Excelu ikony,
która wyłączałaby Autofiltr.
W tym przykładzie nagramy makro,
które będzie wykonywać tą operację i dodamy je do ikony, którą umieścimy na
pasku ikon.
Przeprowadzamy następujące
czynności:
1. Zaznaczamy nagłówki tabeli i
włączamy Autofiltr.
2. Wybieramy z Menu: ‘Narzędzia’ → ‘Makro’ →
‘Zarejestruj nowe makro’, (lub klikamy ikonę )
wprowadzamy nazwę makra i opcjonalnie klawisz skrótu.
3. Wybieramy z Menu: ‘Dane’ →
‘Filtr’ → ‘Autofiltr’
4. Wybieramy z Menu: ‘Narzędzia’ →
‘Makro’ → ‘Zatrzymaj rejestrowanie’, bądź klikamy ikonę .
5. Dodajemy przycisk niestandardowy do Menu, najlepiej przy
ikonie Autofiltra i rysujemy na niej symbol, który będzie się nam kojarzył z
wyłączaniem Autofiltra np. taki: Więcej na temat dodawania ikon do Menu oraz
przypisywania do nich makr w lekcji: Zmiany w menu i własne ikony
6. Sprawdzamy działanie naszego makra włączając filtr i wyłączając go klikając na nowo utworzoną ikonę.
Przykład 5.
(Arkusz: Nagrywanie Makr 4 )
W poniższym przykładzie użytkownik ma
za zadanie zapewnienie sprawnego funkcjonowania pliku w który
kilkudziesięciu innych pracowników wpisuje koszty swoich podróży służbowych.
Niestety osoby te często kopiują
dane z innych plików zapominając o tym aby skopiować
tylko dane bez formatowania. Zdarza się też im wyróżniać wiersze
którymi są zainteresowani poprzez zmianę ich koloru, wielkości czcionki
lub ukrycie pozostałych wierszy.
Już po tygodniu intensywnego
używania tego pliku jego formatowanie pozostawia bardzo wiele do życzenia.
Zamiast każdorazowo poprawiać je
ręcznie znacznie prościej jest nagrać makro które
najpierw usuwa wszelkie formatowanie oraz odkrywa wszystkie kolumny i wiersze,
a później tworzy właściwe formatowanie i ukrywa wiersze i kolumny które mają
być schowane.
Ponieważ trudno jest przewidzieć jakie zmiany formatowania może wprowadzić duża
ilość osób, najwygodniej będzie użyć opcji Edycja à Wyczyść à Formaty, która kasuje wszelkie
formatowanie w arkuszu.
Po czym formatujemy tabelę tak aby wyglądała jak poprzednio i kończymy nagrywanie
makra.
Podczas formatowania należy unikać
przeprowadzania operacji na kilku zakresach naraz ponieważ
rejestrator kodu VBA nie radzi sobie z takimi operacjami.
Makro możemy np.
podpiąć do przycisku w arkuszu.
Podczas nagrywania makr Excel
rejestruje je w postaci kodu VBA, poniżej prezentuje niewielki fragment kodu nagranego
przez nas makra. Prawdę mówiąc duża jego część jest zbędna, ale ponieważ makro
działa szybko i bezbłędnie na tym etapie naszej wiedzy o VBA nie będziemy ingerować
w ten kod i optymalizować go. Makro jest gotowe do użycia bez konieczności
wprowadzania w nim zmian.
Każde nowe makro warto przetestować,
proponuję więc popsuć formatowanie a potem uruchomić
nasze makro.
We wszystkich powyższych przykładach przygotowaliśmy użyteczne makra, bez ingerowania w ich kod źródłowy, nie musieliśmy nawet oglądać ich kodu.
Aby przygotować bardziej użyteczne makra
będziemy już musieli zapoznać się z tym jak wprowadzać zmiany w kodzie VBA,
zarejestrowanym podczas nagrywania.
Szkolenie Excel 2003 Szkolenie Excel 2007