Kurs VBA – cz. 22 – Formularze – Pierwszy program

Poniżej napiszemy błyskawicznie pierwszy program używający formularzy. Wiemy już jak używać edytora VBE i pisać kod, skupię się więc na elementach tworzenia formularzy. Napiszemy program dodający jednocześnie kilka arkuszy.
Formularz będzie zawierał dwa pola. W pierwszym będę wpisywał ilość arkuszy do dodania. W drugim pierwszy człon nazwy. Kolejne arkusze będę się nazywać: nazwa_1, nazwa_2, nazwa_3 itd. Dodam też przycisk uruchamiający samo dodawanie oraz przycisk anulowania. Przyciski i pola na formularzu są często nazywane kontrolkami.
Rozpoczynamy od otworzenia nowego skoroszytu. Otwieram VBE , dodaję nowy formularz i zmieniam jego nazwę oraz nagłówek.
Dodawanie nowego formularza
Chciałbym teraz dodać dwa pola i jeden przycisk. Listę kontrolek do dodania znajdę w przyborniku toolbox. Włączę go w górnym menu view/toobox. 
Przybornik zawierający podstawowe kontrolki
Przy pomocy graficznego edytora dodam dwa pola tekstowe. Nie zapominam o nadaniu im odpowiednich nazw. Tak jak to opisałem w przypadku zmiennych, tutaj też jest bardzo istotne aby każdy element miał odpowiednią nazwę.
Każde pole musi być odpowiednio opisane, żeby użytkownik wiedział co powinien wpisać. Dodam dwie kontrolki label.
Na koniec dodam dwa przyciski z odpowiednimi nazwami i napisami.
Zmienię jeszcze rozmiar formularza i mogę go już uruchomić przy pomocy przycisku Play (F5). Formularz można zamknąć krzyżykiem w prawym, górnym rogu. Naciskanie przycisków nic nie da, ponieważ nie dodaliśmy do nich żadnych zdarzeń.
Zostało nam tylko dodać kod do przycisków. Znacznie mniej kodu będzie pod przyciskiem Anuluj. Wystarczy kliknąć dwa razy w przycisk Anuluj. Otwiera się edytor z automatycznie utworzonym zdarzeniem:
Dodam tutaj jedną instrukcję. Wywołanie specjalnej instrukcji zamykania formularza.

Możemy już zamknąć formularz przyciskiem anuluj. Przejdziemy teraz do sedna. Tak samo jak przed chwilą dodajemy zdarzenie cmdAdd_Click(). Jeżeli mamy otwarte okno kodu to możemy przejść do edycji samego formularza klikając dwa razy w jego pozycję w drzewie z lewej strony.

Nie będę tutaj analizował powyższego kodu, jest on już dla was na pewno zrozumiały.

Teraz uruchamialiśmy formularz z edytora VBE. Musimy udostępnić możliwość wygodnego uruchamiania formularza przez użytkownika. Służy do tego metoda Show formularza.
Powyższą instrukcję możemy uruchomić na różne sposoby. Tym razem stworzę w nowym module kodu najprostszą procedurę:
Dodam skrót klawiaturowy uruchamiający procedurę ShowForm.

Od teraz naciśnięcie ctrl + y pokazuje nasz formularz.

Podsumowanie

 Powyższy kod wykonuje tylko podstawową zaplanowaną funkcjonalność. Oczywiście program można (nawet należy) jeszcze znacznie poprawić, na przykład dodać sprawdzanie czy podana ilość arkuszy ma rozsądną wartość (nie za dużą lub za małą) lub czy nazwa nie zawiera niedozwolonych znaków. W tej chwili pojawi się błąd, jeżeli program spróbuje dodać arkusz o nazwie, która już występuje.

Comments 2

  1. Cześć. Jaką dodać linijkę kodu, żeby zamknął się formularz przed wyświetleniem podglądu wydruku, wywołany przyciskiem drukuj (zawartym w formularzu). Podgląd wydruku wywołuję
    Worksheets("formularz").Range("A1:I56").PrintPreview
    Na podglądzie "wisi" formularz.

  2. Cześć.
    Dziękuję za pytanie. Odpowiadam na wypadek, gdyby ktoś spotkał się z takim samym problemem, bo pewnie już znalazłeś odpowiedź.
    Można to wykonać poprzez zamknięcie formularza przed wywołaniem podglądu:

    Unload Me
    Worksheets("Sheet1").Range("A1:I56").PrintPreview

Dodaj komentarz

Twój adres email nie zostanie opublikowany. Pola, których wypełnienie jest wymagane, są oznaczone symbolem *