TOP

VBA-Lekcja 12.1. Formularze użytkownika (UserForm)

Obiekt UserForm to okno lub okno dialogowe będące częścią interfejsu użytkownika aplikacji.

UserForm umożliwia tworzenie okien lub okien dialogowych w projekcie. Na formularzu rysujesz i widzisz elementy sterujące.

Formularze użytkownika mają właściwości definiujące ich wygląd, takie jak położenie, rozmiar, kolor i aspekty ich zachowania.

Podczas opracowywania formularza:

  • Każde okno formularza posiada przyciski Minimalizuj, Rozwiń i Zamknij.
  • Możesz wyświetlić siatkę kształtów i rozmiar linii siatki na karcie Ogólne w oknie dialogowym Opcje.
  • Użyj przycisków na pasku narzędzi, aby narysować kontrolki na formularzu. Na karcie Ogólne okna dialogowego Opcje można dostosować elementy sterujące tak, aby były wyrównane z siatką formularza.

  • Utwórz formularz (UserForm)

    Aby dodać UserForm, musimy zrobić to samo, gdy dodajemy nowy moduł:

    Następnie pojawi się formularz (UserForm) i pasek narzędzi (Toolbox):

    Jeśli nie widzisz okna Właściwości (Properties), upewnij się, że jest wyświetlone, a następnie zacznij od edycji nazwy UserForm (aby móc ją później łatwo znaleźć):

    Formularz (UserForm) ma swoje własne zdarzenia, podobnie jak skoroszyt lub arkusz. Aby dodać wydarzenie, kliknij dwukrotnie UserForm.

    Utwórzmy teraz dwa zdarzenia, aby zobaczyć, jak to działa. Pierwsze zdarzenie ustawi początkowy rozmiar UserForm, a drugie zwiększy jego rozmiar o 50px po kliknięciu przez użytkownika.

    Zdarzenie UserForm_Initialize zostanie uruchomione po uruchomieniu UserForm:

    Private Sub UserForm_Initialize()
        my_userform.Height = 100
        my_userform.Width  = 100
    End Sub
    

    Aby uprościć kod, możemy użyć Me zamiast nazwy UserForm (ponieważ ten kod znajduje się w UserForm, z którym pracujemy):

    Private Sub UserForm_Initialize()
        Me.Height = 100
        Me.Width  = 100
    End Sub
    

    Drugie zdarzenie nastąpi, gdy użytkownik kliknie UserForm:

    Private Sub UserForm_Initialize()
        Me.Height = 100
        Me.Width  = 100
    End Sub
    
    Private Sub UserForm_Click()
        Me.Height = Me.Height + 50
        Me.Width  = Me.Width + 50
    End Sub
    

    Uruchom formularz (UserForm)

    Aby uruchomić UserForm w procedurze, użyj Pokaż:

    Sub show_userform()
         my_userform.Show
    End Sub