VBA vartotojo formų kūrimas

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

wave wave wave wave wave