Forme

Forme (Maske) su grafički objekti koji su dizajnirani od strane projektanta, a na njih se postavljaju raznolike kontrole radi olakšanog unosa podataka. To mogu da budu: polje za unos teksta, izborna polja, polja višestrukog izbora, padajuće liste, kombinovane liste itd. Dodavanjem kontroli na masku stvaraju se preduslovi za preuzimanje vrednosti, a nakon predviđene akcije i njihovo čuvanje na zadatoj lokaciji u radnom listu.

Nakon što otvorimo VBA editor novu formu možemo da dodamo iz Insert menija. Nakon što je napravimo ona će se pojaviti u radnom delu ekrana, a istovremeno i u listi objekata u folderu Forms pod imenom UserForm<n>. Istovremeno se pojavljuje i Toolbox u kome se nalazi izbor kontrola koje možemo da dodamo u formu. Ako smo ga slučajno isključili ponovo možemo da ga uključimo iz View menija. Sada ostaje samo da napravimo jednu jednostavnu formu, npr. za unos podataka o nekoj osobi.

Dodaćemo nekoliko kontrola na formu. Kontrole označene kao Labels služe za unos običnih tekstualnih natpisa, dok Text Box koristimo za unos teksta. OptionButton kontrole se koriste za unos višestrukih izbornih polja, a na kraju Buttons se koriste za dodavanje dugmadi u formu. Svaka od kontrola ima veliki broj svojstava pomoću kojih možemo da utičemo na njen izgled. To može da bude boja pozadine, boja teksta, vrsta, veličina i stil fonta, Caption (natpis u kontroli) itd.

Kada smo završili sa dizajnom forme sledi pisanje metoda koje se pokreću ukoliko se promeni neka od vrednosti na kontrolama. One su opcione, osim u slučaju metoda-potprograma kojim se specifikuje na koji način se, nakon potvrde unosa, podaci unose u radni list. Ako smo dodali dugme OK, dvostrukim klikom otvaramo editor gde unosimo metod kojim određujemo šta se dešava po potvrdi unosa. U ovom primeru, vrednosti tekstualnih polja sa forme ćemo preslikati na odgovarajuća mesta u radnom listu:

Private Sub CommandButton1_Click()

Worksheets(1).Cells(1, 1) = VBAProject.UserForm1.TextBox1
Worksheets(1).Cells(2, 1) = VBAProject.UserForm1.TextBox2

End Sub

Da bi se forma uopšte prikazala potrebno je dodati u modulu potprogram koji će posedovati minimalno jednu naredbu:

UserForm1.Show

Ako se u okviru forme nalaze liste ili neki drugi objekti čije vrednosti treba da se inicijalizuju pre početka rada napisaćemo odgovarajući kod. Na kraju još samo treba da dodamo dugme, dodelimo mu makro. Klikom na dugme otvorićemo masku u koju unosimo podatke, a nakon što potvrdimo unos oni će biti upisani na odgovarajućem mestu u radnom listu.