VBA Userforms
Userform ir ļoti svarīga VBA programmēšanas sastāvdaļa. Tas ļauj jums izveidot profesionāla izskata lietotāja interfeisu, lai sazinātos ar jūsu VBA lietojumprogrammas lietotājiem. Tas arī ļauj pilnībā kontrolēt lietotāju, ko viņš dara ar jūsu darbgrāmatu.
Jūs, protams, varat izmantot darblapas šūnas, lai no lietotāja pieņemtu parametrus, taču lietotāja veidlapa rada daudz labāku lietotāja pieredzi.
Paplašinot lietotāja formas augstumu un platumu līdz Excel loga izmēram, jūs varat padarīt savu lietojumprogrammu līdzīgu parastajai Windows lietojumprogrammai, lietotājam pilnīgi nezinot, ka viņš izmanto Excel kā saimniekdatoru.
Jums ir pieejamas visas parastās Windows vadīklas, piemēram, nolaižamās izvēlnes, sarakstu lodziņi un izvēles rūtiņas. Jums ir arī milzīgs metožu, notikumu un rekvizītu klāsts, ko izmantot, lai uzlabotu lietotāju pieredzi.
Svarīgs punkts ir tas, ka, parādot iebūvētu vai modālu lietotāja formu, jūs nevarat rediģēt savu kodu VBE un piekļūt nevienai Excel funkcionalitātei. Tikai tad, kad veidlapa ir aizvērta, kursors parādīsies jūsu kodā.
Iebūvēta VBA Userforms
Excel VBA kā vairākas iebūvētas formas, kuras var izmantot, lai sazinātos ar lietotāju.
Ziņojumu lodziņš
Šī ir visbiežāk izmantotā forma VBA. Tas vienkārši parāda īsziņu, iespējams, informējot lietotāju, ka viņš ir ievadījis nederīgu ievadi vai ka VBA process ir pabeigts. Vienkāršākajā veidā tie parāda teksta virkni, taču varat pievienot arī ikonu, piemēram, jautājumu vai izsaukuma zīmi, un ziņu lodziņam piešķirt citu nosaukumu.
Šis ir pamata piemērs. Ir tikai viena poga, uz kuras noklikšķināt, un virsrakstjoslā ir rakstīts “Microsoft Excel”
Kods, kā to izveidot, ir ļoti vienkāršs:
123 | ApakšpārbaudeMsgBox ()MsgBox "Šis process ir pabeigts"Beigu apakš |
Varat izmantot dažādus parametrus, lai pievienotu pogas, ikonas un mainītu virsrakstjoslu
123456789 | ApakšpārbaudeMsgBox ()Dim Ret kā variantsRet = MsgBox ("Vai esat pārliecināts?", VbYesNo Vai vbQuestion, "Mana lietojumprogramma")Ja Ret = vbJā Tad'Jūsu process šeitCitādiIziet no apakšnodaļasBeigas JaBeigu apakš |
Šis kods pievieno pogas “Jā” un “Nē” un jautājuma zīmes ikonu un nosaka virsrakstjoslu. Ņemiet vērā, ka varat apvienot ziņojumu lodziņa stilus, izmantojot operatoru “Vai”
Turklāt, atgriežot vērtību no ziņojumu lodziņa, atgriešanās mainīgais ir jādefinē kā variants vai vbMsgBoxResult, un ziņojuma lodziņa paziņojumā ir jāizmanto iekavas,
Ievades kaste
VBA ir iebūvēts ļoti vienkāršs ievades lodziņš, lai gan tas ir diezgan ierobežojošs attiecībā uz to, ko ar to var darīt. Ja varat, labāk ir izveidot pielāgotu lietotāja formu
12345 | Sub TestInputBox ()Dim Ret kā virkneRet = InputBox ("Lūdzu, ievadiet savu vārdu", "Ievadiet vārdu")MsgBox RetBeigu apakš |
Parametros varat pievienot arī ievades noklusējuma vērtību.
Iegūstiet atvērtā faila nosaukumu
Tas ļauj izmantot Windows faila dialoglodziņu VBA kodā. Lietotājam tas izskatās ļoti iespaidīgi, kad tas darbojas, taču to ir ļoti vienkārši iekļaut, un jūs automātiski iegūstat visas failu dialoga funkcijas.
Kods ierobežo lietotājam tikai Excel failus. Diemžēl viņi varēja ierakstīt faila nosaukumu, kas nav Excel, lodziņā Faila nosaukums un noklikšķiniet uz pogas Atvērt, tāpēc jums būs nepieciešams kods, lai pārliecinātos, ka ir atlasīts Excel fails.
Pirms faila dialoglodziņa parādīšanas izmantojiet komandu “ChDir”, lai mainītu noklusējuma direktoriju atbilstoši savām prasībām
Ievērojiet aizstājējzīmju izmantošanu parametrā FileFilter. Parādāmie Excel faili varētu būt pirms 2007. gada, tiem būtu makro vai tie būtu bināri, tāpēc filtrs ir “.xls*”.
123456 | Sub TestFileDialog ()Dim MyFile kā virkneChDir "C: \ temp"MyFile = Application.GetOpenFilename ("Excel faili (*.xls*),*. Xls*", "Atlasīt failu")MsgBox MyFileBeigu apakš |
Ja nepieciešams, varat ļaut lietotājam vienlaikus atlasīt vairākus failus, izmantojot parametru MultiSelect. Noklusējums ir False (tikai vienai atlasīšanai)
12345678 | Sub TestFileDialog ()Dim MyFile kā variantsChDir "C: \ temp"MyFile = Application.GetOpenFilename ("Excel faili (*.xls*),*. Xls*", "Atlasīt failu",, True)Katram f MyFileMsgBox fNākamais fBeigu apakš |
Lai atlasītu vairākus failus, lietotājs failu dialoglodziņā tur nospiestu taustiņu Shift.
Katrai cilpai tiek parādīts katra izvēlētā faila pilns ceļš un nosaukums
Excel noklusējuma dialoglodziņi
Programmā Excel VBA ir dialoglodziņu kolekcija, kuru varat izmantot, lai parādītu jebkuru standarta Excel dialoglodziņu. Negatīvie ir tas, ka jūs nevarat piekļūt parametriem, kurus lietotājs ir izvēlējies, vai mainīt dialoglodziņa izskatu, taču šie dialogi var būt noderīgi, lai novirzītu lietotāju uz standarta Excel funkciju un ļautu viņiem izvēlēties konkrētus parametrus dialoglodziņā.
Labs piemērs tam ir parādīt dialoglodziņu “Drukāt” no VBA:
123 | Sub TestPrintDialog ()Application.Dialogs (xlDialogPrint). ParādītBeigu apakš |
Atverot iekavās Dialogs kolekcijā, jūs redzēsit sarakstu ar milzīgu skaitu konstantu iebūvētiem dialogiem. Ir vērts eksperimentēt ar dažām no šīm iespējām savā kodā
Jauna lietotāja veidlapas ievietošana
Jūs varat izveidot savas pielāgotās lietotāja veidlapas, ievietojot lietotāja veidlapu Visual Basic Editor (VBE)
Lai to izdarītu, atlasiet Ievietot | UserForm VBE izvēlnes joslā.
Noklikšķiniet uz “UserForm”, un tiks parādīta jauna tukša veidlapa, kurā varēsit attīstīties
Pati faktiskā veidlapa (parādīta kā “UserForm1”) izskatās diezgan maza, taču jūs varat izmantot apkārt esošos rokturus, lai palielinātu vai padarītu to vēl mazāku, velkot rokturus ar kursoru.
Ekrāna apakšējā kreisajā stūrī ir rekvizītu logs. Tā kā uzmanība tiek pievērsta tieši pašai veidlapai, tajā ir ietvertas visas veidlapai raksturīgās īpašības, kas raksturīgas šai veidlapai.
Ņemiet vērā, ka tad, kad sākat pievienot vadīklas, piemēram, kombinētās kastes un komandu pogas, visām šīm vadīklām ir savs īpašību kopums, un tās var ļoti atšķirties katrā no tām.
Pašlaik redzamie rekvizīti attiecas tikai uz pašu veidlapu.
Rekvizīts “Nosaukums” ir nosaukums, ko izmanto, lai definētu jūsu veidlapas objektu VBA kodā. Iespējams, vēlēsities izmantot kaut ko nozīmīgāku objekta nosaukumam, lai, pārskatot savu kodu, būtu skaidrs, kura forma tiek izmantota.
Īpašums “Nosaukums” atspoguļosies arī logā “Projektu pētnieks” ekrāna augšējā kreisajā stūrī
Jūs vēlaties mainīt veidlapas virsrakstjoslu uz kaut ko citu, nevis “UserForm1”, un to varat izdarīt, ierakstot jauno tekstu īpašumā “Paraksts”.
Jūs varat veikt milzīgas izmaiņas, kā lietotājs redz jūsu veidlapu. Jūs varat mainīt krāsas, pievienot attēlus, piem. uzņēmuma logotips, mainiet pozīciju, izmantojot “kreiso” un “augšējo”, mainiet izmēru, izmantojot “augstumu” un “platumu”, mainiet peles rādītāju un vēl daudz ko citu
Visus šos rekvizītus var arī programmatiski mainīt jebkurai vadīklai, ko esat pievienojis savai veidlapai. Piemēram, lietotājs var izvēlēties no saraksta lodziņa vadīklas, un jūs, iespējams, vēlēsities atspējot vai slēpt citas vadīklas, pamatojoties uz lietotāja izvēli
Rīklodziņa izmantošana
Jūs pamanīsit, ka, noklikšķinot uz pašas veidlapas, tiek parādīts uznirstošais rīklodziņš. Ja noklikšķināsiet jebkur citur, piem. rekvizītu rūtī, tā pazudīs, bet atkal parādīsies, noklikšķinot uz veidlapas.
Instrumentu kaste nodrošina veidlapas dizaina patieso mehāniku. Tas ļauj jūsu veidlapai pievienot parastās Windows vadīklas, kas lietotājiem ir pazīstamas.
Jūs pamanīsit, ka veidlapā ir punktu tīkls. Šis ir “snapgrid”, lai, veidlapai pievienojot vadīklu, tā automātiski izlīdzinātu pozīciju ar punktu rindām un kolonnām. Tas ārkārtīgi palīdz saskaņot vadības ierīces, lai vadības ierīces netiktu rautas
Ja noklikšķināt uz vadīklas un pēc tam nolemjat to neizmantot, noklikšķinot uz ikonas “Bultiņa” rīkjoslas augšējā kreisajā stūrī, kursors tiks mainīts uz parasto.
Rīku kopai varat pievienot papildu vadīklas, izmantojot rīkus | Papildu vadīklas VBE izvēlnē. To ir pieejams ievērojams skaits, taču atkarībā no jūsu Windows un Excel versijām tās ne vienmēr darbojas, tāpēc bieži ir jāveic daži eksperimenti.
Turklāt jūsu lietotājiem var nebūt piekļuves dažām no šīm papildu vadīklām vai arī viņi izmanto vecākas Windows un Excel versijas, kas var radīt problēmas. Lielās organizācijās, it īpaši, ja tās ir globālas, nav tādas lietas kā standarta uzbūves dators, uz kuru varat paļauties!
Izejas pogas pievienošana veidlapai
Komandas pogu ir vienkārši pievienot veidlapai. Tas izskatās tāpat kā pogas, kuras redzat citās Windows formās, parasti kā poga “Labi” vai “Atcelt”.
Rīkjoslā noklikšķiniet uz komandas pogas ikonas. Šī ir otrā ikona apakšējā ikonu rindā pa kreisi. Skatiet attēlu iepriekš. Uz tā ir burti “ab”.
Jūs varat vai nu turēt peles pogu nospiestu, un vilkt vadīklu uz savu veidlapu, vai arī pārvietot kursoru uz formu, kur tā tiks mainīta uz “krusta” kursoru, un jūs varat novietot un izmērīt savu pogu
Velkot vadīklu uz veidlapu, tiks parādīts pogas noklusējuma izmērs. Pārvietojot kursoru uz veidlapu, varat mainīt pogas izmēru, velkot “krusta” kursoru pāri veidlapai
Jūsu veidlapa tagad izskatīsies šādi:
Pogas paraksts būs noklusējuma teksts, taču jūs vēlaties to mainīt atbilstoši savām prasībām. Varat noklikšķināt uz pogas esošā teksta (“CommandButton1”), un tas ļaus tieši rediģēt parakstu.
To var mainīt arī rekvizītu logā (ekrāna apakšējā kreisajā stūrī). Jūs redzēsit īpašumu ar nosaukumu “Paraksts” un varēsit rediģēt tā vērtību. Mainiet to uz “Iziet”
Tāpat kā veidlapas rekvizīti, rekvizīts “Nosaukums” nosaka nosaukumu, kas tiks izmantots jūsu VBA kodā. Iespējams, vēlēsities izmantot kodu, kas ir nozīmīgāks un acīmredzamāks. To var ievadīt īpašumā “Vārds”.
Jūs varat pārvietot pogu, velkot to pa veidlapu, un varat mainīt tās izmēru, noklikšķinot uz pogu rokturiem (baltas kvadrātveida kastes) un velkot rokturus, lai padarītu to lielāku vai mazāku
Varat arī mainīt pogas izmēru, mainot augstuma un platuma vērtības rekvizītu logā
Jūs varat apskatīt savu veidlapu programmā Excel, noklikšķinot uz zaļā trīsstūra VBE rīkjoslā vai nospiežot F5
Jūs varat izsaukt savu veidlapu no moduļa VBA koda, izmantojot metodi “Rādīt”
123 | Sub ShowForm ()UserForm1.ShowBeigu apakš |
Jūsu lietotāja veidlapa faktiski ir globāls objekts, un to var izsaukt no jebkuras vietas jūsu kodā
Pašlaik jūsu komandas poga neko nedara, jo aiz tās nav VBA koda. Tas jāraksta pašam! Viss, kas šobrīd var notikt, ir tas, ka varat noklikšķināt uz “Aizvērt” X veidlapas augšējā labajā stūrī.
Lai pievienotu VBA kodu, veiciet dubultklikšķi uz veidlapas pogas
Tas jūs aizvedīs uz parasto VBA koda logu un parādīs noklusējuma klikšķa notikumu.
Lai aizvērtu veidlapu, jūs izmantojat slēpšanas metodi, kā arī varat pievienot jebkuru citu kodu, piemēram, ziņojumu lodziņu, lai apstiprinātu lietotājam notikušo.
Ņemiet vērā, ka koda loga augšpusē ir divas nolaižamās izvēlnes. Pirmais ļauj atlasīt veidlapas vadīklas, bet otrais parāda visus notikumus, kas ir pieejami koda pievienošanai. Pogai acīmredzamais ir notikums “Noklikšķināt”, bet ir arī citi, piemēram, “Dubultklikšķis” vai “Peles pārvietošana”
Palaižot veidlapu tagad, poga faktiski kaut ko dara. Veidlapa pazūd un tiek parādīts ziņojumu lodziņš, kas apstiprina, ka veidlapa ir aizvērta
Jūs, protams, varat palielināt izejas kodu. Iespējams, vēlēsities parādīt citu veidlapu vai rīkoties ar parametriem, kurus lietotājs ir ievadījis jūsu veidlapā
Etiķetes vadīklas pievienošana veidlapai
Etiķetes vadīklas ir paredzētas, lai lietotājs tiktu informēts par to, kāda veida dati ir jāievada veidlapas vadīklā, piem. tekstlodziņš, nolaižamā izvēlne utt. Uz etiķetes pēc noklusējuma nav robežu, taču, ja nepieciešams, tās var pievienot, izmantojot rekvizītu logu.
Kā vadīklas tās tiek lasītas tikai lietotājam, un tās ir vienkārši veids, kā ievietot veidlapā tekstu neatkarīgi no tā, vai tas ir treknrakstā iekļauts virsraksts, vai norādījums, ko ievadīt vai izvēlēties.
Lai pievienotu iezīmi, rīkjoslā noklikšķiniet uz ikonas “A” (augšējā rinda, otrā no kreisās) un veiciet dubultklikšķi uz tās vai pārvietojiet kursoru uz formu un izvēlieties pozīciju un izmēru.
Izmantojot rekvizītu “Paraksts” rekvizītu logā vai noklikšķinot uz etiķetes vadīklas, varat ievadīt etiķetes vadīklas tekstu.
Ņemiet vērā, ka teksts tiks iesaiņots atbilstoši etiķetes vadīklas lielumam, un, ja teksta virkne ir pārāk gara, tā pilnībā netiks parādīta veidlapā, tāpēc jums jābūt uzmanīgam ar etiķetes vadīklas izmēru.
Izmantojot rekvizītu logu, varat mainīt etiķetes vadīklas izskatu, izmantojot dažādas krāsas, fontus, aizmugures stilu, piem. ja tas pārklāj attēlu un vēlaties, lai tas būtu caurspīdīgs
Iezīmju vadībai nav jāizveido kods. Galvenais mērķis ir pievienot veidlapai tekstu, lai lietotājs varētu redzēt, kā darbojas visas pārējās vadīklas
Teksta vadīklas pievienošana veidlapai
Teksta vadīkla tiek izmantota, lai lietotājs varētu ievadīt tekstu, piemēram, ievadot vārdu vai komentārus
Teksta vadīkla tiek pievienota no rīkjoslas, noklikšķinot uz teksta vadības ikonas (augšējā rindā, trešā no kreisās) un veicot dubultklikšķi vai velkot vadīklu savā veidlapas pozīcijā.
Teksta vadību bieži sajauc ar etiķetes vadīklu, bet teksta vadīkla ir lietotāja ievade
Teksts “Ievadiet savu vārdu” ir etiķetes vadīkla, kā aprakstīts iepriekš, un tagad mums ir gatavs balts tekstlodziņš, kurā lietotājs var kaut ko ierakstīt
Izmantojot rekvizītu logu, varat mainīt tekstlodziņa krāsas, fontus, specefektus vai izmantot paroles rakstzīmes. Ir pieejama milzīga elastība
Viens ļoti svarīgs teksta lodziņa rekvizīts ir īpašums “MultiLine”. Ja vēlaties, lai lietotājs teksta vadīklā ievadītu lielu teksta daudzumu, piem. komentārus, tad rekvizītam “MultiLine” jābūt iestatītam uz True.
Tā ir noklusējuma vērtība False, kas nozīmē, ka, lai arī cik liels būtu jūsu tekstlodziņš, ievadītais teksts paliks vienā nepārtrauktā rindā un ritinās ārā no tekstlodziņa. Tas netiks iesaiņots kastē.
Ja ar peles labo pogu noklikšķiniet uz teksta lodziņa, kad tas darbojas, netiek parādīts uznirstošais logs, bet CTRL+V darbosies ielīmēšanai un CTRL+C darbosies izgriešanai, ja lietotājs vēlas izgriezt un ielīmēt tekstu uz un no lietojumprogrammas
Atkal jums ir jāraksta savs kods, lai tiktu galā ar lietotāja ievadīto tekstu. Iespējams, vēlēsities to pārsūtīt uz darblapas šūnu
Šo kodu varat pievienot tekstlodziņa notikumam “Mainīt”
123 | Privāta apakšteksta kaste1_Change ()Izklājlapas ("Sheet1"). Diapazons ("A1"). Vērtība = TextBox1.ValueBeigu apakš |
Iespējams, vēlēsities ievietot kādu validācijas kodu, lai pārbaudītu, vai lietotājs neievada atkritumus, kas postoši ietekmēs jūsu lietojumprogrammu
Izmaiņu notikums tam nav labs, jo tas tiek izsaukts katru reizi, kad lietotājs ievada jaunu rakstzīmi. Lietotājs varētu sākt rakstīt teksta virkni un uzreiz atklāt, ka ir pārkāpis jūsu validācijas noteikumus, pirms ir pabeidzis derīgu tekstu.
Jūs izmantojat notikumu “Iziet”. Tas tiek aktivizēts, kad lietotājs pārvieto fokusu uz citu veidlapas vadīklu, kas nozīmē, ka lietotājs vairs neievada datus.
123456 | Privāts apakštekstsBox1_Exit (ByVal Atcelt kā MSForms.ReturnBoolean)Ja IsNull (TextBox1.Value) Vai Len (TextBox1.Value) <4 TadMsgBox "Nosaukums nav derīgs", vbCriticalTextBox1.SetFocusBeigas JaBeigu apakš |
Kad lietotājs noklikšķina uz citas veidlapas vadīklas, šis kods pārbauda vai nu nulles vērtību tekstlodziņā, vai arī mazāk par 4 rakstzīmēm. Ja pārbaude ir patiesa, tiek parādīts ziņojumu lodziņš ar kritisku ikonu, lai informētu lietotāju, ka vārds nav derīgs, un fokuss tiek pārvietots atpakaļ uz pārkāpuma teksta lodziņu, lai lietotājs to labotu.
Ņemiet vērā, ka pat tad, ja lietotājs noklikšķina uz pogas Iziet, vispirms tiks izpildīts tekstlodziņa iziešanas notikums, tāpēc tas neļaus lietotājam iziet, neizlabojot ievadīto informāciju
Formalizējiet un aktivizējiet notikumus veidlapā
Kad VBA pirmo reizi izveido un izveido veidlapu, tas izraisa notikumu “Inicializēt”. Tomēr, tā kā veidlapa tiek parādīta arī šajā brīdī, tā arī aktivizē notikumu “Aktivizēt”. Turpmāk katru reizi, kad veidlapa tiek parādīta, izmantojot metodi “Rādīt” vai veidlapu hierarhijas ietvaros, tiek aktivizēts notikums “Aktivizēt”, bet ne “inicializēt”.
Notikums “Inicializēt” notiek tikai vienu reizi, bet “Aktivizēt” var notikt daudzas reizes
Veidlapā, iespējams, vēlēsities iestatīt noklusējuma vērtības no darblapas ievades vadīklās, piem. tekstlodziņus, lai tie tiktu parādīti, pirmo reizi izmantojot veidlapu, bet lietotājs varētu pārrakstīt noklusējuma vērtības un šīs jaunās vērtības paliks spēkā, kamēr kods darbojas
12345678 | Privāts apakšlietotājsForm_Initialize ()TextBox1.Value = Sheets ("Sheet1"). Diapazons ("A1"). VērtībaJa TextBox1.Value = ”” TadTextBox1.Visible = NepareizsCitādiTextBox1.Visible = TrueBeigas JaBeigu apakš |
Notikumu “Inicializēt” varat atrast koda loga otrajā nolaižamajā izvēlnē, bet lietotāja veidlapas nosaukumu - pirmajā nolaižamajā izvēlnē.
Šis kods izmantos vērtību “Sheet1” šūnā A1 kā noklusējuma vērtību tekstlodziņā, kas izveidots iepriekš šajā rakstā. Kad veidlapa parādās pirmo reizi, parādīsies noklusējuma vērtība. Pēc tam lietotājs var pārrakstīt noklusējuma vērtību, un tā tiks saglabāta. Ja CellA1 ir tukšs, tekstlodziņš tiks paslēpts, pretējā gadījumā tas būs redzams
Noklusējuma vērtība var būt arī kodēta:
1 | TextBox1.Value = “Džons Smits” |
Varat arī pārliecināties, ka lietotāja ievadītās vērtības tiek parādītas ikreiz, kad lietotājs aktivizē šo veidlapu konkrētajā Excel sesijā. VBA kods var viegli ierakstīt vērtības darbgrāmatas šūnās, izmantojot vadīklas notikumu “Iziet”, un atjaunot tās, izmantojot veidlapas notikumu “Aktivizēt”
123 | Privāts apakštekstsBox1_Exit (ByVal Atcelt kā MSForms.ReturnBoolean)Izklājlapas ("Sheet1"). Diapazons ("A10"). Vērtība = TextBox1.ValueBeigu apakš |
123 | Privāts apakšlietotājsForm_Activate ()TextBox1.Value = Sheets ("Sheet1"). Diapazons ("A10"). VērtībaBeigu apakš |
Šis kods padarīs lietotāja vērtības noturīgas, kā arī nodrošinās to saglabāšanu kopā ar pārējo darbgrāmatu
Pieteikuma un veidlapu saglabāšana
Saglabājot Excel darbgrāmatu, kurā ir jūsu veidlapas, tiek saglabātas arī visas veidlapas un to VBA kods. Tomēr visas vērtības, kuras veidlapas saglabā to parādīšanas laikā, tiks zaudētas.
Ir svarīgi rakstīt kodu, lai, kad lietotājs iziet no darbgrāmatas vai veidlapas, vērtības tiktu ierakstītas atpakaļ darbgrāmatas šūnās un tādējādi tiktu saglabātas.
Modālās un nemodālās formas
Veidlapai ir īpašums “Show Modal”. Pēc noklusējuma tas ir iestatīts uz True, bet to var mainīt uz False (nemodāls)
Ja veidlapa ir modāla, tas nozīmē, ka veidlapas parādīšanas laikā nevienai no Excel funkcijām nevar piekļūt. Tas ietver jūsu kodu VBE logā. Jūs varat apskatīt kodu, bet kursors un tastatūra ir atspējoti.
Nemodālā veidā veidlapas parādīšanas laikā varat piekļūt visām Excel funkcijām, ieskaitot VBE logu.
Tas ir svarīgi no lietotāju uzvedības kontroles viedokļa
Veidlapas aizvēršana
Lai arī cik labi jūs rakstītu savu kodu, lai piespiestu lietotāju noteiktā maršrutā, viņš var to viegli apiet, veidlapas augšējā labajā stūrī noklikšķinot uz “Aizvērt” X
Lai to novērstu, mainiet veidlapas notikumu “QueryClose”
1234 | Privāts apakšlietotājsForm_QueryClose (Atcelt kā veselu skaitli, Aizvērt režīmu kā vesels skaitlis)Atcelt = taisnībaMsgBox "Šī darbība ir atspējota"Beigu apakš |
Notikums “QueryClose” tiek aktivizēts, kad lietotājs noklikšķina uz veidlapas “Aizvērt” X. Šis kods atceļ darbību, tāpēc lietotājs ir spiests izmantot jūsu pogu “Iziet” un kodu, kas atrodas aiz tā.
Vadības iespējošana un atspējošana
Visām veidlapas vadīklām ir īpašums “Iespējots”, kura iestatījums ir Patiess vai Nepareizs. Ja tas ir nepatiess, vadīkla ir pelēka. To var redzēt, bet to nevar izmantot.
Ir arī īpašums “Redzams”, kas atkal ir iestatīts uz Patiess vai nepatiess.
Jūs varat rakstīt kodu, lai noteiktu vadīklu padarītu nelietojamu vai padarītu to lietotājam pilnīgi neredzamu. Izmantojot paziņojumu “Ja”, varat izvēlēties apstākļus, kad tas jādara
Piemēram, sākotnēji varat atspējot pogu “Iziet”, līdz lietotājs ir ievadījis vērtību tekstlodziņā1 (vārds)
123 | Privāts apakšlietotājsForm_Initialize ()CommandButton1.Enabled = NepareiziBeigu apakš |
1234567 | Privāta apakšteksta kaste1_Change ()Ja Len (TextBox1.Value)> 0 TadCommandButton1.Enabled = PatiesaCitādiCommandButton1.Enabled = NepareiziBeigas JaBeigu apakš |
Šis kods izmanto veidlapu “Initialize”, lai atspējotu iziešanas pogu (1. komandas poga), kad veidlapa pirmo reizi parādās, un pēc tam TextBox1 (nosaukums) izmanto notikumu “Mainīt”, lai iespējotu pogu Iziet, ja kaut kas ir ierakstīts vai atspējots ja lodziņš ir tukšs.
Notikums “Mainīt” tiek aktivizēts ikreiz, kad tekstlodziņā tiek ierakstīta vai izdzēsta jauna rakstzīme. Ja lietotājs mēģina ievadīt tekstu, lai poga būtu iespējota, un pēc tam izdzēš visu tekstu, poga uzreiz tiks atspējota