VBA vartotojo formos
„Userform“ yra labai svarbi VBA programavimo dalis. Tai leidžia jums sukurti profesionaliai atrodančią vartotojo sąsają, kad galėtumėte bendrauti su savo VBA programos vartotojais. Tai taip pat leidžia visiškai valdyti vartotoją, ką jis daro su jūsų darbo knyga.
Žinoma, galite naudoti darbalapio langelius, kad priimtumėte parametrus iš vartotojo, tačiau naudotojo forma sukuria kur kas geresnę vartotojo patirtį.
Išplėtę savo vartotojo formos aukštį ir plotį iki „Excel“ lango dydžio, galite padaryti savo programą panašią į įprastą „Windows“ programą, o vartotojas visiškai nežino, kad naudoja „Excel“ kaip pagrindinį kompiuterį.
Jums prieinami visi įprasti „Windows“ valdikliai, pvz., Išskleidžiamieji meniu, sąrašų laukeliai, varnelės. Taip pat galite naudoti daugybę metodų, įvykių ir ypatybių, kad pagerintumėte naudotojo patirtį.
Svarbus dalykas yra tai, kad kai rodote įmontuotą ar modalinę vartotojo formą, negalite redaguoti savo kodo VBE ir pasiekti jokių „Excel“ funkcijų. Tik kai forma bus uždaryta, žymeklis bus rodomas jūsų kode.
Integruota „VBA Userforms“
„Excel VBA“ yra kelios integruotos formos, kurias galima naudoti bendraujant su vartotoju.
Žinučių dėžutė
Tai dažniausiai naudojama VBA forma. Jame tiesiog rodomas tekstinis pranešimas, galbūt informuojantis vartotoją, kad jis įvedė netinkamą įvestį arba kad VBA procesas baigtas. Paprasčiausiu pavidalu juose rodoma teksto eilutė, tačiau taip pat galite pridėti piktogramą, pvz., Klausimą ar šauktuką, ir pranešimų laukui suteikti kitokį pavadinimą.
Tai yra pagrindinis pavyzdys. Spustelėti reikia tik vieno mygtuko, o pavadinimo juostoje parašyta „Microsoft Excel“
Kodas tai padaryti yra labai paprastas:
123 | Antrinis testas „MsgBox“ ()MsgBox „Šis procesas baigtas“Pabaiga Sub |
Norėdami pridėti mygtukus, piktogramas ir pakeisti pavadinimo juostą, galite naudoti skirtingus parametrus
123456789 | Antrinis testas „MsgBox“ ()„Dim Ret As Variant“Ret = „MsgBox“ („Ar esate tikras?“, VbYesNo Arba „vbQuestion“, „Mano programa“)Jei Ret = vbTaip tada'Jūsų procesas čiaKitasIšeiti iš SubPabaiga JeiPabaiga Sub |
Šis kodas prideda mygtukus „Taip“ ir „Ne“ bei klaustuko piktogramą ir nustato pavadinimo juostą. Atminkite, kad pranešimų laukelio stilius galite derinti naudodami operatorių „Arba“
Be to, kai grąžinate vertę iš pranešimų laukelio, grąžinimo kintamasis turi būti apibrėžtas kaip variantas arba „vbMsgBoxResult“, o pranešimų laukelio teiginys turi naudoti skliaustus,
Įvesties dėžutė
VBA yra labai paprastas įvesties langelis, nors ir gana ribojamas, ką galite su juo padaryti. Jei galite, geriau sukurti tinkintą vartotojo formą
12345 | Sub TestInputBox ()Dim Ret As StringRet = InputBox („Įveskite savo vardą“, „Įveskite vardą“)„MsgBox RetPabaiga Sub |
Prie parametrų taip pat galite pridėti numatytąją įvesties vertę.
Gaukite „Open Filename“
Tai leidžia jums naudoti „Windows“ failo dialogo langą savo VBA kode. Jis atrodo labai įspūdingas vartotojui, kai jis veikia, tačiau jį labai paprasta įtraukti ir jūs automatiškai gaunate visas failų dialogo funkcijas.
Kodas apriboja vartotoją matyti tik „Excel“ failus. Deja, jie galėjo įvesti ne „Excel“ failo pavadinimą į lauką Failo pavadinimas ir spustelėti atidarymo mygtuką, todėl jums reikės tam tikro kodo, kad įsitikintumėte, jog pasirinktas „Excel“ failas.
Prieš rodydami failo dialogo langą, naudokite komandą „ChDir“, kad pakeistumėte numatytąjį katalogą į savo poreikius
Atkreipkite dėmesį į pakaitos simbolių naudojimą „FileFilter“ parametre. Rodomi „Excel“ failai gali būti iki 2007 m., Turėti makrokomandų arba būti dvejetainiai, todėl filtras yra „.xls*“.
123456 | Sub TestFileDialog ()„Dim MyFile“ kaip eilutėChDir „C: \ temp“MyFile = Application.GetOpenFilename ("Excel failai (*.xls*),*. Xls*", "Pasirinkite failą")„MsgBox MyFile“Pabaiga Sub |
Jei reikia, galite leisti vartotojui pasirinkti kelis failus vienu metu, naudodami „MultiSelect“ parametrą. Numatytoji parinktis yra klaidinga (tik vienam pasirinkimui)
12345678 | Sub TestFileDialog ()„Dim MyFile“ kaip variantasChDir „C: \ temp“MyFile = Application.GetOpenFilename ("" Excel "failai (*.xls*),*. Xls*", "Pasirinkite failą",, Tiesa)Kiekvienam f Mano faile„MsgBox“ fKitas fPabaiga Sub |
Naudotojas, laikydamas nuspaudęs klavišą „Shift“ failų dialogo lange, pasirenka kelis failus.
Kiekvienai ciklui rodomas visas kiekvieno pasirinkto failo kelias ir pavadinimas
„Excel“ numatytieji dialogai
„Excel VBA“ yra „Dialogs“ kolekcija, kurią galite naudoti norėdami parodyti bet kurį standartinį „Excel“ dialogą. Neigiama yra tai, kad negalite pasiekti vartotojo pasirinktų parametrų ar pakeisti dialogo lango išvaizdos, tačiau šie dialogai gali būti naudingi nukreipiant naudotoją į standartinę „Excel“ funkciją ir leidžiant jam pasirinkti konkrečius parametrus dialogo lange.
Geras to pavyzdys yra parodyti dialogo langą „Spausdinti“ iš VBA:
123 | Sub TestPrintDialog ()Application.Dialogs (xlDialogPrint). RodytiPabaiga Sub |
Kai atidarysite skliaustelius Dialogs kolekcijoje, pamatysite daugybę konstantų, skirtų integruotiems dialogams, sąrašą. Verta eksperimentuoti su kai kuriomis iš šių kodo parinkčių
Naujos vartotojo formos įterpimas
Galite sukurti savo pasirinktines vartotojo formas įterpdami vartotojo formą į „Visual Basic“ redaktorių (VBE)
Tai galite padaryti pasirinkę Įterpti | „UserForm“ VBE meniu juostoje.
Spustelėkite „UserForm“ ir pasirodys nauja tuščia forma, kurią galėsite paruošti
Pati forma (parodyta kaip „UserForm1“) atrodo gana maža, tačiau galite naudoti aplink esančias rankenas, kad padidintumėte arba dar labiau sumažintumėte, vilkdami rankenas žymekliu.
Apatiniame kairiajame ekrano kampe yra ypatybių langas. Kadangi pagrindinis dėmesys skiriamas pačiai formai, jame yra visos šiai formai būdingos formos savybės.
Atminkite, kad kai pradedate pridėti valdiklius, tokius kaip kombinuotieji langeliai ir komandų mygtukai, visi šie valdikliai turi savo savybių rinkinį ir gali labai skirtis, ką galite padaryti su kiekvienu iš jų.
Šiuo metu matomos ypatybės taikomos tik pačiai formai.
Ypatybė „Pavadinimas“ yra pavadinimas, naudojamas apibrėžti jūsų formos objektą VBA kode. Galbūt norėsite naudoti kažką reikšmingesnio objekto pavadinimui, kad peržiūrint kodą būtų akivaizdu, kokia forma naudojama.
Nuosavybė „Pavadinimas“ taip pat atsispindės „Project Explorer“ lange viršutiniame kairiajame ekrano kampe
Norėsite pakeisti savo formos pavadinimo juostą į kažką kitokio nei „UserForm1“, ir tai galite padaryti įvesdami naują tekstą nuosavybėje „Antraštė“
Galite atlikti daugybę pakeitimų, kaip naudotojas mato jūsų formą. Galite keisti spalvas, pridėti vaizdų, pvz. įmonės logotipą, pakeiskite padėtį naudodami kairę ir viršutinę, pakeiskite dydį naudodami aukštį ir plotį, pakeiskite pelės žymeklį ir dar daugiau
Visas šias ypatybes taip pat galima programiškai pakeisti bet kuriam valdikliui, kurį pridėjote prie formos. Pvz., Vartotojas gali pasirinkti iš sąrašo laukelio valdiklio, o jūs galite išjungti arba paslėpti kitus valdiklius pagal vartotojo pasirinkimą
Įrankių rinkinio naudojimas
Pastebėsite, kad spustelėjus pačią formą, pasirodo iššokantis įrankių dėžutės langas. Jei spustelėsite kur nors kitur pvz. ypatybių sritį, ji išnyks, bet vėl pasirodys spustelėjus formą.
Įrankių dėžė suteikia tikrąją formos dizaino mechaniką. Tai leidžia prie jūsų formos pridėti įprastus vartotojams žinomus „Windows“ valdiklius.
Jūs pastebėsite, kad formoje yra taškų tinklas. Tai yra „snapgrid“, todėl, kai prie formos pridėsite valdiklį, jis automatiškai suderins padėtį su taškų eilutėmis ir stulpeliais. Tai labai padeda suderinti valdiklius, kad valdikliai neatsirastų neryškiai
Jei spustelėsite valdiklį ir nuspręsite jo nenaudoti, spustelėję piktogramą „Rodyklė“ viršutiniame kairiajame įrankių dėžės kampe žymeklis bus grąžintas į įprastą.
Galite pridėti papildomų valdiklių prie įrankių rinkinio naudodami Įrankiai | Papildomi valdikliai VBE meniu. Jų yra daug, tačiau, priklausomai nuo jūsų „Windows“ ir „Excel“ versijų, jie ne visada veikia, todėl dažnai reikia šiek tiek eksperimentuoti.
Be to, jūsų vartotojai gali neturėti prieigos prie kai kurių šių papildomų valdiklių arba paleisti senesnes „Windows“ ir „Excel“ versijas, o tai gali sukelti problemų. Didelėse organizacijose, ypač jei jos yra pasaulinės, nėra tokio dalyko kaip standartinis kompiuteris, kuriuo galėtumėte pasikliauti!
Išėjimo mygtuko pridėjimas prie formos
Komandos mygtuką paprasta pridėti prie formos. Tai atrodo taip pat, kaip ir mygtukai, kuriuos matote kitose „Windows“ formose, paprastai kaip mygtukas „Gerai“ arba „Atšaukti“.
Įrankių juostoje spustelėkite komandų mygtuko piktogramą. Tai yra antroji piktograma iš kairės apatinėje piktogramų eilutėje. Žiūrėkite paveikslėlį aukščiau. Ant jo yra raidės „ab“.
Galite laikyti nuspaudę pelės mygtuką ir vilkti valdiklį į savo formą, arba galite perkelti žymeklį į formą, kur ji pasikeis į kryžminį žymeklį ir galėsite nustatyti ir nustatyti savo mygtuko dydį
Jei vilksite valdiklį į formą, gausite numatytąjį mygtuko dydį. Perkėlę žymeklį į formą, galite pakeisti mygtuko dydį vilkdami kryžminį žymeklį per formą
Jūsų forma dabar atrodys taip:
Mygtuko antraštėje bus numatytasis tekstas, tačiau norėsite jį pakeisti pagal savo poreikius. Galite spustelėti teksto mygtuką („CommandButton1“) ir tai leis tiesiogiai redaguoti antraštę.
Taip pat galite jį pakeisti ypatybių lange (apatiniame kairiajame ekrano kampe). Pamatysite nuosavybę pavadinimu „Antraštė“ ir galėsite redaguoti jos vertę. Pakeiskite tai į „Išeiti“
Kaip ir formos ypatybės, ypatybė „Pavadinimas“ apibrėžia pavadinimą, kuris bus naudojamas jūsų VBA kode. Galbūt norėsite naudoti pavadinimą, kuris jūsų kode yra prasmingesnis ir akivaizdesnis. Tai galite įvesti į nuosavybę „Vardas“.
Galite iš naujo nustatyti mygtuko vietą vilkdami jį formoje, o jo dydį galite pakeisti spustelėdami mygtukų rankenas (baltos kvadratinės dėžutės) ir tempdami rankenas, kad padidintumėte arba sumažintumėte
Taip pat galite pakeisti mygtuko dydį, keisdami aukščio ir pločio reikšmes ypatybių lange
Savo formą galite peržiūrėti „Excel“ spustelėję žalią trikampį VBE įrankių juostoje arba paspausdami F5
Savo formą galite iškviesti iš modulio VBA kodo, naudodami metodą „Rodyti“
123 | Sub ShowForm ()UserForm1.ShowPabaiga Sub |
Jūsų vartotojo forma iš tikrųjų yra visuotinis objektas ir gali būti iškviesta iš bet kurios jūsų kodo vietos
Šiuo metu jūsų komandinis mygtukas nieko nedaro, nes po juo nėra VBA kodo. Jūs turite tai parašyti patys! Viskas, kas šiuo metu gali atsitikti, yra tai, kad galite spustelėti „Uždaryti“ X viršutiniame dešiniajame formos kampe.
Norėdami pridėti VBA kodą, dukart spustelėkite formos mygtuką
Tai pateks į įprastą VBA kodo langą ir parodys numatytąjį paspaudimo įvykį.
Norėdami uždaryti formą, naudojate „slėpti“ metodą ir taip pat galite pridėti bet kokį kitą kodą, pvz., Pranešimų laukelį, kad patvirtintumėte vartotojui, kas atsitiko.
Atminkite, kad kodo lango viršuje yra du išskleidžiamieji meniu. Pirmasis leidžia pasirinkti formos valdiklius, o antrasis rodo visus įvykius, kuriuos galite pridėti, kad pridėtumėte kodą. Akivaizdu, kad mygtukas yra „Paspaudimo“ įvykis, tačiau yra ir kitų, tokių kaip „Dukart spustelėkite“ arba „Pelės judėjimas“
Kai dabar vykdote formą, mygtukas iš tikrųjų kažką daro. Forma išnyksta ir rodomas pranešimų langas, patvirtinantis, kad forma uždaryta
Žinoma, galite padidinti išėjimo kodą. Galbūt norėsite parodyti kitą formą arba imtis veiksmų dėl parametrų, kuriuos naudotojas įvedė jūsų formoje
Etiketės valdiklio pridėjimas prie formos
Etikečių valdikliai yra skirti paraginti vartotoją, kokius duomenis reikia įvesti į formos valdiklį, pvz. teksto laukelis, išskleidžiamasis meniu ir tt Etiketė pagal numatytuosius nustatymus neturi kraštinių, tačiau prireikus jas galima pridėti per ypatybių langą.
Kaip kontrolė jie yra skaitomi tik vartotojui ir yra tiesiog būdas įterpti tekstą į formą, nesvarbu, ar tai būtų paryškinta antraštė, ar nurodymas, ką įvesti ar pasirinkti.
Norėdami pridėti etiketę, įrankių juostoje spustelėkite piktogramą „A“ (viršutinė eilutė, antra iš kairės) ir dukart spustelėkite ją arba perkelkite žymeklį į formą ir pasirinkite vietą bei dydį.
Naudodami ypatybę „Subtitrai“ ypatybių lange arba spustelėdami etiketės valdiklį, galite įvesti etiketės valdiklio tekstą.
Atminkite, kad tekstas bus suvyniotas pagal etiketės valdiklio dydį, o jei teksto eilutė per ilga, ji nebus visiškai rodoma formoje, todėl turite būti atsargūs dėl etiketės valdiklio dydžio.
Naudodami ypatybių langą galite pakeisti etiketės valdiklio išvaizdą, naudodami skirtingas spalvas, šriftus, atgalinį stilių, pvz. jei jis uždengia vaizdą ir norite, kad jis būtų skaidrus
Etiketės valdikliui nereikia kurti kodo. Pagrindinis tikslas yra pridėti tekstą prie formos, kad vartotojas galėtų pamatyti, kaip veikia visi kiti valdikliai
Teksto valdiklio pridėjimas prie formos
Teksto valdiklis naudojamas, kad vartotojas galėtų įvesti tekstą, pvz., Įvesti vardą ar komentarus
Teksto valdiklis pridedamas iš įrankių dėžės spustelėjus teksto valdymo piktogramą (viršutinė eilutė, trečia iš kairės) ir dukart spustelėjus arba tempiant valdiklį į savo formos vietą.
Teksto valdymas dažnai painiojamas su etiketės valdikliu, tačiau teksto valdiklis yra tas, kurį įveda vartotojas
Tekstas „Įveskite savo vardą“ yra etiketės valdiklis, kaip aprašyta anksčiau, ir dabar turime paruoštą baltą teksto laukelį, kuriame vartotojas gali ką nors įvesti
Naudodami ypatybių langą, galite pakeisti spalvas, šriftus, specialiuosius efektus arba naudoti slaptažodžio simbolius savo teksto laukelyje. Galimas didžiulis lankstumas
Viena labai svarbi teksto laukelio savybė yra „MultiLine“ ypatybė. Jei norite, kad vartotojas į teksto valdiklį įvestų daug teksto, pvz. komentarus, tada „MultiLine“ ypatybė turi būti nustatyta kaip „True“.
Numatytoji reikšmė yra „False“, o tai reiškia, kad, kad ir koks didelis būtų jūsų teksto laukas, įvestas tekstas liks vienoje ištisinėje eilutėje ir bus slinktas iš teksto laukelio. Jis nesisuks aplink dėžutę.
Jei dešiniuoju pelės mygtuku spustelėkite teksto laukelį, kai jis veikia, nėra iššokančiųjų langų, tačiau CTRL+V veiks įklijuojant, o CTRL+C-„Cut“, jei vartotojas nori iškirpti ir įklijuoti tekstą į ir iš kitų programos
Vėlgi, jūs turite parašyti savo kodą, kad galėtumėte tvarkyti tekstą, kurį vartotojas įvedė. Galbūt norėsite jį perkelti į darbalapio langelį
Šį kodą galite pridėti prie teksto laukelio įvykio „Keisti“
123 | Privatus antrinis teksto laukelis1_Keisti ()Skaičiuoklės („Sheet1“). Diapazonas („A1“). Reikšmė = TextBox1.ValuePabaiga Sub |
Taip pat galite įvesti patvirtinimo kodą, kad patikrintumėte, ar naudotojas neįveda šiukšlių, kurios turės pražūtingą poveikį jūsų programai
Pakeitimo įvykis tam netinka, nes jis iškviečiamas kiekvieną kartą, kai vartotojas įveda naują simbolį. Vartotojas galėtų pradėti rašyti eilutę teksto ir iškart pastebėti, kad pažeidė jūsų patvirtinimo taisykles, kol neužbaigė tinkamo teksto.
Jūs naudojate įvykį „Išeiti“. Tai suaktyvinama, kai vartotojas perkelia dėmesį į kitą formos valdiklį, o tai reiškia, kad vartotojas nebeįveda duomenų.
123456 | Privatus antrinis teksto laukelis1_Exit (atšaukti „ByVal“ kaip MSForms.ReturnBoolean)Jei IsNull (TextBox1.Value) Ar Len (TextBox1.Value) <4 Tada„MsgBox“ „Vardas neteisingas“, „vbCritical“TextBox1.SetFocusPabaiga JeiPabaiga Sub |
Kai naudotojas spustelėja kitą formos valdiklį, šis kodas tikrina, ar teksto laukelyje yra nulinė reikšmė, ar mažiau nei 4 simboliai. Jei testas teisingas, tada pasirodo pranešimų langelis su kritine piktograma, informuojantis vartotoją, kad vardas yra neteisingas, o dėmesys perkeliamas atgal į pažeidžiantį teksto lauką, kad vartotojas galėtų jį pataisyti.
Atminkite, kad net jei vartotojas spustelės mygtuką Išeiti, teksto laukelio išėjimo įvykis bus atliktas pirmiausia, todėl tai neleidžia vartotojui išeiti nepataisius įvesties
Formatuokite ir suaktyvinkite įvykius
Kai VBA pirmą kartą sukuria ir sukuria formą, ji suaktyvina įvykį „Inicijuoti“. Tačiau, kadangi forma taip pat rodoma šiuo metu, ji taip pat suaktyvina įvykį „Aktyvinti“. Nuo tada kiekvieną kartą, kai forma pasirodo naudojant „Rodyti“ metodą arba ji yra formų hierarchijos dalis, suaktyvinamas įvykis „Aktyvinti“, bet ne įvykis „Inicijuoti“
Įvykis „Inicijuoti“ įvyksta tik vieną kartą, tačiau įvykis „Aktyvinti“ gali įvykti daug kartų
Savo formoje galbūt norėsite nustatyti numatytas vertes iš darbalapio įvesties valdikliuose, pvz. teksto laukelius, kad jie būtų rodomi pirmą kartą naudojant formą, tačiau vartotojas gali perrašyti numatytuosius nustatymus ir šios naujos reikšmės išliks tol, kol kodas bus paleistas
12345678 | Privatus antrinis vartotojasForm_Initialize ()TextBox1.Value = Sheets ("Sheet1"). Diapazonas ("A1"). ReikšmėJei TextBox1.Value = ”” TadaTextBox1.Visible = NetiesaKitasTextBox1.Visible = TiesaPabaiga JeiPabaiga Sub |
Įvykį „Inicijuoti“ galite rasti antrame kodo lango išskleidžiamajame meniu, o vartotojo formos pavadinimą - pirmame.
Šis kodas „Sheet1“ A1 langelyje esančią vertę naudos kaip numatytąją reikšmę teksto laukelyje, sukurtame anksčiau šiame straipsnyje. Kai forma pirmą kartą pasirodo, bus rodoma numatytoji reikšmė. Tada vartotojas gali perrašyti numatytąją vertę ir ji bus išsaugota. Jei „CellA1“ tuščias, teksto laukelis bus paslėptas, kitaip jis bus matomas
Numatytoji vertė taip pat gali būti užkoduota:
1 | TextBox1.Value = „Jonas Smitas“ |
Taip pat galbūt norėsite įsitikinti, kad naudotojo įvestos vertės vėl atsiranda, kai vartotojas įjungia šią formą konkrečioje „Excel“ sesijoje. VBA kodas gali lengvai įrašyti reikšmes atgal į darbaknygės langelius naudodami valdiklio įvykį „Išeiti“ ir iš naujo jas įdiegti naudodami formos įvykį „Aktyvinti“
123 | Privatus antrinis teksto laukelis1_Exit (atšaukti „ByVal“ kaip MSForms.ReturnBoolean)Skaičiuoklės („Sheet1“). Diapazonas („A10“). Reikšmė = TextBox1.ValuePabaiga Sub |
123 | Privatus antrinis naudotojasForm_Activate ()TextBox1.Value = Sheets ("Sheet1"). Diapazonas ("A10"). ReikšmėPabaiga Sub |
Šis kodas padės vartotojo vertėms išlikti ir užtikrinti, kad jos bus išsaugotos kartu su likusia darbo knyga
Jūsų paraiškos ir formų išsaugojimas
Išsaugojus „Excel“ darbaknygę, kurioje yra jūsų formos, taip pat išsaugomos visos formos ir jų VBA kodas. Tačiau visos reikšmės, kurias formos turi, kol jos rodomos, bus prarastos.
Svarbu parašyti kodą, kad vartotojui išeinant iš darbaknygės ar formos vertės būtų įrašytos atgal į darbaknygės langelius ir taip išsaugotos.
Modalinės ir nemodalinės formos
Pati forma turi savybę „Show Modal“. Pagal numatytuosius nustatymus tai nustatyta į „True“, tačiau jį galima pakeisti į „False“ (nemodalinis)
Jei forma yra modalinė, tai reiškia, kad rodant formą negalima pasiekti jokių „Excel“ funkcijų. Tai apima jūsų kodą VBE lange. Galite peržiūrėti kodą, tačiau žymeklis ir klaviatūra yra išjungti.
Nemodaline forma galite pasiekti visas „Excel“ funkcijas, įskaitant langą VBE, kol forma rodoma.
Tai svarbu vartotojo elgesio kontrolės požiūriu
Formos uždarymas
Kad ir kaip gerai parašytumėte savo kodą, kad priverstumėte naudotoją pasirinkti tam tikrą maršrutą, jis gali lengvai jį apeiti spustelėdamas „Uždaryti“ X viršutiniame dešiniajame formos kampe
Galite to išvengti, pakeisdami formos įvykį „QueryClose“
1234 | Privatus antrinis vartotojasForm_QueryClose (Atšaukti kaip sveiką skaičių, uždaryti režimą kaip sveiką skaičių)Atšaukti = tiesa„MsgBox“ Šis veiksmas išjungtasPabaiga Sub |
Įvykis „QueryClose“ suaktyvinamas, kai naudotojas spustelėja formos „Uždaryti“ X. Šis kodas atšaukia veiksmą, todėl vartotojas yra priverstas naudoti jūsų mygtuką „Išeiti“ ir kodą, kurį turite po juo.
Valdiklių įjungimas ir išjungimas
Visi jūsų formos valdikliai turi ypatybę „Įgalinta“, kurios vertė yra „True“ arba „False“. Jei tai klaidinga, valdiklis yra pilkas. Tai galima pamatyti, bet negalima naudoti.
Taip pat yra ypatybė, vadinama „Matoma“, kuri vėl nustatyta kaip „Tiesa“ arba „Netiesa“.
Galite parašyti kodą, kad tam tikras valdiklis taptų netinkamas naudoti arba kad jis būtų visiškai nematomas vartotojui. Naudodami teiginį „Jei“ galite pasirinkti aplinkybes, kada tai reikia padaryti
Pvz., Iš pradžių galite išjungti mygtuką „Išeiti“, kol vartotojas neįves reikšmės į „TextBox1“ (vardas)
123 | Privatus antrinis vartotojasForm_Initialize ()CommandButton1.Enabled = NetiesaPabaiga Sub |
1234567 | Privatus antrinis teksto laukelis1_Keisti ()Jei Len (TextBox1.Value)> 0 TadaCommandButton1.Enabled = TiesaKitasCommandButton1.Enabled = NetiesaPabaiga JeiPabaiga Sub |
Šis kodas naudoja formą „Inicijuoti“, kad išjungtų išėjimo mygtuką (1 komandinis mygtukas), kai forma pirmą kartą pasirodys, ir tada naudoja „Keisti“ įvykį „TextBox1“ (pavadinimas), kad įjungtų mygtuką Išeiti, jei kažkas buvo įvesta arba išjungta jei langelis tuščias.
Įvykis „Keisti“ suaktyvinamas kiekvieną kartą, kai teksto laukelyje įvedamas arba ištrinamas naujas simbolis. Jei naudotojas bando įvesti tekstą, kad mygtukas būtų įjungtas, ir tada ištrina visą tekstą, mygtukas iš karto bus išjungtas