Makro Hello World!

Nagrywanie makr pozwala na zautomatyzowanie wielu wykonywanych czynności, ale nie wszystkie czynności da się wykonać poprzez nagrywanie makr. Z tego powodu warto jest poznać choćby podstawową składnię języka VBA

Programowanie makr można w pewnym uproszczeniu porównać do wpisywania formuł w arkuszu Excela. Jednak język VBA ma dużo większe możliwości niż same formuły w Excelu. W przypadku języka VBA wszystkie instrukcje są pisane w języku angielskim (w przypadku formuł Excela zdecydowana większość nazw funkcji została spolszczona).

W tym ćwiczeniu stworzymy proste makro, które przywita się z użytkownikiem. Aby wpisać nasze pierwsze makro należy wykonać następujące czynności:

  1. Uruchom program MS Excel
  2. Włącz edytor VBA. W tym celu naciśnij kombinację klawiszy ALT+F11, lub wybierz polecenie Visual Basic znajdujące się na karcie Deweloper.
  3. Pojawi się okno dialogowe Microsoft Visual Basic for Applications

Okno edytora składa się z kilku elementów, które oznaczyłem kolejnymi numerami:

  1. Okno Project Explorer jeśli nie jest widoczne, naciśnij kombinację klawiszy Ctrl + R, aby się pojawiło na ekranie. W tym oknie znajduje się diagram zawierający wszystkie skoroszyty aktualnie otwarte w Excelu oraz moduły.
  2. Okno Properties w tym oknie można ustalić różne parametry modułów, oraz kontrolek. Jeśli okno nie jest widoczne, należy nacisnąć klawisz F4
  3. Okno Code – zawiera kod źródłowy języka VBA. Każdy element projektu zawiera powiązane okno zawierające kod źródłowy. Przykładowo: aby otworzyć okno Code dla obiektu Arkusz1 należy w oknie Project Explorer (1) dwukrotnie kliknąć w jego nazwę.
  4. Okno Immediate – to okno jest użyteczne w trakcie testowania naszej aplikacji. Szerzej o tym oknie napiszę w dalszej części mojej pracy dyplomowej. Jeśli to okno nie jest widoczne należy nacisnąć kombinację klawiszy Ctrl+G, aby się pojawiło.
  5. Menu i paski narzędzi – interfejs programów z pakietu MS Office od wersji 2007 zawiera „wstążkę” zamiast menu i pasków narzędzi, jednak edytor VBA pod tym względem nie został unowocześniony.
  1. Utwórz nowy moduł. W tym celu w oknie Project Explorer kliknij prawym przyciskiem myszy i z menu kontekstowego wybierz opcję Insert -> Module
  1. W oknie Project Explorer pojawi się nowy folder o nazwie Modules a w nim nowy moduł o nazwie Module1.
  2. Zmień nazwę modułu na bardziej przyjazną. W tym celu kliknij dwukrotnie w moduł o nazwie Module1 a następnie w oknie Properties w polu (Name) wpisz bardziej przyjazną nazwę modułu np. NaukaVBA i naciśnij Enter
  1. W oknie Project Explorer kliknij dwukrotnie w nazwę modułu NaukaVBA. Następnie w oknie Code wpisz poniższy kod
Sub PierwszeMakro()
    MsgBox "Hello world!", vbInformation
End Sub
  1. Umieść kursor wewnątrz wpisanego makra (np. przy instrukcji MsgBox) i naciśnij klawisz F5, aby uruchomić. Rys. 8 przedstawia efekt wywołania makra

Nasze makro ma za zadanie wyświetlić okno dialogowe (odpowiada za to instrukcja MsgBox). Tekst, który ma się pojawić wewnątrz okna dialogowego należy objąć w cudzysłów. Drugi parametr instrukcji MsgBox to rodzaj wyświetlonego okna komunikatu (w naszym przypadku jest to vbInformation czyli ikonka informacyjna). Poniższa tabela przedstawia jakie parametry można przekazać instrukcji MsgBox

StałaOpis
vbOKOnlyPrzycisk OK
vbOKCancelPrzyciski OK i Cancel(Anuluj)
vbAbortRetryIgnorePrzyciski Abort(Przerwij), Retry(Ponów próbę) i Ignore(Zignoruj)
vbYesNoCancelPrzyciski Yes(Tak), No(Nie) i Cancel(Anuluj)
vbYesNoPrzyciski Yes(Tak) i No(Nie)
vbRetryCancelPrzyciski Retry(Ponów próbę) i Cancel(Anuluj)
vbCriticalWyświetla ikonę wiadomości krytycznej
vbQuestionWyświetla ikonę pytania
vbExclamationWyświetla ikonę wiadomości ostrzegawczej (wykrzyknik)
vbInformationWyświetla ikonę informacji

Jeśli chcielibyśmy, aby okno dialogowe MsgBox zawierało przyciski Tak i Nie, oraz ikonę pytania oba parametry należy połączyć operatorem Or. Czyli kod wywołujący takie okno dialogowe powinien wyglądać następująco:

Sub PierwszeMakro()
    MsgBox "Hello world!", vbQuestion Or vbYesNo
End Sub