Adjan AutoPro

Excel VBA-Userform (13 Message Box i Input Box)

📝 Korisničke forme, ili korisnički dijalog box-ovi, predstavljaju najvažniji element korisničkog interfejsa u Windows okruženju. Zastupljeni su, bez sumnje, u svakom Windows programu. Rad sa njima je dosta intuitivan i lak.

Excel, takođe, praktično svu komunikaciju sa korisnikom ostvaruje koristeći dijalog box-ove. Štaviše, pomoću VBA možemo kreirati sopstvene dijalog box-ove kojima bismo prilagodili interfejs Excel-a našim potrebama. Pre nego što pređemo na kreiranje korisničkih formi, dajmo kratak prikaz onih Excel-ovih formi koje smo do sad koristili. U pitanju su Message box i Input box, a pored njih postoji još nekoliko vrlo korisnih predefinisanih formi.

Message box

VBA funkcija MsgBox omogućava jednostavan način prikaza poruke korisniku, pri čemu od korisnika možemo dobiti jednostavnu povratnu informaciju. Sintaksa ove funkcije je:

MsgBox (prompt, [ buttons, ] [ title, ] [ helpfilecontext ])

  • prompt – tekst koji se prikazuje korisniku u box-u;
  • buttons – numerički izraz koji određuje koja dugmad i ikonice će biti prikazane korisniku;
  • title – naslov prozora message box-a;
  • helpFile, context – određuju help fajl i stavku help-a. Zadaju se u paru.

Od argumenata message box-a, jedino je prompt obavezan argument.

Argument buttons pruža veliki broj opcija vezanih za dugmad koja se mogu pojaviti na message box-u. Pomoću njega se može specifiicirati koja će se dugmad i ikonice pojaviti, kao i koje dugme je podrazumevano. Konstante koje određuju dugmad na message box-u su date u Tabeli 01 (ispod).

Tabela 01

Kombinovanjem konstanti za dugmad, ikonice i podrazumevanu dugmad ostvarujemo željeni izgled prozora. Na primer, pozivom funkcije:

Odgovor = MsgBox("Zelite li da zatvorite fajl?", vbYesNoCancel + vbQuestion + vbDefaultButton2, "Zatvaranje fajla")

Odgovor korisnika na message box se dobija preko vrednosti koju vraća funkcija MsgBox. U zavisnosti od dugmeta koje korisnik pritisne, funkcija vraća jednu od celobrojnih vrednosti datih u Tabeli 02. Vraćena vrednost može dalje odrediti odgovarajuću akciju.

Tabela 02

Konstante date u prvoj koloni tabele 01. i 02. su deo specifikacije VBA i mogu se koristiti bilo gde u kodu umesto odgovarajućih numeričkih vrednosti. Lakše je pamtiti ove konstante, jer im je ime usko vezano za odgovarajuće dugme.

Ukoliko želimo da nam funkcija ne vraća rezultat, onda se argumenti ne navode u zagradi. Na primer, poziv:

MsgBox "Danas je lep dan"

bi ispisao dati string i ne bi se vratio nikakav rezultat.

Takođe tu je i Tabela 03, u kojoj se nalaze 4 vrste ikonica koje možemo koristiti za naše MsgBox-ove.

Tabela 03

Više o Message Box možete pročitati na zvaničnom Microsoft sajtu MsgBox function.


Input box

Input box predstavlja jednostavnu korisničku formu koja korisniku omogućava da unese jedan podatak. Vraćeni podatak je string, pa ga je potrebno dodatno obraditi ukoliko želimo da ga tretiramo drugačije (npr. ako želimo da ga tretiramo kao broj).

Input box se aktivira pomoću VBA funkcije InputBox, čija je sintaksa:

InputBox(prompt, [ title ], [ default ], [ xpos ], [ ypos ], [ helpfilecontext ])

  • prompt – tekst koji se prikazuje korisniku u input box-u;
  • title – naslov prozora input box-a;
  • default – podrazumevana vrednost prikazana u input box-u;
  • xpos, ypos – ekranske koordinate gornjeg levog ugla prozora input box-a;
  • helpFile, context – određuju help fajl i stavku help-a. Zadaju se u paru.

Od svih argumenata input box-a, jedino je prompt obavezan argument. Maksimalna dužina prompt-a je približno 1024 karaktera, zavisno od širine korišćenih karaktera.
Na primer, poziv:

Ime koje smo uneli u tekst polje će biti dodeljeno promenljivoj ime.

ime = InputBox("Uneti ime: ", "Unos imena studenta") 
InputBox 01

Ali ako dodamo ispred InputBox samo jednu reč izgled InputBox-a ce se prilagoditi i izgledaće dosta lepše. Tako da možete uočiti rezliku izmedju InputBox 01 i InputBox 02 .

ime = Application.InputBox("Uneti ime: ", "Unos imena studenta")
InputBox 02

Više o Message Box možete pročitati na zvaničnom Microsoft sajtu InputBox function.


Userform1:

Private Sub btn_SimpleMsg_Click()
    MsgBox "Hello World"
End Sub

Private Sub btn_TestMsg_Click()
    MsgBox "Hello World", vbYesNo + vbInformation, "AdjanSoft[N]"
End Sub





Private Sub btn_Delete_Click()

Dim Odgovor As Integer


    Odgovor = MsgBox("Da li želite da obrišete SHEET ?", vbYesNo + vbQuestion, "Poruka Pitanja")
    
    If (Odgovor = vbYes) Then
        MsgBox "Sheet je obrisan!", vbOKOnly + vbInformation, "Poruka Informacija"
    Else
        MsgBox "Sheet nije je obrisan!", vbOKOnly + vbCritical, "Poruka Kriticno"
    End If
    
End Sub




Private Sub btn_Ime_Click()

    Dim mojeIme As String
    
    mojeIme = Application.InputBox("Unesite vaše ime:", "UNOS IMENA!")
    
    MsgBox "Hello " & mojeIme & ", divan je dan! ", vbOKOnly + vbInformation, "Moje Ime"

End Sub
 

Private Sub btn_Click()
    MsgBox "Like and Subscribe na moj kanal!" & vbNewLine & "Cao Zdravo :)", vbOKOnly + vbExclamation, "Cao Zdravo :)"
End Sub

I još jedna poruka za kraj 🙂

Excel dokument iz ovog videa možete preuzeti na linku ispod.

Leave a Comment

Your email address will not be published. Required fields are marked *

Scroll to Top