Iga Exceli dialoogiboks, mille loote VBA-s, salvestatakse eraldi UserFormi objektis – üks dialoogiboks UserFormi kohta. Loote need kasutajavormid ja pääsete neile juurde Visual Basicu redaktoris.
Uue kasutajavormi sisestamine
Sisestage UserFormi objekt, järgides neid samme:
Aktiveerige VBE, vajutades Alt+F11.
Valige töövihik, mis hoiab projekti aknas UserFormi.
Valige Lisa → Kasutajavorm.
VBE lisab uue UserFormi objekti, mis sisaldab tühja dialoogiboksi.
Siin on UserForm - tühi dialoogiboks. Teie ülesanne, kui otsustate sellega nõustuda, on lisada sellele kasutajavormile mõned juhtelemendid.
Uus UserFormi objekt.
Juhtelementide lisamine kasutajavormile
Kui aktiveerite kasutajavormi, kuvab VBE tööriistakasti ujuvas aknas. Saate oma UserFormi juhtelementide lisamiseks kasutada tööriistakasti tööriistu. Kui mingil põhjusel tööriistakast kasutajavormi aktiveerimisel ei ilmu, vali Vaade → Tööriistakast.
Juhtelemendi lisamiseks klõpsake lihtsalt soovitud juhtelementi tööriistakastis ja lohistage see juhtelemendi loomiseks dialoogiboksi. Pärast juhtelemendi lisamist saate seda standardtehnikate abil teisaldada ja selle suurust muuta.
Siin on nimekiri erinevatest tööriistadest ja nende võimalustest.
Kontroll |
Mida see teeb |
Silt |
Näitab teksti |
Tekstikast |
Võimaldab kasutajal teksti sisestada |
Liitkast |
Kuvab ripploendi |
Loendikast |
Kuvab üksuste loendi |
Märkeruut |
Pakub selliseid valikuid nagu sisse/välja või jah/ei |
OptionButton |
Võimaldab kasutajal valida ühe mitmest valikust; kasutatakse
kahe- või enamaliikmelistes rühmades |
Lülitusnupp |
Võimaldab kasutajal nuppu sisse või välja lülitada |
Raam |
Sisaldab muid juhtnuppe |
CommandButton |
Klõpsatav nupp |
TabStrip |
Kuvab vahekaardid |
MultiPage |
Sakkidega konteiner muude objektide jaoks |
Kerimisriba |
Võimaldab kasutajal sätte loomiseks riba lohistada |
SpinButton |
Võimaldab kasutajal väärtuse muutmiseks nuppu klõpsata |
Pilt |
Hoiab pilti |
RefEdit |
Võimaldab kasutajal valida vahemiku |
UserFormi juhtelemendi atribuutide muutmine
Igal kasutajavormile lisatud juhtelemendil on atribuudid, mis määravad juhtelemendi välimuse või käitumise. Lisaks on UserFormil endal oma atribuutide komplekt. Neid atribuute saate muuta sobiva nimega Atribuutide aknas. See näitab atribuutide akent, kui CommandButtoni juhtelement on valitud.
UserFormi juhtelementide atribuutide muutmiseks kasutage atribuutide aknaid.
Kui vajutate F4, kuvatakse atribuutide aken ja selles aknas kuvatavad atribuudid sõltuvad sellest, mis on valitud. Kui valite mõne muu juhtelemendi, muutuvad atribuudid selle juhtelemendi jaoks sobivateks. Atribuutide akna peitmiseks ja eemaldamiseks klõpsake selle tiitliribal nuppu Sule. F4 vajutamine toob selle alati tagasi, kui seda vajate.
Juhtelementide omadused hõlmavad järgmist.
-
Nimi
-
Laius
-
Kõrgus
-
Väärtus
-
Pealkiri
Igal juhtelemendil on oma atribuutide komplekt (kuigi paljudel juhtelementidel on mõned ühised omadused). Atribuudi muutmiseks aknas Atribuudid toimige järgmiselt.
Veenduge, et kasutajavormis oleks valitud õige juhtelement.
Veenduge, et atribuutide aken oleks nähtav.
Atribuutide aknas klõpsake atribuuti, mida soovite muuta.
Tehke muudatus atribuutide akna paremas osas.
Kui valite UserFormi enda (mitte UserFormi juhtelemendi), saate UserFormi atribuutide reguleerimiseks kasutada akent Properties.
Kasutajavormi koodi akna vaatamine
Igal UserFormi objektil on koodimoodul, mis hoiab VBA-koodi (sündmuste töötleja protseduurid), mis käivitatakse, kui kasutaja töötab dialoogiboksiga. Koodimooduli vaatamiseks vajutage klahvi F7. Koodi aken on tühi, kuni lisate mõned protseduurid. Dialoogiboksi naasmiseks vajutage klahvikombinatsiooni Shift+F7.
Siin on veel üks viis koodiakna ja UserFormi kuva vahel lülitumiseks: Kasutage projekti akna tiitliribal nuppe View Code ja View Object. Või paremklõpsake kasutajavormi ja valige Kuva kood. Kui vaatate koodi, topeltklõpsake projekti aknas UserFormi nimel, et naasta UserFormi.
Kasutajavormi kuvamine
Saate kuvada UserFormi, kasutades VBA protseduuris UserForm's Show meetodit.
Dialoogiboksi kuvav makro peab olema VBA moodulis, mitte UserFormi koodiaknas.
Järgmine protseduur kuvab dialoogiboksi nimega UserForm1:
Sub ShowDialogBox()
UserForm1.Show
Siia võib lisada muid väiteid
Lõpeta alam
Kui Excel kuvab dialoogiboksi, peatub makro ShowDialogBox, kuni kasutaja dialoogiboksi sulgeb. Seejärel täidab VBA kõik protseduuri ülejäänud avaldused. Enamasti ei ole teil protseduuris enam koodi. Nagu hiljem näete, panite sündmusehalduri protseduurid UserFormi koodiaknasse. Need protseduurid käivituvad, kui kasutaja töötab UserFormi juhtelementidega.
Kasutajavormi teabe kasutamine
VBE annab nime igale juhtelemendile, mille kasutajavormi lisate. Juhtelemendi nimi vastab selle atribuudile Name. Kasutage seda nime koodi konkreetsele juhtelemendile viitamiseks. Näiteks kui lisate märkekasti juhtelemendi kasutajavormile nimega UserForm1, on märkekasti juhtelemendi nimi vaikimisi CheckBox1. Saate kasutada kasti Atribuudid, et kuvada see juhtelement koos linnukesega. Või võite selle tegemiseks koodi kirjutada:
UserForm1.CheckBox1.Value = Tõene
Enamasti kirjutate UserFormi koodi UserFormi koodimoodulisse. Kui see nii on, võite UserFormi objekti kvalifikaatori välja jätta ja kirjutada avalduse järgmiselt:
Märkeruut1.Väärtus = Tõene
Teie VBA-kood saab kontrollida ka juhtelementide erinevaid omadusi ja võtta asjakohaseid toiminguid. Järgmine avaldus käivitab makro nimega PrintReport, kui märkeruut (nimega CheckBox1) on märgitud:
Kui märkeruut1.Väärtus = tõene, helistage PrintReport
Tavaliselt on hea mõte muuta vaikenimi, mille VBE on teie juhtelementidele andnud, millekski tähendusrikkamaks.