Makra –
Wprowadzenie
Przykłady opisane w
tej lekcji dostępne są w arkuszu Excela: VBA.xlsm tylko ich samodzielne
przerobienie daje gwarancję zapamiętania tej lekcji.
Przykłady dla wszystkich lekcji szkolenia
Excel 2013: ExcelSzkolenie.pl
Cwiczenia Excel 2013.zip
Ta lekcja może być
obejrzana lub przeczytana poniżej.
Film wygląda
najlepiej jeśli będzie odtwarzany w rozdzielczości 720p HD, rozdzielczość można
zmienić dopiero po uruchomieniu filmu klikając na ikonie trybika która pojawi się w prawym dolnym
rogu poniższego ekranu. Po kilku sekundach od zmiany obraz wyostrzy się.
Okna i polecenia
Visual Basic są w języku angielskim nawet, jeśli Excel, którego używamy jest w
wersji polskiej.
Aby uzyskać dostęp do
Ekranu pozwalającego nam na przeglądanie i zmienianie kodu VBA wciskamy lewy
Alt+F11.
Wyświetlony zostanie
ekran wyglądający najprawdopodobniej tak jak poniżej.
Jeżeli układ okienek
jest inny, już za chwilę dowiemy się jak przywrócić go do takiego stanu.
Niezależnie od tego
co zobaczylismy po wybraniu Alt+F11, zamykamy wszystkie okienka korzystając z
przycisków z symbolem X zaznaczonych powyżej czerwonymi prostokątami.
Dla okna z kodem może
być potrzebne więcej niż 1 kliknięć w X.
Po wyczyszczeniu
widoku pokażemy potrzebne do pracy okna.
Aby zobaczyć okno
przedstawiające aktualnie otwarte w Excelu pliki, znajdujące się w nich
arkusze, oraz inne obiekty, należy wybrać z Menu : View → Project
Explorer
Aby pokazać okno z
kodem makr należy wybrać z Menu: ‘View’ → ‘ Code’
Aby pokazać okno z
własnościami obiektów (Properties) należy wybrać z Menu: ‘View’ → ‘
Properties Window’.
Może okazać się
konieczne ustalenie odpowiednich proporcji pomiędzy oknami, robimy to
przeciągając ich granice tak aby interesujące nas elementy były widoczne.
W ten sposób
dochodzimy do widoku, w którym najczęściej będziemy pracować.
Istnieje wiele innych
okien użytecznych dla bardziej zaawansowanych użytkowników.
Trzy okna opisane
powyżej są najczęściej używane i wystarczające do prostych makr.
Operacje na Modułach
W oknie ‘Project –
VBAProject’ poruszamy się klikając symbole ‘+’ i ’-‘ oraz poszczególne obiekty,
które nas interesują. Obiektami tymi będą aktualnie otwarte pliki Excela, plik
Personal.xls, mogą się też pojawić dodatki, które możemy rozpoznać po
rozszerzeniu .xlam.
Dodatki są efektem
aktualizacji Excela i nie będziemy mieć do nich dostępu, zaawansowani
programiści VBA mogą także tworzyć swoje dodatki.
Plik Personal.xls
tworzony jest automatycznie podczas nagrywania pierwszego makra na komputerze
na którym pracujemy, o ile oczywiście wybierzemy opcję Przechowuj makro w:’
‘Skoroszyt makr osobistych’.
Plik ten od tej pory
otwierany jest automatycznie przy każdym otwarciu Excela i służy do
przechowywania makr, do których zawsze chcielibyśmy mieć dostęp.
Jeżeli na komputerze,
na którym pracujesz nie zapisano jeszcze żadnego makra nie znajdziesz też tego
pliku.
Większość makr jest
przechowywana w Modułach. Jeżeli nagrywamy makro, nowy moduł dodawany jest
automatycznie do pliku, w którym chcemy przechowywać makro. Moduł możemy także
dodać ręcznie wybierając z Menu: Insert → Module.
Aby usunąć moduł, którego
nie potrzebujemy klikamy go prawym klawiszem i wybieramy opcję ‘Remove [nazwa
klikniętego modułu]...’
Zostaniemy zapytani czy
chcemy gdzieś przenieść moduł przed wykasowaniem go. Jeśli chcemy skasować
moduł wybieramy opcję ‘Nie’
Aby zmienić nazwę
modułu w oknie Properties w miejscu zaznaczonym czerwonym prostokątem
wprowadzamy nową nazwę modułu.
Nazwa nie może
zawierać znaków spacji, z reguły zastępuje się je znakiem dolnego podkreślenia
_.
Mając otwarty plik VBA.xlsm
utwórzmy w Excelu nowy skoroszyt (Zeszyt1) i korzystając z symboli ‘+’ ‘-‘ w
oknie ‘Project – VBAProject’ doprowadzamy widok do postaci takiej jak poniżej.
Aby skopiować moduł
‘Nagrywanie_Makr’ z pliku ‘VBA.xlsm’ wystarczy kliknąć ten moduł lewym
klawiszem myszy i przeciągnąć go na nazwę arkusza w którym chcielibyśmy aby się
znalazł.
Moduł wraz z makrami,
które zawiera zostanie skopiowany do nowego pliku. Efekt tego widać poniżej.
Jeżeli w pliku, do
którego kopiujemy znajduje się już moduł o takiej nazwie do nazwy nowego
zostanie dodana cyfra ‘1’.
Operacje na Makrach
Jeżeli dwukrotnie klikniemy na nazwie jednego
z modułów np. na ‘Nagrywanie Makr’, kody makr znajdujące się w tym module
zostaną wyświetlone w oknie kodu.
Większość makr zaczyna się od określenia
‘Sub’ po którym następuje nazwa makra oraz pusty nawias, kończą się natomiast
słowami End Sub.
Poszczególne makra oddzielone są poziomymi
liniami.
Dodajmy do pliku Zeszyt1 nowy moduł.
Aby przekopiować makro ‘formatuj_liczby()’ z
modułu ‘Nagrywanie_Makr’ w pliku VBA.xlsm do nowo utworzonego modułu ‘Module1’
w pliku ‘Zeszyt1’, należy:
1. Zaznaczyć tekst całego makra
2. Skopiować go (‘Ctrl’+C),
3. Dwukrotnie kliknąć moduł docelowy
(Module1)
4. Wkleić makro (‘Ctrl’+ V)
W efekcie wyżej
opisanych czynności makro zostanie skopiowane do modułu ‘Module1’ oraz
wyświetlone w oknie Code.
Pewne typy makr
opisanych w dalszych lekcjach muszą znajdować się w ściśle określonych
miejscach np. w Ten_skoroszyt (ThisWorkbook).
Operacje
przeprowadzane na makrach zapisanych w Arkuszach lub ThisWorkbook niczym nie
różnią się od operacji na makrach znajdujących się w modułach.