Excel VBA (03 Okruženje, Controls)
Visual Basic Editor
Kod prvih verzija Excel-a koje su imale VBA na raspolaganju, tj. Excel 5 i Excel 95, VBA modul se pojavljivao u formi zasebnog radnog lista. Počev sa Excel-om 97, VBA modulima se pristupa korišćenjem Visual Basic Editora (VBE). Moduli su, naravno, sačuvani zajedno sa radnim sveskama, samo nisu vidljivi dok se ne startuje VBE.
VBE se ne može startovati nezavisno od Excel-a, tj. Excel mora biti otvoren da bi VBE mogao da se startuje. Najjednostavniji način da se startuje VBE je koristeći prečicu Alt+F11. Drugi način bi bio Developer 🠊 Visual Basic. Startovanjem VBE dobija ćete dobiti nešto slično prozoru prikazanom na slici ispod
Project Explorer prozor prikazuje strukturu svih trenutno otvorenih radnih sveski u Excel-u. Svaka radna sveska predstavlja jedan projekat. Ukoliko ovaj prozor nije vidljiv, može se otvoriti koristeći stavku View iz linije menija ili pomoću prečice Ctrl+R.
Code prozor (kodni prozor) sadrži VBA kod. Svaka stavka iz Project Explorer prozora ima pridruženi kodni prozor, koji se aktivira dvoklikom na određenu stavku ili pomoću opcije View Code iz padajućeg menija koji se dobija desnim klikom na određenu stavku.
Properties prozor prikazuje osobine trenutno izabranog objekta u Project Explorer prozoru. Ukoliko ovaj prozor nije aktivan, aktivira se opcijom View 🠊 Properties Window.
Form Controls
Dodavanje kontrola formi
Kontrola se na formu dodaju koristeći Toolbox, koji se, ako nije aktiviran, aktivira opcijom View 🠊 Toolbox. VBE nema mogućnost dodavanja kontrola iz menija. Toolbox sa kontrolama je prikazan na slici ispod.
Dodavanje kontrola se vrši prevlačenjem kontrole sa Toolbox-a na formu. Osobine dodate kontrole se mogu menjati pomoću Properties prozora.
Podrazumevano ime dodate kontrole se sastoji od tipa kontrole i rednog broja kontrole tog tipa koja se dodaje. Na primer, prvi tekst box koji se dodaje se zove TextBox1, drugi TextBox2 itd. Poželjno je ova imena uskladiti sa našim potrebama, tj. svakoj kontroli dati ime koje asocira na ulogu kontrole.
U nastavku je dat spisak kontrola koje možemo dodati preko Toolbox-a, uz objašnjenje šta svaka od njih omogućava.
Labela (Label)
Labela služi da prikaže tekst na formi.
Tekst box (TextBox)
Ova kontrola dozvoljava korisniku da unese tekst.
Kombo box (ComboBox)
Ova kontrola nam daje padajući meni sa kojeg možemo izabrati jednu opciju ili nam dopušta da sami unesemo podatak. Na primer, pri snimanju fajla opcijom Save As, polja za unos imena i tipa fajla su kombo box-ovi.
List box (ListBox)
List box kontrola nam daje listu stavki sa koje korisnik može izabrati jednu ili više stavki. Ova kontrola je vrlo slična kombo box-u, s tim što kombo daje padajući meni za odabir jedne stavke. Druga razlika je da kod kombo box-a korisnik može uneti stavku koja se ne nalazi na listi.
Ček box (CheckBox)
Ček box kontrola se upotrebljava kada želimo da definišemo neki binaran izbor, da ili ne, istinito ili neistinito, uključeno ili isključeno. Ova kontrola ima dve moguće vrednosti, True ili False koje respektivno znače da je kontrola čekirana (štiklirana) ili nije čekirana.
Opciono dugme (OptionButton)
Opciona dugmad se koriste kada korisnik treba da odabere jednu od nekoliko opcija. Opciona dugmad se nalaze u grupama od po minimum dva dugmeta. Kada se jedno dugme u grupi aktivira ostala se deaktiviraju. Ukoliko na dijalog box-u treba da se nađe više od jedne grupe opcionih dugmadi, svaka grupa dugmadi mora različitu GroupName osobinu, inače će se sva dugmad tretirati kao da pripadaju istoj grupi. Drugi način je da se grupe opcionih dugmadi odvoje pomoću okvira koji automatski grupiše dugmad
Toggle dugme (ToggleButton)
Slično kao ček box i opciona dugmad, ovo dugme ima dva moguća stanja, uključeno i isključeno. Klik na dugme menja trenutno stanje u ono drugo i menja izgled dugmeta. Vrednost dugmeta je True (pritisnuto) ili False (nije pritisnu)
Okvir (Frame)
Okvir služi da obuhvati druge kontrole, bilo iz estetskih razloga, bilo zbog grupisanja kontrola na logičan način. Ova kontrola može biti vrlo korisna u grupisanju opcionih dugmadi kada naš dijalog box ima više od jedne grupe ovih dugmadi.
Komandno dugme (CommandButton)
Ovo dugme služi da izvrši određenu radnju koju progamiramo u okviru događaja Click ovog dugmeta. Ova kontrola se najviše koristi i svaki dijalog box kojeg kreiramo će imati bar jedno komandno dugme. Na primer, message box iz prdhodnog tutoriala Hello World.
Tab strip (TabStrip)
Ova kontrola služi za kreiranje dijalog box-ova sa više tabova (stranica). Jedan takav dijalog box se dobija opcijom Tools 🠊 Options. Ova kontrola, podrazumevano, ima 2 stranice. Dodavanje novih stranica i brisanje postojećih se vrši sa padajućeg menija koji se dobija desnim klikom na kontrolu.
Multi page (MultiPage)
Slično kao tab strip, multi page kontrola kreira dijalog box-ove sa više stranica. Ova kontrola pruža više mogućnosti i jednostavnija je za rad sa dijalog box-ovima od tab strip kontrole. Za razliku od multi page kontrole, tab strip ne služi kao kontejner za druge objekte.
Klizač (ScrollBar)
Klizač je kontrola pomoću koje, na jednostavan način, možemo odabrati jednu od vrednosti iz određenog opsega. Odabir se vrši prevlačenjem klizača.
Spin dugme (Spin Button)
Spin dugme omogućava odabir vrednosti kontrole klikanjem jedne od dve strelice, pri čemu jedna povećava, a druga smanjuje vrednost. Ova kontrola je slična klizaču, pri čemu kod klizača prevlačenjem možemo postići veće korake promene. Spin dugme se obično koristi zajedno sa tekst box-om ili labelom koji prikazuju tekuću vrednost kontrole.
Image kontrola (Image control)
Ova kontrola se koristi za prikaz slike koja može biti zasebni fajl ili se uzeti sa Clipboard-a. Nakon smeštanja u kontrolu, slika postaje deo odgovarajuće radne sveske.
Objekti imaju osobine. Na primer, osobine opsega kao objekta mogu biti Value i Type. Pomoću VBA se mogu menjati osobine objekta. Referenciranje osobina se vrši kombinovanjem objekta i određene osobine uz pomoć operatora tačka. Na primer, osobina Value ćelije A1 sveske Sheet1 se može referencirati sa
Worksheets("Sheet1").Range("A1").Value
Ovako dobijena vrednost se kasnije može dodeliti nekoj VBA promenljivoj.
Objekti imaju metode. Metod je akcija koja se izvršava nad objektom. Na primer, jedna od metoda objekta Range je ClearContents, pomoću koje se briše sadržaj opsega. Pozivanje metode se takođe vrši pomoću operatora tačka, koji razdvaja objekat i metod. U prethodnom slučaju bi imali
Range("A1").ClearContents
Kao i svi moderni programski jezici, VBA poseduje složene tipove podataka, instrukcije za kontrolu toka programa, tj. naredbe uslovnog izvršavanja i cikluse, itd. O VBA sintaksi će biti više reči u narednim tutorijalima.