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 2007: ExcelSzkolenie.pl
Cwiczenia Excel 2007.zip
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.
Aby zobaczyć okno
przedstawiające aktualnie otwarte w Excelu pliki, arkusze znajdujące się w
nich, oraz inne obiekty (prawa górna część ekranu), 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 ‘+’/’-‘ oraz poszczególne obiekty,
które nas interesują. Obiektami tymi będą aktualnie otwarte pliki Excela, plik
Personal.xlsb oraz 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.xlsb
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.
Makra są z reguły
przechowywane 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 przenieść gdzieś 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 _.
Mając otwarty plik
VBA.slsm 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ł
‘V4’ do pliku ‘VBA.xlms’ 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 ‘V4’, kody makr znajdujące się w tym module zostaną
wyświetlone.
Proste makra zaczynają 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.
Aby przekopiować makro ‘ukrywanie()’ z modułu
‘V4’ 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 ‘Moje_Makra’ oraz wyświetlone w
oknie Code.
Pewne typy makr opisanych
w dalszych lekcjach muszą znajdować się w ściśle określonych miejscach np. w
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.