Kiekvienas „Excel“ dialogo langas, kurį sukuriate VBA, yra saugomas atskirame „UserForm“ objekte – po vieną dialogo langą kiekvienai „UserForm“. Jūs kuriate ir pasiekiate šias vartotojo formas Visual Basic redaktoriuje.
Naujos vartotojo formos įterpimas
Įdėkite UserForm objektą atlikdami šiuos veiksmus:
Suaktyvinkite VBE paspausdami Alt + F11.
Pasirinkite darbaknygę, kurioje bus UserForm projekto lange.
Pasirinkite Įterpti → Vartotojo forma.
VBE įterpia naują UserForm objektą, kuriame yra tuščias dialogo langas.
Čia yra UserForm - tuščias dialogo langas. Jūsų darbas, jei nuspręsite jį priimti, yra pridėti kai kuriuos valdiklius prie šios vartotojo formos.
Naujas UserForm objektas.
Valdiklių įtraukimas į UserForm
Kai suaktyvinate vartotojo formą, VBE parodo įrankių dėžę slankiajame lange. Norėdami pridėti valdiklius prie savo UserForm, naudojate įrankių dėžės įrankius. Jei dėl kokių nors priežasčių įrankių dėžė nepasirodo, kai suaktyvinate vartotojo formą, pasirinkite Rodinys → Įrankių dėžė.
Norėdami pridėti valdiklį, tiesiog spustelėkite norimą valdiklį įrankių juostoje ir vilkite jį į dialogo langą, kad sukurtumėte valdiklį. Pridėję valdiklį, galite perkelti ir pakeisti jo dydį naudodami standartinius metodus.
Čia pateikiamas įvairių įrankių ir jų galimybių sąrašas.
Kontrolė |
Ką tai daro |
Etiketė |
Rodo tekstą |
Teksto laukelis |
Leidžia vartotojui įvesti tekstą |
ComboBox |
Rodomas išskleidžiamasis sąrašas |
Sąrašo laukelis |
Rodo elementų sąrašą |
Žymimasis langelis |
Teikia tokias parinktis kaip įjungti/išjungti arba taip/ne |
OptionButton |
Leidžia vartotojui pasirinkti vieną iš kelių parinkčių; naudojami
grupėse po du ar daugiau |
Perjungimo mygtukas |
Leidžia vartotojui įjungti arba išjungti mygtuką |
Rėmas |
Yra kitų valdiklių |
CommandButton |
Paspaudžiamas mygtukas |
TabStrip |
Rodo skirtukus |
MultiPage |
Talpykla su skirtukais kitiems objektams |
Slinkties juosta |
Leidžia vartotojui vilkti juostą nustatymui |
SpinButton |
Leidžia vartotojui spustelėti mygtuką, kad pakeistų vertę |
Vaizdas |
Laiko vaizdą |
RefEdit |
Leidžia vartotojui pasirinkti diapazoną |
„UserForm“ valdiklio ypatybių keitimas
Kiekvienas valdiklis, kurį pridedate prie UserForm, turi ypatybes, kurios nustato, kaip valdiklis atrodo ar veikia. Be to, pati UserForm turi savo savybių rinkinį. Šias ypatybes galite pakeisti taikliai pavadintame ypatybių lange. Tai rodo ypatybių langą, kai pasirenkamas CommandButton valdiklis.
Naudokite ypatybių langus, kad pakeistumėte UserForm valdiklių ypatybes.
Paspaudus F4 pasirodo ypatybių langas, o šiame lange rodomos ypatybės priklauso nuo to, kas pasirinkta. Jei pasirinksite kitą valdiklį, savybės pasikeis į tinkamas tam valdikliui. Norėdami paslėpti ypatybių langą ir pašalinti jį iš kelio, spustelėkite jo pavadinimo juostoje esantį mygtuką Uždaryti. Paspaudus F4, jis visada grąžinamas, kai to reikia.
Valdiklių ypatybės yra šios:
-
vardas
-
Plotis
-
Aukštis
-
Vertė
-
Antraštė
Kiekvienas valdiklis turi savo savybių rinkinį (nors daugelis valdiklių turi keletą bendrų savybių). Norėdami pakeisti nuosavybę naudodami ypatybių langą, atlikite šiuos veiksmus:
Įsitikinkite, kad UserForm pasirinktas tinkamas valdiklis.
Įsitikinkite, kad matomas ypatybių langas.
Ypatybių lange spustelėkite ypatybę, kurią norite pakeisti.
Atlikite pakeitimą dešinėje ypatybių lango dalyje.
Jei pasirenkate pačią UserForm (ne UserForm valdiklį), galite naudoti langą Ypatybės, kad galėtumėte koreguoti UserForm ypatybes.
Vartotojo formos kodo lango peržiūra
Kiekvienas UserForm objektas turi kodo modulį, kuriame yra VBA kodas (įvykių apdorojimo procedūros), kuris vykdomas, kai vartotojas dirba su dialogo langu. Norėdami peržiūrėti kodo modulį, paspauskite F7. Kodo langas yra tuščias, kol neįtrauksite kai kurių procedūrų. Norėdami grįžti į dialogo langą, paspauskite Shift + F7.
Kitas būdas perjungti kodo langą į UserForm ekraną: naudokite projekto lango pavadinimo juostoje esančius mygtukus View Code ir View Object. Arba dešiniuoju pelės mygtuku spustelėkite UserForm ir pasirinkite Peržiūrėti kodą. Jei peržiūrite kodą, dukart spustelėkite UserForm pavadinimą projekto lange, kad grįžtumėte į UserForm.
Vartotojo formos rodymas
Jūs rodote UserForm naudodami UserForm's Show metodą VBA procedūroje.
Dialogo langą rodanti makrokomanda turi būti VBA modulyje, o ne UserForm kodo lange.
Ši procedūra rodo dialogo langą pavadinimu UserForm1:
Sub ShowDialogBox()
UserForm1.Show
Kiti teiginiai gali būti čia
Pabaigos sub
Kai „Excel“ rodomas dialogo langas, „ShowDialogBox“ makrokomanda sustabdoma, kol vartotojas uždaro dialogo langą. Tada VBA vykdo visus likusius procedūros sakinius. Dažniausiai procedūroje nebeturėsite kodo. Kaip vėliau pamatysite, įvykių tvarkyklės procedūras įdėjote į UserForm kodo langą. Šios procedūros pradedamos, kai vartotojas dirba su UserForm valdikliais.
Informacijos iš UserForm naudojimas
VBE suteikia pavadinimą kiekvienam valdikliui, kurį pridedate prie UserForm. Valdiklio pavadinimas atitinka jo ypatybę Name. Naudokite šį pavadinimą norėdami nurodyti konkretų valdiklį savo kode. Pavyzdžiui, jei pridedate žymės langelio valdiklį prie vartotojo formos, pavadintos UserForm1, pagal numatytuosius nustatymus žymės langelio valdiklis pavadintas CheckBox1. Galite naudoti laukelį Ypatybės, kad šis valdiklis būtų rodomas su varnele. Arba galite parašyti kodą, kad tai padarytumėte:
UserForm1.CheckBox1.Value = True
Dažniausiai UserForm kodą rašote UserForm kodo modulyje. Jei taip, galite praleisti UserForm objekto kvalifikatorių ir parašyti teiginį taip:
Checkbox1.Value = True
Jūsų VBA kodas taip pat gali patikrinti įvairias valdiklių savybes ir imtis atitinkamų veiksmų. Šis sakinys vykdo makrokomandą pavadinimu PrintReport, jei pažymėtas žymės langelis (pavadintas CheckBox1):
Jei CheckBox1.Value = True, tada skambinkite PrintReport
Paprastai verta pakeisti numatytąjį pavadinimą, kurį VBE suteikė jūsų valdikliams, į ką nors prasmingesnį.