Makra programu Excel - formularze użytkownika

Czasami może być konieczne wielokrotne zbieranie informacji od innych. Excel VBA zapewnia łatwy sposób obsługi tego zadania -UserForm. Jak każdy inny formularz, który wypełniasz, UserForm ułatwia zrozumienie, jakie informacje należy podać. Formularz użytkownika jest przyjazny dla użytkownika, ponieważ dostarczane elementy sterujące nie wymagają objaśnień, aw razie potrzeby towarzyszą im dodatkowe instrukcje.

Główną zaletą UserForm jest to, że możesz zaoszczędzić czas, który poświęcasz na to, co i jak wypełnić informacje.

Tworzenie formularza użytkownika

Aby utworzyć formularz użytkownika, wykonaj następujące czynności -

  • Kliknij kartę DEWELOPER na Wstążce.
  • Kliknij opcję Visual Basic. Otworzy się okno Visual Basic skoroszytu.
  • Kliknij Wstaw,
  • Wybierz UserForm z listy rozwijanej.

UserForm pojawi się po prawej stronie okna.

Zrozumienie UserForm

Zmaksymalizuj okno UserForm.xlsx - UserForm1.

Jesteś teraz w trybie projektowania. Możesz wstawić kontrolki w UserForm i napisać kod dla odpowiednich akcji. Formanty są dostępne w ToolBox. Właściwości UserForm znajdują się w oknie Właściwości. UserForm1 (tytuł UserForm) znajduje się w obszarze Formularze w Eksploratorze projektów.

  • Zmień podpis UserForm na Project Report - Daily w oknie właściwości.
  • Zmień nazwę UserForm na ProjectReport.

Zmiany są odzwierciedlane w UserForm, właściwościach i eksploratorze projektów.

Formanty w ToolBox

Formularz użytkownika będzie miał różne składniki. Kiedy klikniesz na którykolwiek z komponentów, albo otrzymasz instrukcje dotyczące tego, jakie i jak mają być podane informacje, albo opcje (wybory) do wyboru. Wszystko to jest dostarczane za pomocą formantów ActiveX w ToolBox w UserForm.

Program Excel udostępnia dwa typy kontrolek - kontrolki formularzy i kontrolki ActiveX. Musisz zrozumieć różnicę między tymi dwoma typami kontroli.

Kontrolki formularza

Formanty formularza to oryginalne kontrolki programu Excel, które są zgodne ze starszymi wersjami programu Excel, począwszy od wersji programu Excel 5.0. Kontrolki formularza są również przeznaczone do użycia w arkuszach makr XLM.

Możesz uruchamiać makra za pomocą kontrolek formularza. Możesz przypisać istniejące makro do kontrolki albo napisać lub zarejestrować nowe makro. Po kliknięciu kontrolki makro. Wiesz już, jak wstawić przycisk polecenia z kontrolek formularza w arkuszu, aby uruchomić makro. Jednak tych formantów nie można dodać do UserForm.

Formanty ActiveX

Formantów ActiveX można używać w formularzach użytkownika VBA. Formanty ActiveX mają rozbudowane właściwości, których można używać do dostosowywania ich wyglądu, zachowania, czcionek i innych cech.

Masz następujące formanty ActiveX w UserForm ToolBox -

  • Pointer
  • Label
  • TextBox
  • ComboBox
  • ListBox
  • CheckBox
  • OptionButton
  • Frame
  • ToggleButton
  • CommandButton
  • TabStrip
  • MultiPage
  • ScrollBar
  • SpinButton
  • Image

Oprócz tych kontrolek Visual Basic udostępnia funkcję MsgBox, której można używać do wyświetlania komunikatów i / lub monitowania użytkownika o akcję.

W następnych kilku sekcjach poznasz te elementy sterujące i MsgBox. Następnie będziesz mógł wybrać, które z tych kontrolek są wymagane do zaprojektowania formularza użytkownika.

Etykieta

Etykiet można używać w celu identyfikacji, wyświetlając opisowy tekst, taki jak tytuły, podpisy i / lub krótkie instrukcje.

Example

Pole tekstowe

Możesz użyć TextBox, który jest prostokątnym polem, do wpisywania, przeglądania lub edycji tekstu. Możesz również użyć TextBox jako statycznego pola tekstowego, które przedstawia informacje tylko do odczytu.

Example

Skrzynka na listy

Możesz użyć pola listy, aby wyświetlić listę jednego lub więcej elementów tekstu, z których użytkownik może wybierać. Użyj pola listy, aby wyświetlić dużą liczbę opcji do wyboru, które różnią się liczbą lub zawartością.

  • Wstaw ListBox w UserForm.
  • Kliknij ListBox.
  • Wpisz ProjectCodes dla Name w oknie Właściwości w ListBox.

Istnieją trzy rodzaje pól listy -

  • Single-selection List box- Pole listy z pojedynczym wyborem umożliwia tylko jeden wybór. W tym przypadku pole listy przypomina grupę przycisków opcji, z tym wyjątkiem, że pole listy może wydajniej obsługiwać dużą liczbę elementów.

  • Multiple selection List Box - Pole listy wielokrotnego wyboru umożliwia jeden wybór lub ciągłe (sąsiadujące) wybory.

  • Extended-selection List Box - Pole listy rozszerzonego wyboru umożliwia jeden wybór, ciągłe wybory i nieciągłe (lub niepołączone) wybory.

W oknie Właściwości można wybrać jeden z tych typów pól listy.

  • Kliknij prawym przyciskiem myszy UserForm.
  • Wybierz Wyświetl kod z listy rozwijanej. Otworzy się okno kodu UserForm.
  • Kliknij opcję Inicjalizuj w prawym górnym polu okna kodu.
  • Wpisz następujące polecenie w polu Private Sub UserForm_Initialize ().
ProjectCodes.List = Array ("Proj2016-1", "Proj2016-2", "Proj2016-3", "Proj20164", "Proj2016-5")
  • Kliknij kartę Uruchom na Wstążce.
  • Wybierz Run Sub / UserForm z listy rozwijanej.

Następnie możesz napisać kod dla akcji po wybraniu elementu z listy. W przeciwnym razie możesz po prostu wyświetlić wybrany tekst, co ma miejsce w przypadku wypełnienia kodu projektu w raporcie.

ComboBox

Możesz użyć ComboBoxłączący pole tekstowe z polem listy w celu utworzenia pola listy rozwijanej. Pole kombi jest bardziej zwarte niż pole listy, ale wymaga od użytkownika kliknięcia strzałki w dół, aby wyświetlić listę elementów. Użyj pola kombi, aby wybrać tylko jedną pozycję z listy.

  • Wstaw ComboBox w UserForm.
  • Kliknij ComboBox.
  • Wpisz ProjectCodes2 w polu Nazwa w oknie Właściwości w ComboBox.
  • Kliknij prawym przyciskiem myszy UserForm.
  • Wybierz Wyświetl kod z listy rozwijanej.
  • Otworzy się okno kodu UserForm.

Wpisz, jak pokazano poniżej.

ProjectCodes2.List = Array ("Proj2016-1", "Proj2016-2", "Proj2016-3", "Proj20164", "Proj2016-5")
  • Kliknij kartę Uruchom na Wstążce.
  • Wybierz Run Sub / UserForm z listy rozwijanej.

Kliknij strzałkę w dół, aby wyświetlić listę elementów.

Kliknij żądaną pozycję, na przykład Project2016-5. Wybrana opcja zostanie wyświetlona w polu kombi.

CheckBox

Za pomocą pól wyboru można wybrać jedną lub więcej opcji, które są wyświetlane po kliknięciu pól. Opcje będą miały etykiety i możesz wyraźnie zwizualizować wybrane opcje.

Pole wyboru może mieć dwa stany -

  • Wybrane (włączone), oznaczone haczykiem w polu
  • Wyczyszczone (wyłączone), oznaczone przezroczystym prostokątem

Możesz użyć pól wyboru do wyboru opcji w polu kombi, aby zaoszczędzić miejsce. W takim przypadku pole wyboru może mieć również trzeci stan -

  • Mieszany, czyli kombinacja stanów włączenia i wyłączenia, oznaczonych czarną kropką w ramce. Zostanie to wyświetlone, aby wskazać wiele wyborów w polu kombi z polami wyboru.

  • Wstaw pola wyboru w UserForm, jak pokazano poniżej.

  • Kliknij kartę Uruchom na Wstążce.
  • Wybierz Run Sub / UserForm z listy rozwijanej.
  • Kliknij pola obok wybranych opcji.

OptionButton

Możesz użyć przycisku opcji, znanego również jako przycisk opcji, aby dokonać pojedynczego wyboru w ograniczonym zestawie wzajemnie wykluczających się opcji. Przycisk opcji znajduje się zwykle w polu grupy lub ramce.

Przycisk opcji jest reprezentowany przez małe kółko. Przycisk opcji może mieć jeden z następujących dwóch stanów -

  • Wybrane (włączone), oznaczone kropką w kółku
  • Wyczyszczone (wyłączone), oznaczone spacją

Rama

Możesz użyć kontrolki ramki, nazywanej również polem grupy, aby zgrupować powiązane kontrolki w jedną jednostkę wizualną. Zazwyczaj przyciski opcji, pola wyboru lub ściśle powiązana zawartość są zgrupowane w kontrolce ramki.

Kontrolka ramki jest reprezentowana przez prostokątny obiekt z opcjonalną etykietą.

  • Wstaw ramkę z podpisem „Wybór”.

  • Wstaw dwa przyciski opcji z podpisami „Tak” i „Nie” w kontrolce ramki. Opcje Tak i Nie wykluczają się wzajemnie.

  • Kliknij kartę Uruchom na Wstążce.
  • Wybierz Run Sub / UserForm z listy rozwijanej.
  • Kliknij wybraną opcję.

ToggleButton

Możesz użyć przycisku przełącznika, aby wskazać stan, taki jak Tak lub Nie, lub tryb, taki jak włączony lub wyłączony. Po kliknięciu przycisk zmienia się między aktywnym i wyłączonym stanem.

Wstaw przycisk przełączania w UserForm, jak pokazano poniżej -

  • Kliknij kartę Uruchom na Wstążce.

  • Wybierz Run Sub / UserForm z listy rozwijanej. Przycisk przełącznika będzie domyślnie włączony.

Kliknij przycisk przełączania. Przycisk przełączania zostanie wyłączony.

Jeśli ponownie klikniesz przycisk przełącznika, zostanie włączony.

CommandButton

Możesz użyć przycisku polecenia, aby uruchomić makro, które wykonuje pewne akcje, gdy użytkownik je kliknie. Wiesz już, jak używać przycisku polecenia w arkuszu do uruchamiania makra.

Przycisk polecenia jest również nazywany przyciskiem. Wstaw przycisk polecenia w UserForm, jak pokazano poniżej -

  • Kliknij prawym przyciskiem myszy przycisk polecenia.
  • Wpisz następujący kod w podrzędnym Commandbutton1_click ().
ProjectCodes2.DropDown
  • Kliknij kartę Uruchom na Wstążce.
  • Wybierz Run Sub / UserForm z listy rozwijanej.

Kliknij przycisk polecenia. Otworzy się lista rozwijana pola kombi, ponieważ jest to akcja, którą napisałeś w kodzie.

TabStrip

W UserForm można wstawić pasek kart przypominający karty programu Excel.

Pasek przewijania

Za pomocą paska przewijania można przewijać zakres wartości, klikając strzałki przewijania lub przeciągając pole przewijania.

Wstaw pasek przewijania do UserForm, rysując go w wymaganym miejscu i dostosuj długość paska przewijania.

  • Kliknij prawym przyciskiem myszy pasek przewijania.
  • Wybierz Wyświetl kod z listy rozwijanej. Otworzy się okno Kod.
  • Dodaj następujący wiersz w sub ScrollBar1_Scroll ().
TextBox2.Text = "Scrolling Values"
  • Kliknij kartę Uruchom na Wstążce.
  • Wybierz Run Sub / UserForm z listy rozwijanej.

Przeciągnij pole przewijania. Tekst - wartości przewijania zostaną wyświetlone w polu tekstowym zgodnie z określeniem jako czynność przewijania paska przewijania.

MsgBox ()

Możesz użyć funkcji MsgBox (), aby wyświetlić komunikat, gdy coś klikniesz. Może to być wskazówka, informacja, ostrzeżenie lub alert o błędzie.

Na przykład, możesz wyświetlić komunikat, że wartości są przewijane, gdy zaczynasz przewijać pole przewijania.

Wyświetla się ikona okna wiadomości

Możesz użyć ikon okienek wiadomości, które przedstawiają konkretną wiadomość. Masz wiele ikon okienek wiadomości, które odpowiadają Twoim celom -

  • Wpisz następujący kod w obszarze ScrollBar1_scroll.
MsgBox "Select Ok or Cancel", vbOKCancel, "OK  - Cancel Message" 
MsgBox "It's an Error!", vbCritical, "Run time result" 
MsgBox "Why this value", vbQuestion, "Run time result" 
MsgBox "Value Been for a Long Time", vbInformation, "Run time result" 
MsgBox "Oh Is it so", vbExclamation, "Run time result"
  • Kliknij kartę Uruchom na Wstążce.
  • Wybierz Run Sub / UserForm z listy rozwijanej.
  • Przeciągnij pole przewijania.

Otrzymasz kolejno następujące okna komunikatów.

Projektowanie formularza użytkownika

Teraz znasz różne kontrolki, których możesz użyć w UserForm. Wybierz kontrolki, pogrupuj je w razie potrzeby i ułóż je w UserForm zgodnie z jakąś znaczącą sekwencją. Napisz wymagane akcje jako kod odpowiadający odpowiednim kontrolkom.

Zapoznaj się z samouczkiem VBA w tej bibliotece samouczków, aby zapoznać się z przykładem UserForm.