POWRÓT

SEMESTR VI

Własne okno dialogowe


Spis treści rozdziału - tutaj kliknij

Formularze UserForm
Ćwiczenia

Źródła - Excel 2013 Pl, Programowanie VBA - John Walkenbach, VBA dla Excela 2010 Pl - Witold Wrotek, Excel 2013 Pl, programowanie w VBA dla Bystrzaków.


 

Formularze UserForm

     
   

  Jeżeli okna utworzone za pomocą funkcji MsgBox i okna dialogowe utworzone za pomocą funkcji InputBox nie spełniają potrzeb programu wtedy możemy utworzyć formularz UserForm z formantami i dodać do niego kod VBA. Excel pozwala w stosunkowo prosty sposób tworzyć w aplikacjach niestandardowe okna dialogowe. Niestandardowe okna dialogowe tworzone są przy użyciu formularza UserForm z wykorzystaniem edytora VBE i są uzupełnieniem d
Na poprzednich stronach poznaliśmy okna komunikatów utworzone za pomocą funkcji MsgBox i okna dialogowe utworzone za pomocą funkcji InputBox.

  • 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).

Typowy proces tworzenia formularza UserForm składa się z następujących kroków;

  • wstawienie do projektu nowego formularza UserForm
  • umieszczenie formantów na formularzu UserForm,
  • ustawienie właściwości formantów formularza,
  • utworzenie procedur obsługi zdarzeń dla formantów znajdujących się na formularzu,
  • utworzenie procedury wyświetlajacej formularz UserForm
  • umożliwienie użytkownikowi łatwego uruchomienia procedury utworzonej w punkcie 5.

Dodawanie formantów

  Aby dodać formanty do formularza UserForm, należy użyć okna Toolbox. Aby dodać wybrany formant o domyślnym rozmiarze, wystarczy kliknąc w oknie Toolbox przycisk reprezentujący żądany formant, a następnie kliknąć lewym przyciskiem myszy w obszarze tworzonego okna dialogowego. Nowemu formantowi zostanie nadana domyślna nazwa złożona z identyfikatora typu formantu i kolejnej wartości liczbowej.

W zależności od użytego obiektu będzie on spełniał odpowiednią funkcje:

  • wyświetlania danych,
  • wprowadzania danych,
  • wykonywania akcji ,
  • zwiększania czytelności formularza.

Typy (rodzaje) formantów

  • CheckBox (Pole wyboru) - jest używany w przypadku pobierania wartości dwustanowych typu tak lub nie, prawda lub fałsz, włączony lub wyłączony,
  • ComboBox (Pole kombi) - pozwala użytkownikowi na wprowadzanie wartości, której nie ma na liście elementów,
  • CommandButton (Przycisk polecenia) - najczęściej używane formanty to przyciski o nazwie OK oraz Anuluj,
  • Frame (Pole grupy) - jest szczególnie przydatny, gdy okno dialogowe zawiera więcej niż jeden zbiór formantów OptionButton,
  • Image (Pole obrazu) - służy do wyświetlania obrazu pobieranego z pliku lub wklejonego ze schowka,
  • Label (Pole etykiety) - wyświetla tekst w oknie dialogowym,
  • ListBox (Pole listy) - (pole listy) prezentuje listę pozycji, które użytkownik może wybrać
  • MultiPage - umożliwia tworzenie okien dialogowych wyposażonych w karty, jak np. Formatowanie komórek
  • OptionButton (przycisk opcji) - stosuje się, gdy użytkownikowi zależy na wybraniu jednej opcji spośród kilku dostępnych,
  • RedEdit (Pole zakresu) - jest używany w sytuacji, gdy użytkownik musi zaznaczyć zakres komórek arkusza,
  • ScrollBar (Pasek przewijania) - podobny do SpinButton,
  • SpinButton (Pokrętło) - umożliwia użytkownikowi wybranie wartości poprzez kliknięcie dwóch strzałek,
  • TabStrip (Pole karty) - podobny do MultiPage,
  • TextBox (Pole tekstowe) - umożliwia użytkownikowi wprowadzenie tekstu,
  • TaggleButton (Przycisk przełącznika) - posiada dwa stany - włączony lub wyłączony.

Ćwiczenie - praktyczne tworzenie formularza UserForm - kolejność czynności

  Zadanie - Zaprojektuj okno dialogowe, do rejestracji osób zajmujących się zbieraniem pamiątek historycznych, które będzie pobierało od użytkownika dwie informacje - imię i nazwisko oraz rodzaj gromadzonych zbiorów (monety, obrazy, szkło).
  Do zbudowania okna dialogowego należy wykorzystać formularz UserForm. W celu pobrania imienia i nazwiska należy użyć formantu TextBox, a do pobrania informacji o zbiorach (monety, obrazy, szkło) należy użyć formantu OptionButton.

Czynność 1 - projekt i budowa okna dialogowego

  • dodanie pustego formularza UserForm, zgodnie z wyżej opisanym schematem,
  • zmień właściwość Caption formularza na Wybierz rodzaj zbiorów,
  • w widocznym oknie dialogowym należy wstawić osiem formatów, wg następującej kolejności;
    • dodaj formant Label i ustaw wymienione niżej wartości dla następujących właściwości; Accelerator 1, Caption Imię i nazwisko, TabIndex 0
    • dodaj formant TextBox i ustaw jego właściwości; Name TextName, TabIndex 1
    • dodaj formant Frame i ustaw jego właściwości; Capton Zbiory, TabIndex 2
    • wewnątrz kontenera Frame umieść formant OptionButton i ustaw jego właściwości; Accelerator M, Caption Monety, Name OptionMonety, TabIndex 0
    • wewnątrz kontenera Frame umieść formant OptionButton i ustaw jego właściwości; Accelerator O, Caption Obrazy, Name OptionObrazy, TabIndex 1
    • wewnątrz kontenera Frame umieść formant OptionButton i ustaw jego właściwości; Accelerator S, Caption Szkło, Name OptionSzklo, TabIndex 2, Value True
    • poza obszarem kontenera Frame umieść formant CommandButton i ustaw jego właściwości; Caption OK, Default True, Name OKButton, TableIndex 3
    • umieść kolejny formant CommandButton i ustaw jego właściwości; Caption Anuluj, Default True, Name CancelButton, TableIndex 4

Rys. Okno dialogowe zbiory


Czynność 2 - napisanie procedury wyświetlającej okno

  Kolejna czynność to napisanie procedury VBA wyświetlającej okno dialogowe na ekranie.

  • Przejdź do okna edytora VBE i z menu głównego wybierz polecenie Insert/Module,
  • wpisz procedurę.

Option Explicit Sub GetData()
  UserForm1.Show
End Sub


Czynność 3 - udostępnianie makra użytkownikowi

  W celu udostępnienia makra użytkownikowipostępujemy zgodnie z podanym niżej schematem:

  • w głównym oknie Excela, przechodzimy na kartę Dewelopera, wciskamy przycisk Wstaw w grupie opcji Formanty,
  • z menu podręcznego wybieramy Przycisk, który przeciągamy na arkusz,
  • po dobraniu rozmiarów i położenia, do przycisku przypisujemy makro GetData,
  • kolejna czynność to edycja treści samego przycisku. W tym celu klikamy prawym przyciskiem myszy na przycisk, wybieramy Edytuj tekst i zmieniamy etykietę przycisku na Zbiory.

Rys. Okno dialogowe Zbiory i przycisk udostępnienia


Czynność 4 - dodawanie procedur obsługi zdarzeń

  Dodawanie procedur obsługi zdarzeń przeprowadza się dla wybranego przykładu poprzez;

  • uaktywnienie edytora VBA i wyświetlenie formularza UserForm,
  • dwukrotne kliknięcie lewym przyciskiem myszy przycisk Anuluj, co uaktywnia okno Code formularza UserForm, na którym widoczna jest pusta procedura o nazwie CancelButton_Click.
  • zmodyfikowanie pokazanej procedury zgodnie ze wzorem.

Private Sub CancelButton_Click()
  Unload UserForm1
End Sub

  • dwukrotnie kliknij przycisk Zapisz i wprowadź poniższą procedurę.

Private Sub EnterButton_Click()
Dim NextRow As Long
' Sprawdza, czy uaktywniono Arkusz1
  Sheets("Arkusz1").Activate
' Sprawdza, czy wprowadzono imię i nazwisko
  If TextName.Text = "" Then
  MsgBox "Musisz podać imię i nazwisko."
  TextName.SetFocus
  Exit Sub
  End If
' Określa następny pusty wiersz
  NextRow = _
  Application.WorksheetFunction.CountA(Range("A:A")) + 1
' Przenosi imię i nazwisko
  Cells(NextRow, 1) = TextName.Text
' Przenosi rodzaj zbioru
  If OptionMonety Then Cells(NextRow, 2) = "Monety"
  If OptionObrazy Then Cells(NextRow, 2) = "Obrazy"
  If OptionSzklo Then Cells(NextRow, 2) = "Szkło"
' Czyści formanty przed wprowadzeniem kolejnych danych
  TextName.Text = ""
  OptionSzklo = True
  TextName.SetFocus
End Sub

Rys. Okno dialogowe Zbiory i wynik wprowadzania danych

Do góry


 

Ćwiczenia

     
   

Ćwiczenie 1

  Zaprojektuj formularz za pomocą którego wprowadzamy dane do obliczenia pierwiastków trójmianu kwadratowego Ax2 + Bx + C = 0. Pomocnicze narzędzia to; napisane makro oraz wzór (szablon) okna dialogowego

Tutaj do pobrania dane do zaprojektowania okna dialogowego.

Zadanie do rozwiązania (zaliczeniowe)

  W oparciu o załączone dane oraz wcześniej opracowaną w Excelu aplikację (temat 5) do rozliczania kosztów wody ciepłej, opracuj aplikację do obliczania kosztów wody ciepłej z obsługą makr, uruchamianych za pomocą przycisków. Wynik działania aplikacji to zestawienie kosztów oraz wielkości nadpłat/niedopłat przypadajacych na lokal. Niżej przykładowe okno aplikacji.

Rys. Okno aplikacji do rozliczania kosztów podgrzania wody.

  • Tutaj do pobrania dane do zbudowania aplikacji »»» ,

Do góry


 

 (C) 2011 - 2018 Wydział Przyrodniczo - Techniczny KPSW. All Rights Reserved