VBA Wprowadzenie

 

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

 

Aby uzyskać dostęp do Ekranu pozwalającego nam na przeglądanie i zmienianie kodu VBA wciskamy kombinację klawiszy ‘Alt+F11’.

Wyświetlony zostanie ekran wyglądający najprawdopodobniej tak jak poniżej. Jeżeli układ okienek jest inny, przywrócimy go takiego stanu.

Okna i polecenia Visual Basic są w języku angielskim nawet, jeśli Excel, którego używamy jest w wersji polskiej.

 

 

Aby zobaczyć okno przedstawiające aktualnie otwarte w Excelu pliki, arkusze znajdujące się w nich oraz inne obiekty, które opiszę bliżej w dalszej części kursu należy wybrać z Menu : View → Project Explorer

 

 

 

Aby pokazać okno z kodem makr należy wybrać z Menu: ‘View’ → ‘ Code’

 

 

Istnieje też wiele innych okien, które będę prezentował w dalszej części kursu. Dwa opisane powyżej są najczęściej używane i zawsze powinny być widoczne.

 

 

 

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.xls oraz dodatki, które możemy rozpoznać po rozszerzeniu XLA.

Dodatki są w większości przypadków 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, jeśli wybierzemy aby zostało ono nagrane w tym pliku.

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.

Makra są najczęściej 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’

 

 

Jeszcze raz dodamy moduł i zmienimy jego nazwę.

Aby zmienić nazwę modułu dodamy kolejne okno do obecnego widoku.

Wybieramy z Menu: ‘View’ → ‘Properties Window’

 

 

Wielkość wszystkich okien możemy regulować przeciągając ich granice, co na poniższym rysunku zaznaczone jest kółkiem i strzałką.

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 myślnika _.

 

 

 

Proponuję zamknąć plik Excela na którym ćwiczyliśmy bez zapisywania zmian i otworzyć plik VBA.xls oraz utworzyć nowy plik Excela (Zeszyt1).

 

W pliku VBA.xls znajdują się moduły, których nazwy odpowiadają nazwom lekcji kursu VBA.

Zamykamy znakiem minusa Microsoft Excel Objects i otwieramy Modules dla pliku VBA.

Podwójny klik na moduł ‘Funkcja_MsgBox’, wyświetli z prawej strony ekranu, kod makr znajdujących się w nim.

Po tych zmianach Okno Microsoft Visual Basic powinno wyglądać (mniej więcej) tak jak poniżej.

 

 

Aby skopiować moduł ‘Funkcja_MsgBox’ do pliku ‘Zeszyt1’ wystarczy przeciągnąć ten moduł (lewym klawiszem myszy) 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, zbiór modułów w Zeszycie1 został otwarty kliknięciem w ikonę +.

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 ‘Funkcja MsgBox’, 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.

 

Do pliku ‘Zeszyt1’ dodajmy moduł i zmieńmy jego nazwę na ‘Moje_Makra’.

Aby przekopiować makro ‘MsgBox_Przyklad_1’ z modułu ‘Funkcja_MsgBox’ do nowo utworzonego modułu ‘Moje_Makra’ w pliku ‘Zeszyt1’, należy:

1. Zaznaczyć tekst całego makra

2. Skopiować go (‘Ctrl’+C),

3. Dwukrotnie kliknąć moduł docelowy (Moje_makra)

5. Wkleić makro (‘Ctrl’+ V) w oknie kodu (z prawej strony).

 

 

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 Arkuszach lub ThisWorkbook.

Operacje na makrach przeprowadzane w Arkuszach lub ThisWorkbook niczym nie różnią się od operacji na makrach znajdujących się w modułach.

 

 

 

Szkolenie Excel 2003                            Szkolenie Excel 2007