Na poprzednich stronach poznaliśmy okna komunikatów utworzone za pomocą funkcji MsgBox i okna dialogowe utworzone za pomocą funkcji InputBox. Jeżeli jednak okna te nie spełniają potrzeb programu możemy utworzyć formularz z formantami i dodać do niego kod VBA.
Formularz - okno lub okno dialogowe. Możemy powiedzieć że formularze są kontenerami dla formantów. Formularz jest obiektem, oznacza to że posiada on właściwości, metody i reaguje na zdarzenia. W edytorze VBA formularz nosi nazwę UserForm.
Formant - obiekt, który można umieścić na formularzu, posiadający własny zestaw rozpoznawalnych właściwości, metod i zdarzeń. Formantów można używać do pobierania i wyświetlania danych oraz wyzwalania procedur obsługi zdarzeń. Większością formantów można operować używając metod. Niektóre formanty są interaktywne (reagują na akcje użytkownika), podczas gdy inne są statyczne (dostępne tylko poprzez kod programu).
Aby utworzyć nowy formularz należy uruchomić edytor VBA i z jego poziomu:
Z menu Insert (Wstaw) wybieramy opcję UserForm (UserForm).
Inny sposób to w oknie Project (Projekt) klikamy prawym przyciskiem myszy nazwę projektu. Z menu kontekstowego wybieramy pozycję Insert (Wstaw) a następnie opcję UserForm (UserForm).
W oknie edytora pojawi się nowy (czysty, czyli bez formantów) formularz oraz przybornik (pasek narzędzi) o nazwie ToolBox. Przybornik ten zawiera właśnie formanty które możemy dodać do formularza. Dla własnej wygody, formularz jak i przybornik możemy odpowiednią rozmieścić w edytorze VBA. Technicznie okna te można przesunąć tak jak każde okno systemu Windows. Zakładając że mamy widoczne okna Project i Properties, całość powinna wyglądać mniej więcej tak.
Dodawanie formantów do formularza:
Do formularza można dodać formanty czyli obiekty znajdujące się w przyborniku Toolbox. Pasek narzędzi Toolbox pojawia się na ekranie wraz z nowo utworzonym formularzem. Jeżeli klikniemy okno Properties (Właściwości) lub Project (Projekt), przybornik zostanie ukryty. Aby ponownie wyświetlić przybornik klikamy na formularz czy formant umieszczony na formularzu.
Aby dodać nowy formant do formularza wykonaj czynności:
Na przyborniku Toolbox klikamy przycisk oznaczający formant który chcemy umieścić na przykład duże A czyli Label (Etykieta).
Przesuwamy kursor nad formularz w miejsce gdzie chcemy aby znajdował się nasz obiekt. Gdy przesuniemy kursor na formularz przybierze on kształt plus. Kursorowi towarzyszy symbol wybranego formantu.
Wciskamy i przytrzymujemy lewy przycisk myszy, ciągniemy kursorem obserwując kreślony na formularzu zarys formatu.
W chwili gdy formant osiągnie planowane wymiary zwalniamy przycisk myszy.
Właściwości formularzy i formantów:
Formularze i formanty (podobnie jak inne obiekty), posiadają właściwości określające ich wygląd i sposób działania. Właściwości opiszę w dalszej części kursu na razie przedstawię kilka podstawowych informacji.
Wartości właściwości możemy odczytywać i modyfikować za pomocą kodu VBA lub w oknie Properties (Właściwości). Okno to wyświetla właściwości opisujące zaznaczony (aktywny) obiekt. Czyli jeżeli zaznaczymy (klikniemy) na formularz okno Properties wyświetli właściwości formularza. Gdy zmienimy zaznaczenie klikając na jakiś formant na formularzu lub na inny obiekt na przykład w oknie Project, to okno Properties wyświetli właściwości tego obiektu. Więcej informacji na temat okna Properties znajdziesz na stronie: Edytor Visual Basic. Poniżej przedstawiam przykładowy sposób odczytywania i zmiany właściwości za pomocą okna Properties.
Jeżeli nie jest widoczne, wyświetl okno Properties ( naciskając na przykład F4).
Zaznacz (kliknij) obiekt którego właściwości chcesz wyświetlić, może to być nasz formularz.
W kolumnie z lewej strony okna Properties znajdź na liście określono właściwość na przykład Name. W polu obok umieszczona jest wartość tej właściwości, wpisz tam nową wartość na przykład frmWitaj.
Sposób zmiany właściwości zależy od jej rodzaju. Możemy wpisać nową wartość czy wybrać ją z listy lub z okna dialogowego.
Metoda jest akcją, którą może wykonać obiekt lub którą wykonujemy na obiekcie. Najogólniej możemy powiedzieć że metoda to procedura związana z konkretnym obiektem. Ponieważ kod metody jest częścią obiektu, obiekt że tak powiem wie co ma robić kiedy wywołamy określoną metodę. Oczywiście różne obiekty mogą posiadać i wykonywać różne metody.
Wyświetlanie formularza za pomocą metody Show:
Jeżeli chcemy wyświetlić formularz podczas działania programu w momencie w jakim wymaga tego program (ustalonym przez programistę) możemy użyć metody Show. Aby na przykład wyświetlić formularz o nazwie (właściwość Name) frmWitaj piszemy kod: frmWitaj.Show. W dalszej części strony przedstawiam przykład zastosowania tej metody.
Ukrywanie formularza z pomocą metody Hide:
Aby podczas działania programu ukryć formularz na przykład po to, by użytkownik miał dostęp do narzędzi aplikacji macierzystej, użyjemy jego metody Hide. Jeżeli chcemy ukryć formularz o nazwie (właściwość Name) frmWitaj piszemy kod: frmWitaj.Hide. W dalszej części strony przedstawiam przykład zastosowania tej metody.
Formularze a także ich formanty mogą reagować na różne zdarzenia na przykład naciśnięcie przycisku myszy (gdy kursor znajduje się na obiekcie). Jeżeli do wywołanego zdarzenia dodamy kod VBA to jest on wykonywany. Kod przypisany zdarzeniu związanemu z danym obiektem nazywamy procedurą zdarzenia. Formularz i formanty mogą reagować na wiele różnych zdarzeń. Na przykład formularz posiada zdarzenie Activate które zachodzi ilekroć formularz jest aktywowany. Zdarzenie to wykorzystałem w przykładzie poniżej.
Poniżej przedstawiam przykład w którym przy uruchomieniu dokumentu Excela pokazuje się okienko, ładowany jest formularz o nazwie frmWitaj. Po upływie określonego czasu okienko znika i możemy korzystać z uruchamianego dokumentu. Forma naszego przywitania wizualnie jest bardzo skromna, możesz a nawet powinieneś pod tym względem przykład ten udoskonalić. Wykorzystaj wiedzę przedstawiono na tej stronie i wykonaj kroki przedstawione poniżej.
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 kolejno opcję:
Project Explorer (Eksploator projektu)
Properties Window (Okno właściwości)
Powinny się otworzyć okienka: Project-VBAProject i Properties, dla własnej wygody dopasowujemy rozmiar i położenie okienek (oczywiście punktu tego nie wykonujemy jeżeli okienka były wcześniej otwarte).
W oknie właściwości zmieniamy właściwości naszego obiektu User Form:
Caption na Okienko powitalne
Wstaw do formularza etykietę.
W oknie właściwości ustawiamy właściwości etykiety:
|