Formularze użytkownika VBA
Userform jest bardzo ważną częścią programowania w VBA. Pozwala zbudować profesjonalnie wyglądający interfejs użytkownika do komunikacji z użytkownikami aplikacji VBA. Pozwala także całkowicie kontrolować użytkownika w tym, co robi w skoroszycie.
Możesz oczywiście użyć komórek arkusza roboczego, aby zaakceptować parametry od użytkownika, ale formularz użytkownika zapewnia znacznie lepsze wrażenia użytkownika.
Rozszerzając wysokość i szerokość formularza użytkownika do rozmiaru okna Excela, możesz sprawić, że Twoja aplikacja będzie wyglądać jak normalna aplikacja Windows, a użytkownik będzie całkowicie nieświadomy, że używa Excela jako hosta.
Dostępne są wszystkie normalne kontrolki systemu Windows, takie jak listy rozwijane, pola listy i pola wyboru. Masz również szeroki zakres metod, zdarzeń i właściwości, których możesz użyć, aby poprawić wrażenia użytkownika.
Ważną kwestią jest to, że podczas wyświetlania formularza użytkownika, który jest wbudowany lub jest modalny, nie można edytować kodu w VBE ani uzyskać dostępu do żadnej funkcji programu Excel. Dopiero gdy formularz zostanie zamknięty, w Twoim kodzie pojawi się kursor.
Wbudowane formularze użytkownika VBA
Excel VBA jako kilka wbudowanych formularzy, które można wykorzystać do komunikacji z użytkownikiem.
Skrzynka pocztowa
Jest to najczęściej używana forma w VBA. Po prostu wyświetla wiadomość tekstową, prawdopodobnie informującą użytkownika, że wprowadził nieprawidłowe dane wejściowe lub że proces VBA zakończył działanie. W swojej najprostszej formie wyświetlają ciąg tekstowy, ale można również dodać ikonę, taką jak pytanie lub wykrzyknik, i nadać okienku wiadomości inny tytuł.
To jest podstawowy przykład. Do kliknięcia jest tylko jeden przycisk, a pasek tytułu mówi „Microsoft Excel”
Kod do tworzenia tego jest bardzo prosty:
123 | Pole podtestuMsg()MsgBox "Ten proces został zakończony"Napis końcowy |
Możesz użyć różnych parametrów, aby dodać przyciski, ikony i zmienić pasek tytułu
123456789 | Pole podtestuMsg()Dim Ret jako wariantRet = MsgBox("Czy na pewno?", vbYesNo Lub vbQuestion, "Moja aplikacja")Jeśli Ret = vbTak Wtedy„Twój proces tutaj”W przeciwnym razieWyjście SubZakończ, jeśliNapis końcowy |
Ten kod dodaje przyciski „Tak” i „Nie” oraz ikonę znaku zapytania i ustawia pasek tytułu. Pamiętaj, że możesz łączyć style okna wiadomości za pomocą operatora „Or”
Ponadto, gdy zwracasz wartość z okna komunikatu, zwracana zmienna musi być zdefiniowana jako wariant lub vbMsgBoxResult, a instrukcja w oknie komunikatu musi zawierać nawiasy kwadratowe,
Pole wprowadzania
W VBA wbudowano bardzo proste pole wprowadzania, chociaż jest ono dość restrykcyjne w tym, co można z nim zrobić. Jeśli możesz, lepiej zaprojektuj niestandardowy formularz użytkownika
12345 | SubTestInputBox()Dim Ret As StringRet = InputBox("Wpisz swoje imię", "Wpisz imię")MsgBox RetNapis końcowy |
Możesz również dodać domyślną wartość dla danych wejściowych do parametrów.
Pobierz nazwę otwartego pliku
Pozwala to na wykorzystanie okna dialogowego plików systemu Windows w kodzie VBA. Wygląda bardzo imponująco dla użytkownika, gdy jest uruchomiony, ale jest bardzo prosty do włączenia i automatycznie otrzymujesz z nim wszystkie funkcje okna dialogowego plików.
Kod ogranicza użytkownika do wyświetlania tylko plików Excel. Niestety, mogli wpisać nazwę pliku inną niż Excel w polu Nazwa pliku i kliknąć przycisk Otwórz, więc będziesz potrzebował kodu, aby upewnić się, że wybrano plik Excel.
Użyj polecenia „ChDir”, aby zmienić domyślny katalog na własne wymagania przed wyświetleniem okna dialogowego pliku
Zwróć uwagę na użycie symboli wieloznacznych w parametrze FileFilter. Pliki Excel do wyświetlenia mogą pochodzić z wersji sprzed 2007 r., zawierać makra lub być binarne, więc filtr to „.xls*”.
123456 | Podrzędne okno dialogowe pliku testowego()Przyciemnij mój plik jako ciągChKatalog "C:\temp"MyFile = Application.GetOpenFilename("Pliki Excela (*.xls*),*.xls*", , "Wybierz plik")MsgBox Mój plikNapis końcowy |
W razie potrzeby możesz zezwolić użytkownikowi na wybranie kilku plików naraz za pomocą parametru MultiSelect. Wartość domyślna to False (tylko jeden wybór)
12345678 | Podrzędne okno dialogowe pliku testowego()Przyciemnij MyFile jako wariantKatalog Ch "C:\temp"MyFile = Application.GetOpenFilename("Pliki Excela (*.xls*),*.xls*", , "Wybierz plik", , Prawda)Dla każdego fw MyFileMsgBox fNastępny fNapis końcowy |
Użytkownik przytrzymuje klawisz Shift w oknie dialogowym plików, aby wybrać wiele plików.
Pętla For Each wyświetla pełną ścieżkę i nazwę każdego wybranego pliku
Domyślne okna dialogowe programu Excel
W programie Excel VBA dostępna jest kolekcja okien dialogowych, której można użyć do wyświetlenia dowolnego standardowego okna dialogowego programu Excel. Minusem jest to, że nie można uzyskać dostępu do parametrów wybranych przez użytkownika ani zmienić wyglądu okna dialogowego, ale te okna dialogowe mogą być przydatne w kierowaniu użytkownika do standardowej funkcji programu Excel i umożliwianiu mu wyboru określonych parametrów w oknie dialogowym.
Dobrym tego przykładem jest wyświetlenie okna dialogowego „Drukuj” z VBA:
123 | Podrzędne okno dialogowe wydruku testowego()Application.Dialogs(xlDialogPrint).ShowNapis końcowy |
Po otwarciu nawiasów w kolekcji Dialogi zobaczysz listę ogromnej liczby stałych dla wbudowanych okien dialogowych. Warto poeksperymentować z niektórymi z tych opcji w swoim kodzie
Wstawianie nowego formularza użytkownika
Możesz zaprojektować własne niestandardowe formularze użytkownika, wstawiając formularz użytkownika do Edytora Visual Basic (VBE)
Robisz to wybierając Wstaw | UserForm na pasku menu VBE.
Kliknij „UserForm”, a pojawi się nowy pusty formularz gotowy do rozwijania
Sam formularz (pokazany jako „UserForm1”) wygląda na dość mały, ale możesz użyć uchwytów wokół niego, aby powiększyć lub zmniejszyć go, przeciągając uchwyty kursorem.
W lewym dolnym rogu ekranu znajduje się okno właściwości. Ponieważ nacisk kładziony jest bezpośrednio na sam formularz, zawiera on wszystkie właściwości formularza specyficzne dla tego formularza.
Zauważ, że kiedy zaczniesz dodawać kontrolki, takie jak pola kombi i przyciski poleceń, wszystkie te kontrolki mają swój własny zestaw właściwości i mogą się bardzo różnić w tym, co możesz zrobić z każdym z nich.
Widoczne obecnie właściwości dotyczą tylko samego formularza.
Właściwość „Nazwa” to nazwa używana do zdefiniowania obiektu formularza w kodzie VBA. Możesz chcieć użyć czegoś bardziej znaczącego dla nazwy obiektu, aby podczas przeglądania kodu było oczywiste, który formularz jest używany.
Właściwość „Nazwa” zostanie również odzwierciedlona w oknie „Eksplorator projektu” w lewym górnym rogu ekranu
Będziesz chciał zmienić pasek tytułu formularza na coś innego niż „UserForm1” i możesz to zrobić, wpisując nowy tekst we właściwości „Caption”
Możesz wprowadzić ogromną liczbę zmian w sposobie postrzegania formularza przez użytkownika. Możesz zmieniać kolory, dodawać zdjęcia np. logo firmy, zmień pozycję za pomocą „lewo” i „góra”, zmień rozmiar za pomocą „wysokość” i „szerokość”, zmień wskaźnik myszy i wiele więcej
Wszystkie te właściwości można również zmienić programowo dla dowolnej kontrolki dodanej do formularza. Na przykład użytkownik może wybrać z kontrolki pola listy i możesz chcieć wyłączyć lub ukryć inne kontrolki na podstawie wyboru użytkownika
Korzystanie z Przybornika
Zauważysz, że po kliknięciu samego formularza pojawia się wyskakujące okienko z przybornikiem. Jeśli klikniesz gdziekolwiek indziej, np. okienku właściwości, zniknie, ale pojawi się ponownie po kliknięciu formularza.
Zestaw narzędzi zapewnia prawdziwą mechanikę projektowania formularza. Dzięki temu można dodać do formularza normalne kontrolki systemu Windows, które znają użytkownicy.
Zauważysz, że na formularzu znajduje się sieć kropek. Jest to „snapgrid”, dzięki czemu po dodaniu kontrolki do formularza automatycznie wyrówna pozycję do rzędów i kolumn kropek. To ogromnie pomaga w dopasowaniu kontrolek, aby nie uzyskać poszarpanego wyglądu kontrolek
Jeśli klikniesz kontrolkę, a następnie zdecydujesz się jej nie używać, kliknięcie ikony „Strzałki” w lewym górnym rogu przybornika spowoduje powrót kursora do normalnego.
Możesz dodać dodatkowe kontrolki do przybornika, używając Narzędzia | Dodatkowe elementy sterujące w menu VBE. Dostępnych jest ich wiele, ale w zależności od wersji Windows i Excela nie zawsze działają, więc często wymagane są pewne eksperymenty.
Ponadto użytkownicy mogą nie mieć dostępu do niektórych z tych dodatkowych elementów sterujących lub korzystać ze starszych wersji systemu Windows i programu Excel, co może powodować problemy. W dużych organizacjach, zwłaszcza jeśli są one globalne, nie ma czegoś takiego jak standardowo zbudowany komputer, na którym można polegać!
Dodawanie przycisku wyjścia do formularza
Przycisk Polecenie można łatwo dodać do formularza. Wygląda to tak samo, jak przyciski widoczne w innych formularzach systemu Windows, zwykle jako przycisk „OK” lub „Anuluj”.
Kliknij ikonę przycisku polecenia w przyborniku. Jest to druga ikona od lewej w dolnym rzędzie ikon. Zobacz obrazek powyżej. Ma na sobie litery „ab”.
Możesz przytrzymać przycisk myszy i przeciągnąć kontrolkę do formularza lub przesunąć kursor do formularza, gdzie zmieni się on w kursor „krzyżyk” i będziesz mógł ustawić i zmienić rozmiar przycisku
Jeśli przeciągniesz kontrolkę do formularza, otrzymasz domyślny rozmiar przycisku. Przesunięcie kursora do formularza pozwala zmienić rozmiar przycisku, przeciągając kursor „krzyżyk” po formularzu
Twój formularz będzie teraz wyglądał tak:
Przycisk będzie miał domyślny tekst jako podpis, ale będziesz chciał go zmienić zgodnie z własnymi wymaganiami. Możesz kliknąć tekst w przycisku („CommandButton1”), co pozwoli ci bezpośrednio edytować podpis.
Możesz to również zmienić w oknie właściwości (lewy dolny róg ekranu). Zobaczysz właściwość o nazwie „Podpis” i możesz edytować jej wartość. Zmień to na „Wyjdź”
Podobnie jak w przypadku właściwości formularza, właściwość „Nazwa” określa nazwę, która będzie używana w kodzie VBA. Możesz użyć w kodzie nazwy, która jest bardziej znacząca i oczywista. Możesz to wpisać we właściwości „Nazwa”.
Możesz zmienić położenie przycisku, przeciągając go na formularzu, a możesz zmienić jego rozmiar, klikając uchwyty przycisku (białe kwadraty) i przeciągając uchwyty, aby był większy lub mniejszy
Możesz także zmienić rozmiar przycisku, zmieniając wartości wysokości i szerokości w oknie właściwości
Możesz wyświetlić swój formularz w programie Excel, klikając zielony trójkąt na pasku narzędzi VBE lub naciskając klawisz F5
Możesz wywołać swój formularz z kodu VBA w module za pomocą metody „Pokaż”
123 | Sub PokażForm()UserForm1.PokażNapis końcowy |
Formularz użytkownika jest w rzeczywistości obiektem globalnym i można go wywołać z dowolnego miejsca w kodzie
Obecnie przycisk polecenia nic nie robi, ponieważ nie ma za nim kodu VBA. Musisz to napisać sam! Jedyne, co może się w tej chwili wydarzyć, to kliknięcie „Zamknij” X w prawym górnym rogu formularza.
Aby dodać kod VBA, kliknij dwukrotnie przycisk w formularzu
Spowoduje to przejście do normalnego okna kodu VBA i pokaże domyślne zdarzenie kliknięcia.
Używasz metody „Ukryj”, aby zamknąć formularz, a także możesz dodać dowolny inny kod, taki jak okno wiadomości, aby potwierdzić użytkownikowi, co się stało.
Zwróć uwagę, że okno kodu ma u góry dwa menu rozwijane. Pierwsza pozwala wybrać kontrolki formularza, a druga pokazuje wszystkie zdarzenia, które są dostępne do dodania kodu. Oczywistym dla przycisku jest zdarzenie „Kliknięcie”, ale są też inne, takie jak „Podwójne kliknięcie” lub „Ruch myszą”
Kiedy teraz uruchamiasz formularz, przycisk faktycznie coś robi. Formularz znika i pojawia się komunikat potwierdzający zamknięcie formularza
Możesz oczywiście powiększyć kod wyjścia. Możesz chcieć wyświetlić inny formularz lub podjąć działania na parametrach wprowadzonych przez użytkownika w formularzu
Dodawanie kontrolki etykiety do formularza
Kontrolki etykiet służą do podpowiadania użytkownikowi, jakie dane muszą wprowadzić do kontrolki w formularzu, np. pole tekstowe, menu rozwijane itp. Etykieta domyślnie nie ma obramowań, ale w razie potrzeby można je dodać w oknie właściwości.
Jako kontrolka są one odczytywane tylko dla użytkownika i są po prostu sposobem na umieszczenie tekstu w formularzu, niezależnie od tego, czy jest to pogrubiony nagłówek, czy instrukcja, co wpisać lub wybrać.
Aby dodać etykietę, kliknij ikonę „A” w przyborniku (górny wiersz, druga od lewej) i kliknij ją dwukrotnie lub przesuń kursor do formularza i wybierz pozycję i rozmiar.
Używając właściwości „Caption” w oknie właściwości lub klikając kontrolkę etykiety, możesz wprowadzić tekst dla kontrolki etykiety.
Zwróć uwagę, że tekst zostanie zawinięty zgodnie z rozmiarem kontrolki etykiety, a jeśli ciąg tekstu jest zbyt długi, nie pojawi się w całości w formularzu, więc musisz uważać na rozmiar kontrolki etykiety.
Korzystając z okna właściwości, możesz zmienić wygląd kontrolki etykiety, z różnymi kolorami, czcionkami, stylem tyłu, np. jeśli nakłada się na obraz i chcesz, aby był przezroczysty
Nie trzeba tworzyć kodu dla kontrolki etykiety. Głównym celem jest dodanie tekstu do formularza, aby użytkownik mógł zobaczyć, jak działają wszystkie inne kontrolki
Dodawanie kontrolki tekstu do formularza
Kontrolka tekstowa umożliwia użytkownikowi wprowadzanie tekstu, np. wprowadzanie nazwy lub komentarzy
Kontrolka tekstu jest dodawana z przybornika, klikając ikonę kontrolki tekstu (górny wiersz, trzeci od lewej) i dwukrotnie klikając lub przeciągając kontrolkę na miejsce w formularzu.
Kontrolka tekstu jest często mylona z kontrolką etykiety, ale kontrolka tekstu służy do wprowadzania danych przez użytkownika
Tekst „Wprowadź swoje imię” jest kontrolką etykiety, jak opisano wcześniej, a teraz mamy białe pole tekstowe, w którym użytkownik może coś wpisać
Korzystając z okna właściwości, możesz zmienić kolory, czcionki, efekty specjalne lub użyć znaków hasła w polu tekstowym. Dostępna jest ogromna elastyczność
Bardzo ważną właściwością pola tekstowego jest właściwość „MultiLine”. Jeśli chcesz, aby użytkownik wprowadził dużą ilość tekstu do kontrolki tekstu, np. komentarze, wówczas właściwość ‘MultiLine’ musi być ustawiona na True.
Domyślnym ustawieniem jest False, co oznacza, że niezależnie od tego, jak duże utworzysz pole tekstowe, wprowadzony tekst pozostanie w jednej ciągłej linii i będzie przewijał się poza pole tekstowe. Nie zawija się w pudełku.
Nie ma wyskakującego okienka po kliknięciu prawym przyciskiem myszy pola tekstowego, gdy jest ono uruchomione, ale CTRL + V będzie działać dla Wklej, a CTRL + C będzie działać dla Wytnij, jeśli użytkownik chce wyciąć i wkleić tekst do i z innych Aplikacje
Ponownie, musisz napisać własny kod, aby poradzić sobie z tekstem wpisanym przez użytkownika. Możesz przenieść go do komórki w arkuszu
Możesz dodać ten kod do zdarzenia „Zmień” w polu tekstowym
123 | Prywatne podrzędne pole tekstowe1_Zmień()Arkusze("Arkusz1").Range("A1").Value = Pole tekstowe1.WartośćNapis końcowy |
Możesz także umieścićkod weryfikacyjny, aby sprawdzićczy użytkownik nie wpisuje śmieci co będzie miało katastrofalny wpływ na twoją aplikację
Zdarzenie change nie jest do tego dobre, ponieważ jest wywoływane za każdym razem, gdy użytkownik wpisze nowy znak. Użytkownik może zacząć wpisywać ciąg tekstu i od razu stwierdzić, że złamał Twoje zasady weryfikacji, zanim uzupełnił poprawny tekst.
Korzystasz ze zdarzenia „Wyjście”. Jest to wyzwalane, gdy użytkownik przenosi fokus do innej kontrolki w formularzu, co oznacza, że użytkownik nie wprowadza już danych.
123456 | Private Sub TextBox1_Exit (ByVal Anuluj jako MSForms.ReturnBoolean)Jeśli IsNull(TextBox1.Value) lub Len(TextBox1.Value) < 4 WtedyMsgBox "Nazwa jest nieprawidłowa", vbCriticalTextBox1.SetFocusZakończ, jeśliNapis końcowy |
Gdy użytkownik kliknie inną kontrolkę w formularzu, ten kod sprawdza wartość null w polu tekstowym lub mniej niż 4 znaki. Jeśli test jest prawdziwy, zostanie wyświetlone okno komunikatu z ikoną krytyczną informujące użytkownika, że nazwa jest nieprawidłowa, a fokus zostanie przeniesiony z powrotem do niewłaściwego pola tekstowego, aby użytkownik mógł je poprawić.
Należy pamiętać, że nawet jeśli użytkownik kliknie przycisk Zakończ, zdarzenie wyjścia z pola tekstowego zostanie wykonane jako pierwsze, co zapobiega wyjściu użytkownika bez poprawiania danych wejściowych
Zainicjuj i aktywuj zdarzenia w formularzu
Kiedy VBA po raz pierwszy tworzy i buduje formularz, wyzwala zdarzenie „Zainicjuj”. Jednak ponieważ formularz jest również wyświetlany w tym momencie, wyzwala również zdarzenie „Aktywuj”. Od tego momentu za każdym razem, gdy formularz pojawia się przy użyciu metody „Pokaż” lub pojawia się jako część hierarchii formularzy, wyzwalane jest zdarzenie „Aktywuj”, ale nie zdarzenie „Zainicjuj”
Zdarzenie „Zainicjuj” zdarza się tylko raz, ale zdarzenie „Aktywuj” może się zdarzyć wiele razy
W formularzu możesz ustawić wartości domyślne z arkusza roboczego w kontrolkach wejściowych, np. pola tekstowe, aby pojawiły się one przy pierwszym użyciu formularza, ale użytkownik może nadpisać wartości domyślne, a te nowe wartości pozostaną na miejscu, dopóki kod jest uruchomiony
12345678 | Prywatna Sub UserForm_Initialize()TextBox1.Value = Arkusze("Arkusz1").Range("A1").ValueJeśli TextBox1.Value="" WtedyTextBox1.Visible=FałszW przeciwnym razieTextBox1.Visible=PrawdaZakończ, jeśliNapis końcowy |
Zdarzenie „Zainicjuj” można znaleźć w drugim menu rozwijanym w oknie kodu, a nazwę formularza użytkownika w pierwszym menu rozwijanym.
Ten kod użyje wartości w komórce A1 w „Arkuszu1” jako wartości domyślnej w polu tekstowym utworzonym wcześniej w tym artykule. Gdy formularz pojawi się po raz pierwszy, pojawi się wartość domyślna. Użytkownik może wtedy nadpisać wartość domyślną i zostanie ona zachowana. Jeśli komórka A1 jest pusta, pole tekstowe zostanie ukryte, w przeciwnym razie będzie widoczne
Wartość domyślna może być również zakodowana na stałe:
1 | TextBox1.Value = „Jan Kowalski” |
Możesz również chcieć upewnić się, że wartości wprowadzone przez użytkownika pojawiają się ponownie za każdym razem, gdy użytkownik uruchomi ten formularz w tej konkretnej sesji programu Excel. Kod VBA może łatwo zapisać wartości z powrotem do komórek w skoroszycie za pomocą zdarzenia „Wyjdź” w kontrolce i ponownie je przywrócić za pomocą zdarzenia „Aktywuj” w formularzu
123 | Private Sub TextBox1_Exit (ByVal Anuluj jako MSForms.ReturnBoolean)Arkusze("Arkusz1").Range("A10").Value = TextBox1.ValueNapis końcowy |
123 | Prywatna Sub UserForm_Activate()TextBox1.Value = Arkusze("Arkusz1").Range("A10").ValueNapis końcowy |
Ten kod sprawi, że wartości użytkownika będą trwałe, a także zapewni, że zostaną one zapisane z resztą skoroszytu
Zapisywanie aplikacji i formularzy
Po zapisaniu skoroszytu programu Excel zawierającego formularze wszystkie formularze i ich kod VBA również zostaną zapisane. Jednak wszelkie wartości, które formularze przechowują podczas ich wyświetlania, zostaną utracone.
Ważne jest, aby napisać kod, tak aby po wyjściu użytkownika ze skoroszytu lub formularza wartości były zapisywane z powrotem do komórek w skoroszycie i w ten sposób były zachowywane.
Formy modalne i niemodalne
Sam formularz ma właściwość „Pokaż modalny”. Jest to domyślnie ustawione na True, ale można je zmienić na False (niemodalne)
Jeśli formularz jest modalny, oznacza to, że podczas wyświetlania formularza nie można uzyskać dostępu do żadnej funkcji programu Excel. Obejmuje to Twój kod w oknie VBE. Możesz zobaczyć kod, ale kursor i klawiatura są wyłączone.
W formularzu niemodalnym można uzyskać dostęp do wszystkich funkcji programu Excel, w tym okna VBE, podczas wyświetlania formularza.
Jest to ważne z punktu widzenia kontrolowania zachowań użytkowników
Zamknięcie formularza
Bez względu na to, jak dobrze napiszesz swój kod, aby zmusić użytkownika do przejścia określonej trasy, mogą go łatwo ominąć, klikając „Zamknij” X w prawym górnym rogu formularza
Możesz temu zapobiec, modyfikując zdarzenie „QueryClose” formularza
1234 | Private Sub UserForm_QueryClose (Anuluj jako Integer, CloseMode jako Integer)Anuluj = PrawdaMsgBox "Ta akcja jest wyłączona"Napis końcowy |
Zdarzenie „QueryClose” jest wyzwalane, gdy użytkownik kliknie „Zamknij” X formularza. Ten kod anuluje akcję, więc użytkownik jest zmuszony użyć przycisku „Wyjdź” i kodu, który za nim kryjesz.
Włączanie i wyłączanie kontroli
Wszystkie kontrolki w formularzu mają właściwość o nazwie „Włączone”, która jest ustawiona na wartość Prawda lub Fałsz. Jeśli jest to Fałsz, kontrolka jest wyszarzona. Można go zobaczyć, ale nie można go użyć.
Istnieje również właściwość o nazwie „Widoczny”, która ponownie jest ustawiona na Prawda lub Fałsz.
Możesz napisać kod, który sprawi, że określona kontrolka stanie się bezużyteczna lub całkowicie niewidoczna dla użytkownika. Za pomocą oświadczenia „jeśli” możesz wybrać okoliczności, w których musisz to zrobić
Na przykład możesz początkowo wyłączyć przycisk „Wyjdź”, dopóki użytkownik nie wprowadzi wartości w polu TextBox1 (nazwa)
123 | Prywatna Sub UserForm_Initialize()CommandButton1.Enabled = FałszNapis końcowy |
1234567 | Prywatne podrzędne pole tekstowe1_Zmień()Jeśli Len(TextBox1.Value) > 0 WtedyCommandButton1.Enabled = PrawdaW przeciwnym razieCommandButton1.Enabled = FałszZakończ, jeśliNapis końcowy |
Ten kod używa zdarzenia „Zainicjuj” formularza, aby wyłączyć przycisk wyjścia (przycisk polecenia 1), gdy formularz pojawia się po raz pierwszy, a następnie używa zdarzenia „Zmień” w polu TextBox1 (nazwa), aby włączyć przycisk Zakończ, jeśli coś zostało wpisane lub wyłączone jeśli pole jest puste.
Zdarzenie „Zmiana” jest wyzwalane za każdym razem, gdy nowy znak zostanie wpisany lub usunięty z pola tekstowego. Jeśli użytkownik spróbuje wprowadzić tekst, aby włączyć przycisk, a następnie usunie cały tekst, przycisk zostanie natychmiast wyłączony