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.