formularz do wycen

UserForm – własny formularz w Excelu

UserForm czyli formularz użytkownika

UserForm to mechanizm, który pozwala na zaprojektowanie własnego formularza. Może on zawierać wiele elementów takich jak pole tekstowe, przycisk wyboru, lista rozwijana itp.

Stworzenie takiego formularza odbywa się z poziomu edytora VBA (można użyć skrótu Alt + F11), gdzie poprzez menu kontekstowe dla projektu, albo zakładkę Insert dodaje się nowy UserForm.

dodanie userform

Po dwukrotnym kliknięciu w nowo utworzony element pokazuje się pusty formularz. Można go uruchomić z poziomu edytora VBA używając skrótu F5, albo przyciskając na wstążce zieloną strzałkę (Run Sub/UserForm) na pasku narzędzi. Aby zamknąć formularz wystarczy przycisnąć krzyżyk w jego prawym górnym rogu.

pusty userform

Modyfikacja UserForm

Przyszedł czas na modyfikację formularza. Po pierwsze można zmieniać jego rozmiar przez złapanie formularza za krawędź i przesuwanie jego granic. Pozostałe parametry formularza zmieniać można za pomocą okna Properties.

własności formularza

Na początek wystarczy mi zmienić własność Caption, która odpowiada za wyświetlanie nazwy formularza w lewym górnym rogu, oraz (Name), czyli kodową nazwę formularza za pomocą której będę się do niego odnosić.

nazwy userform

Do formularza trzeba dodać jego elementy, które pozwolą użytkownikowi na wprowadzanie danych. Najpopularniejszą metodą wprowadzania danych jest ich wpisanie, więc dodam pole tekstowe (TextBox). Kiedy UserForm jest aktywny wyświetla się tzw. Toolbox, który zawiera dostępne kontrolki. Jeśli Toolbox się nie wyświetla to w zakładce View należy go aktywować. Wybieram pole tekstowe i rozciągam do oczekiwanego rozmiaru na polu UserForm.

textbox userform

TextBox jest osobnym obiektem, który ma swoje właściwości, więc po jego zaznaczeniu w oknie Properties pojawiają się nowe parametry. Zamieniam jego (Name) na tbNazwa, aby móc się posłużyć zawartością pola tekstowego do wstawienia jej w komórce arkusza.

TextBox nie posiada właściwości Caption, więc dodaję etykietę z informacją dla użytkownika o tym jakiego rodzaju wartość ma zostać wprowadzona. Etykieta to Label.

userform label

Po wprowadzeniu parametru Caption widać, że tekst jest bardzo mały, dlatego aktywuję Font i uruchamiam przycisk z trzema kropkami. Teraz mogę dowolnie modyfikować czcionkę wyświetlaną w etykiecie.

edycja tekstu formularza

Zdarzenia formularza

Aby formularz prawidłowo funkcjonował potrzebny jest przycisk wstawienia wartości z formularza do komórek Excela. Przy okazji dodam przycisk zamykający formularz. Kontrolka w postaci przycisku to CommandButton.

przycisk wstaw w userform

Obiekty można kopiować dlatego skopiowałem przycisk Wstaw i zmieniłem jego nazwy.

command button wstaw i anuluj dla userform

Żeby przyciski działały trzeba pod zdarzenie dotyczące ich kliknięcia wprowadzić odpowiedni kod. Na początek przycisk Anuluj. Klikam go dwukrotnie i pojawia się moduł zdarzeń formularza wraz z procedurą cbAnuluj_Click(). Do tej procedury wprowadzam polecenie, które zamyka formularz.

event cbAnuluj_Click

Teraz wracam do formularza klikając dwukrotnie w jego ikonę w obszarze projektów. Klikam dwukrotnie przycisk Wstaw i wprowadzam polecenia, które wstawiają zawartość UserForm do komórek Excela. Przed pisaniem procedur ustalę jak ma działać formularz. W arkuszu Excela będą etykiety LP i Firma, a pod nimi pojawiać się będą wartości z formularza.

etykiety danych w arkuszu Excel

Aby wprowadzać nową firmę do pustego wiersza wprowadzam zmienną NowyWiersz, która będzie obliczana przy każdym wprowadzeniu nowego rekordu. Za pomocą tej zmiennej określę LP dla rekordu, a Firma będzie pobierana z TextBoxa formularza. To oczywiście bardzo prymitywna forma formularza, która będzie wzbogacana o kolejne elementy w innych lekcjach.

wprowadzanie wartosci

Po uruchomieniu formularza i wprowadzeniu jakiejś wartości zauważam jeszcze, że tekst w polu tekstowym jest bardzo mały, a także to, że po wprowadzeniu wartości do komórki TextBox nadal jest wypełniony. Zmieniam w ustawieniach TextBoxa wielkość czcionki, a do kodu wprowadzającego dane dopisuję na końcu polecenie czyszczące pole tekstowe.

czyszczenie textbox

Uruchamianie UserForm

Formularz działa już całkiem nieźle, ale pozostaje kwestia jego uruchamiania przez osobę, która nie zna VBA. W tym celu z poziomu zakładki Deweloper wybieram ikonę Wstaw i wybieram Przycisk Polecenia z listy kontrolek ActiveX.

kontrolki activex

Po rozrysowaniu przycisku na arkuszu przechodzę do jego właściwości (PPM i menu kontekstowe, albo przycisk Właściwości w tej samej zakładce) i zmieniam jego Caption, oraz (Name).

właściwości kontrolki

Teraz klikam dwukrotnie w przycisk i do procedury wprowadzam polecenie uruchamiające formularz.

Uruchamianie formularza

Mój formularz działa już prawidłowo, a w przyszłych lekcjach będę wprowadzał do niego nowe elementy.

Jeśli chcesz zobaczyć w jaki sposób tworzę ten formularz na filmie to sprawdź na YT:

Spodobał Ci się artykuł ? Udostępnij go znajomym.

Share on facebook
Share on linkedin
Share on twitter

2 thoughts on “UserForm – własny formularz w Excelu”

Leave a Comment

Twój adres e-mail nie zostanie opublikowany. Wymagane pola są oznaczone *