Po zapoznaniu się z Edytorem Visual Basic możemy zająć się tworzeniem programu. Na tej stronie przedstawię z jakich podstawowych części składa się program VBA.
Program VBA złożony jest z instrukcji (rozkazów), które w procesie kompilacji przetwarzane są na kod wykonywalny zrozumiały dla procesora. Instrukcje te wykonywane są w określonym porządku zdefiniowanym przez programistę. Pojedynczą instrukcje możemy nazwać zdaniem języka VBA. Oczywiście zdanie takie musi być odpowiednio zbudowane, ale o tym w dalszej części kursu. Informacyjnie tylko podam że instrukcja może zawierać słowa kluczowe, wyrażenia, stałe, operatory oraz zmienne. Pojedyncza instrukcja może np. zadeklarować zmienną, ustawić wartość lub wykonać określoną operację.
Instrukcje programu zorganizowane są w procedury, moduły i projekty.
Procedura jest bardzo ważną częścią programu, ponieważ aby kod mógł być wykonany należy umieścić go w procedurze. Jest to najmniejsza część kodu którą można uruchomić niezależnie od innych części kodu. Procedura składa się z przynajmniej jednej instrukcji umieszczonej między dwiema specjalnymi instrukcjami: z których pierwsza z nich deklaruje procedurę a ostatnia ją zamyka. Więcej informacji na temat procedur znajdziesz na stronie Procedury.
Moduł zawiera z jedną lub więcej procedur oraz sekcje deklaracji w której umieszczamy instrukcje wspólne dla w wszystkich procedur tego modułu. Możemy wyróżnić dwa rodzaje modułów: moduł standardowy i moduł klasy.
Projekt obejmuje wszystkie moduły, formularze, obiekty aplikacji macierzystej dokumentu oraz sam dokument.
Programy VBA mogą być bardzo skomplikowane, mogą zawierać wiele instrukcji i procedur rozmieszczonych w rożnych modułach a nawet projektach. My na razie nie będziemy tworzyć tak skomplikowanych programów.Najprostszy program składa się z jednej procedury w której jest jedna instrukcja, procedura ta umieszczona jest w module co daje nam już cały projekt. Poniżej przedstawiam kod takiego programu, składa się on z jednej procedury o nazwie Powitanie, w której umieszczona jest jedna instrukcja. Instrukcja ta wyświetla okienko komunikatu i z napisem: Witam i życzę miłej zabawy.
Sub Powitanie() MsgBox "Witam i życzę miłej zabawy" End Sub
Jak już wspomniałem procedury zorganizowane są w modułach. Aby umieścić kod przykładu w module wykonaj następujące czynności:
Uruchamiamy Microsoft Excel.
Z menu Widok wybieramy Paski narzędzi a następnie opcje Visual Basic (jeżeli pasek nie jest widoczny).
Z paska narzędzi Visual Basic wybieramy przycisk Edytor Visual Basic.
W nowo otwartym oknie Microsoft Visual Basic-Zeszyt1 z menu View (Widok) wybieramy opcję ProjectExplorer (Eksploator projektu). Powinno się otworzyć okno Project-VBAProject (Projekt-VBAProject) oczywiście punktu tego nie wykonujemy, jeżeli okienko było wcześniej otwarte.
Następnie z menu Insert (Wstaw) wybieramy opcję Module (Moduł). Wstawiony obiekt Module1 (Moduł1) powinien się pojawić oknie Project-VBAProject. Powinno się też pojawić okno Zeszyt1-Module1(Code) (Zeszyt1-Moduł1(Kod programu)). Jeżeli okno się nie pojawi aby je uaktywnić w oknie Project-VBAProject klikamy dwa razy lewym przyciskiem myszy na obiekt Module1 (Moduł1).
W nowo otwartym oknie Zeszyt1-Module1(Code) (Zeszyt1-Moduł1(Kod programu)) piszemy (wstawiamy) kod z przykładu. Całość powinna wyglądać podobnie jak na rysunku poniżej.
Jest wiele sposobów uruchomienia kodu programu zależy to od pewnych warunków na przykład w jakiego typu procedurze czy module umieszczone są nasze instrukcje. Ponieważ nasza procedura jest podprogramem bez parametrów możemy potraktować ją jak makro i wykorzystać przycisk z paska narzędzi Formularze. Aby tego dokonać wykonaj następujące czynności.
Zamykamy Edytor VisualBasic (Alt+Q) i powracamy do Microsoft Excel.
Z menu Widok dokumentu Excela wybieramy Paski narzędzi a następnie opcję Formularze.
Z paska narzędzi Formularze wybieramy ikonę Przycisk a następnie miejsce w arkuszu gdzie chcemy go umieścić.
Powinno się otworzyć okno Przypisz makro, (jeżeli okno się nie otworzy klikamy prawym przyciskiem myszy na nasz wstawiony przycisk i wybieramy opcję Przypisz makro...). W oknie tym zaznaczamy nazwę Powitanie i klikamy przycisk OK.
Kliknij na jakieś miejsce w arkuszu (celem zlikwidowania zaznaczenia przycisku) a następnie na przycisk (Przycisk 1) i przetestuj działanie przykładu.
Uwaga: - w dalszych częściach kursu często będę stosował procedury zdarzenia. Procedury tego typu są automatycznie wykonywane przy zaistnieniu pewnego zdarzenia związanego z określonym obiektem np. formantem z Przybornika formantów.
Dla dociekliwych:
A oto bardziej rozbudowany kod tej samej procedury Powitanie. W przykładzie oprócz wyświetlenia napisu powitania, wyświetlana jest bieżąca data pobierana z systemu Twojego komputera.
Sub Powitanie() Dim MojaData MojaData = Format(Date, "Long Date") MsgBox "Witam dziś mamy " & MojaData & ". Pozdrawiam i życzę miłej zabawy." End Sub
|