Strony

  • Strona główna
  • Kurs Excel
  • Kurs VBA
  • Moje narzędzia
  • Ciekawe Strony

2 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:

Private Sub cmdCancel_Click()

End Sub

Dodam tutaj jedną instrukcję. Wywołanie specjalnej instrukcji zamykania formularza.

Private Sub cmdCancel_Click()
  Unload AddSheets
End Sub

Możemy już zamknąć formularz przyciskiem anulujPrzejdziemy 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.

Private Sub cmdAdd_Click()
    Dim lv_Counter As Integer
    Dim lr_NewSheet As Worksheet
    
    For lv_Counter = 1 To txtIle
        Set lr_NewSheet = Worksheets.Add
        lr_NewSheet.Name = txtNazwa & "_" & lv_Counter
    Next lv_Counter
End Sub

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.

AddSheets.Show

Powyższą instrukcję możemy uruchomić na różne sposoby. Tym razem stworzę w nowym module kodu najprostszą procedurę:

Sub ShowForm()
    AddSheets.Show
End Sub

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.