VBA Userforms
Userform on erittäin tärkeä osa VBA: n ohjelmointia. Sen avulla voit rakentaa ammattimaisen käyttöliittymän kommunikoimaan VBA -sovelluksesi käyttäjien kanssa. Sen avulla voit myös hallita käyttäjää täysin, mitä he tekevät työkirjaasi.
Voit tietysti käyttää laskentataulukon soluja hyväksyäksesi parametrit käyttäjältä, mutta käyttäjämuoto tuottaa paljon paremman käyttökokemuksen.
Laajentamalla käyttäjämuodon korkeuden ja leveyden Excel -ikkunan kokoon voit saada sovelluksesi näyttämään normaalilta Windows -sovellukselta, jolloin käyttäjä ei ole täysin tietoinen siitä, että he käyttävät Exceliä isäntänä.
Kaikki tavalliset Windows -ohjaimet, kuten avattavat valikot, luetteloruudut ja valintaruudut ovat käytettävissäsi. Käytettävissäsi on myös valtava valikoima menetelmiä, tapahtumia ja ominaisuuksia käyttökokemuksen parantamiseksi.
Tärkeä asia on, että kun näytät sisäänrakennetun tai modaalisen käyttäjämuodon, et voi muokata koodia VBE: ssä tai käyttää mitään Excel -toimintoja. Kohdistin näkyy koodissasi vasta, kun lomake on suljettu.
Sisäänrakennettu VBA Userforms
Excel VBA useina sisäänrakennettuina lomakkeina, joita voidaan käyttää kommunikoimaan käyttäjän kanssa.
Viestilaatikko
Tämä on VBA: n yleisimmin käytetty muoto. Se näyttää vain tekstiviestin, joka mahdollisesti ilmoittaa käyttäjälle, että hän on syöttänyt virheellisen syötteen tai että VBA -prosessi on päättynyt. Yksinkertaisimmassa muodossaan ne näyttävät tekstimerkkijonon, mutta voit myös lisätä kuvakkeen, kuten kysymys- tai huutomerkin, ja antaa viestiruudulle eri otsikon.
Tämä on perusesimerkki. Napsautettavaa painiketta on vain yksi, ja otsikkorivillä lukee "Microsoft Excel"
Koodi tämän tuottamiseksi on hyvin yksinkertainen:
123 | AlatestiMsgBox ()MsgBox "Tämä prosessi on valmis"End Sub |
Voit lisätä painikkeita, kuvakkeita ja muuttaa otsikkoriviä eri parametreilla
123456789 | AlatestiMsgBox ()Dim Ret VaihtoehtonaRet = MsgBox ("Oletko varma?", VbYesNo Tai vbQuestion, "My Application")Jos Ret = vbKyllä'Sinun prosessisi täälläMuuLopeta SubLoppu JosEnd Sub |
Tämä koodi lisää Kyllä- ja Ei -painikkeen ja kysymysmerkkikuvakkeen ja asettaa otsikkorivin. Huomaa, että voit yhdistää viestiruudun tyylejä käyttämällä tai -operaattoria
Lisäksi, kun palautat arvon viestiruudusta, palautusmuuttuja on määritettävä muunnelmana tai vbMsgBoxResultina ja sanomalaatikon lausekkeen on käytettävä hakasulkeita,
Syöttölaatikko
VBA: hon on rakennettu hyvin yksinkertainen syöttölaatikko, vaikka se on melko rajoittavaa, mitä voit tehdä sen kanssa. Jos voit, on parempi suunnitella mukautettu käyttäjämuoto
12345 | Sub TestInputBox ()Dim Ret kuin merkkijonoRet = InputBox ("Anna nimesi", "Anna nimi")MsgBox RetEnd Sub |
Voit myös lisätä syötteen oletusarvon parametreihin.
Hanki avoin tiedostonimi
Tämän avulla voit käyttää Windows -tiedostoikkunaa VBA -koodissasi. Se näyttää käyttäjälle erittäin vaikuttavalta, kun se on käynnissä, mutta se on erittäin helppo sisällyttää ja saat automaattisesti kaikki tiedostojen valintaikkunat sen kanssa.
Koodi rajoittaa käyttäjän näkemään vain Excel -tiedostot. Valitettavasti he voivat kirjoittaa muun kuin Excel-tiedostonimen Tiedostonimi-ruutuun ja napsauttaa Avaa-painiketta, joten tarvitset koodin varmistaaksesi, että Excel-tiedosto on valittu.
Käytä ChDir -komentoa muuttaaksesi oletushakemiston omiin tarpeisiisi ennen tiedostovalintaikkunan näyttämistä
Huomaa yleismerkkien käyttö FileFilter -parametrissa. Näytettävät Excel -tiedostot voivat olla ennen vuotta 2007, niillä voi olla makroja tai ne voivat olla binäärisiä, joten suodatin on ".xls*".
123456 | Sub TestFileDialog ()Himmennä MyFile merkkijononaChDir "C: \ temp"MyFile = Application.GetOpenFilename ("Excel -tiedostot (*.xls*),*. Xls*", "Valitse tiedosto")MsgBox MyFileEnd Sub |
Tarvittaessa voit antaa käyttäjän valita useita tiedostoja kerralla käyttämällä MultiSelect -parametria. Oletus on False (vain yksi valinta)
12345678 | Sub TestFileDialog ()Dim MyFile vaihtoehtonaChDir "C: \ temp"MyFile = Application.GetOpenFilename ("Excel -tiedostot (*.xls*),*. Xls*", "Valitse tiedosto",, True)Jokaiselle f -tiedostolle MyFileMsgBox fSeuraava fEnd Sub |
Käyttäjä pitää tiedosto -valintaikkunan Shift -näppäintä alhaalla valitakseen useita tiedostoja.
Jokaiselle silmukalle näyttää kunkin valitun tiedoston koko polun ja nimen
Excelin oletusvalintaikkunat
Excel VBA: ssa on Dialogs -kokoelma, jonka avulla voit näyttää minkä tahansa tavallisen Excel -valintaikkunan. Huonona puolena on, että et voi käyttää käyttäjän valitsemia parametreja tai muuttaa valintaikkunan ulkoasua, mutta nämä valintaikkunat voivat olla hyödyllisiä ohjaamalla käyttäjän Excel -vakiotoimintoon ja antamalla heille mahdollisuuden valita tiettyjä parametreja valintaikkunassa.
Hyvä esimerkki tästä on näyttää Tulosta -valintaikkuna VBA: sta:
123 | AlatestiPrintDialog ()Application.Dialogs (xlDialogPrint) .NäytäEnd Sub |
Kun avaat Dialogs-kokoelman sulkeet, näet luettelon valtavista vakioista sisäänrakennettuihin valintaikkunoihin. Kannattaa kokeilla joitain näistä vaihtoehdoista koodissasi
Uuden käyttäjälomakkeen lisääminen
Voit suunnitella omia mukautettuja käyttäjälomakkeita lisäämällä käyttäjämuodon Visual Basic Editoriin (VBE)
Voit tehdä tämän valitsemalla Lisää | UserForm VBE -valikkorivillä.
Napsauta "UserForm" ja uusi tyhjä lomake ilmestyy valmiina kehittämistä varten
Varsinainen lomake (näytetään nimellä 'UserForm1') näyttää melko pieneltä, mutta voit suurentaa tai pienentää sitä sen ympärillä olevilla kahvoilla vetämällä kahvoista kohdistimella.
Näytön vasemmassa alakulmassa on ominaisuusikkuna. Koska painopiste on suoraan lomakkeessa, se sisältää kaikki lomakkeen ominaisuudet.
Huomaa, että kun alat lisätä säätimiä, kuten yhdistelmäruutuja ja komentopainikkeita, näillä säätimillä on kaikki omat ominaisuutensa, ja ne voivat olla hyvin erilaisia eri toiminnoilla.
Tällä hetkellä näkyvät ominaisuudet koskevat vain itse lomaketta.
Nimi -ominaisuus on nimi, jota käytetään määrittämään lomakeobjektisi VBA -koodissa. Voit halutessasi käyttää jotain merkityksellisempää objektin nimelle, jotta koodia tarkastellessasi on selvää, mitä lomaketta käytetään.
Nimi-ominaisuus näkyy myös näytön vasemmassa yläkulmassa olevaan Project Explorer -ikkunaan
Haluat muuttaa lomakkeen otsikkorivin johonkin muuhun kuin UserForm1, ja voit tehdä tämän kirjoittamalla uuden tekstisi Caption -ominaisuuteen
Voit tehdä valtavan määrän muutoksia siihen, miten käyttäjä näkee lomakkeen. Voit muuttaa värejä, lisätä kuvia esim. yrityksen logo, muuta sijaintia vasemmalla ja ylhäällä, muuta kokoa käyttämällä korkeutta ja leveyttä, vaihda hiiren osoitin ja paljon muuta
Kaikkia näitä ominaisuuksia voidaan myös muuttaa ohjelmallisesti mille tahansa lomakkeeseen lisäämällesi ohjausobjektille. Käyttäjä voi esimerkiksi valita luetteloruudun ohjausobjektista, ja haluat ehkä poistaa käytöstä tai piilottaa muut ohjaimet käyttäjän valinnan perusteella
Työkaluryhmän käyttäminen
Huomaat, että kun napsautat itse lomaketta, näkyviin tulee työkalupakki-ponnahdusikkuna. Jos napsautat muualla, esim. ominaisuusruudussa, se katoaa, mutta tulee uudelleen näkyviin, kun napsautat lomaketta.
Työkalupakki tarjoaa lomakkeen suunnittelun todellisen mekaniikan. Tämän avulla voit lisätä lomakkeeseen tavalliset Windows -ohjaimet, jotka käyttäjät tuntevat.
Huomaat, että lomakkeessa on pisteverkosto. Tämä on "snapgrid", joten kun lisäät ohjausobjektin lomakkeeseen, se kohdistaa sijainnin automaattisesti pisteiden riveihin ja sarakkeisiin. Tämä auttaa valtavasti säätimien säätämisessä, jotta säätimet eivät saisi rosoista ulkonäköä
Jos napsautat ohjainta ja päätät olla käyttämättä sitä, työkalurivin vasemmassa yläkulmassa olevan nuolikuvakkeen napsauttaminen muuttaa kursorin takaisin normaaliksi.
Voit lisätä työkalupakkiin muita työkaluja Työkalut | Lisäohjaimet VBE -valikossa. Näitä on saatavana huomattava määrä, mutta Windows- ja Excel -versioista riippuen ne eivät aina toimi, joten kokeiluja tarvitaan usein.
Käyttäjäsi eivät myöskään voi käyttää joitakin näistä lisäohjaimista tai käyttää vanhempia Windows- ja Excel -versioita, mikä voi aiheuttaa ongelmia. Suurissa organisaatioissa, varsinkin jos ne ovat maailmanlaajuisia, ei ole olemassa sellaista asiaa kuin tavallinen PC, johon voit luottaa!
Poistumispainikkeen lisääminen lomakkeeseen
Komento -painike on helppo lisätä lomakkeeseen. Tämä näyttää samalta kuin painikkeet, joita näet muissa Windows -lomakkeissa, yleensä OK- tai Peruuta -painikkeena.
Napsauta työkalupalkissa olevaa komentopainikekuvaketta. Tämä on toinen kuvake vasemmasta alareunasta. Katso yllä oleva kuva. Siinä on kirjaimet "ab".
Voit joko pitää hiiren painiketta painettuna ja vetää ohjausobjektin lomakkeellesi tai siirtää kohdistimen lomakkeelle, jossa se muuttuu ristikursoriksi ja voit asettaa painikkeen sijainnin ja koon.
Jos vedät ohjausobjektin lomakkeeseen, saat painikkeen oletuskoon. Kun siirrät kohdistimen lomakkeeseen, voit muuttaa painikkeen kokoa vetämällä ristikursorin lomakkeen poikki.
Lomakkeesi näyttää nyt tältä:
Painikkeessa on tekstitys oletustekstinä, mutta haluat muuttaa sen omien tarpeidesi mukaan. Voit napsauttaa painikkeen sisällä olevaa tekstiä ("CommandButton1"), jolloin voit muokata kuvatekstiä suoraan.
Voit myös muuttaa sitä ominaisuusikkunassa (näytön vasemmassa alakulmassa). Näet Caption -nimisen ominaisuuden ja voit muokata sen arvoa. Muuta tämä "Poistu"
Kuten lomakkeen ominaisuuksissa, Nimi -ominaisuus määrittelee VBA -koodissasi käytettävän nimen. Voit halutessasi käyttää nimeä, joka on merkityksellisempi ja ilmeisempi koodissasi. Voit syöttää tämän "Nimi" -ominaisuutta vastaan.
Voit sijoittaa painikkeen uudelleen vetämällä sitä lomakkeessa ja muuttaa sen kokoa napsauttamalla painikkeiden kahvoja (valkoisia neliönmuotoisia ruutuja) ja vetämällä kahvoja suuremmaksi tai pienemmäksi
Voit myös muuttaa painikkeen kokoa muuttamalla ominaisuusikkunan korkeus- ja leveysarvoja
Voit tarkastella lomakettasi Excelissä napsauttamalla vihreää kolmiota VBE -työkalurivillä tai painamalla F5
Voit soittaa lomakkeeseen moduulin VBA -koodista käyttämällä Näytä -menetelmää
123 | Sub ShowForm ()UserForm 1.NäytäEnd Sub |
Käyttäjälomakkeesi on käytännössä maailmanlaajuinen objekti, ja sitä voidaan kutsua mistä tahansa koodin sisällä
Tällä hetkellä komentopainike ei tee mitään, koska sen takana ei ole VBA -koodia. Tämä on kirjoitettava itse! Tällä hetkellä voi tapahtua vain, että voit napsauttaa "Sulje" X lomakkeen oikeassa yläkulmassa.
Voit lisätä VBA -koodin kaksoisnapsauttamalla lomakkeen painiketta
Tämä vie sinut normaaliin VBA -koodi -ikkunaan ja näyttää napsautuksen oletustapahtuman.
Suljet lomakkeen Piilota -menetelmällä ja voit myös lisätä minkä tahansa muun koodin, kuten viestiruudun, joka vahvistaa käyttäjälle tapahtuneen.
Huomaa, että koodi -ikkunan yläreunassa on kaksi pudotusvalikkoa. Ensimmäisessä voit valita lomakkeen ohjaimet, ja toisessa näkyvät kaikki koodin lisäämiseen käytettävissä olevat tapahtumat. Painikkeesta ilmeisin on "Klikkaa" -tapahtuma, mutta on myös muita, kuten "Kaksoisnapsautus" tai "Hiiren siirto"
Kun suoritat lomakkeen nyt, painike todella tekee jotain. Lomake katoaa ja näyttöön tulee sanomaruutu, joka vahvistaa, että lomake on suljettu
Voit tietysti suurentaa poistumiskoodia. Voit halutessasi näyttää toisen lomakkeen tai ryhtyä toimiin parametreihin, jotka käyttäjä on syöttänyt lomakkeeseesi
Label Controlin lisääminen lomakkeeseen
Tarraohjaimet ovat kehottavia käyttäjiä siitä, millaisia tietoja he tarvitsevat syöttämään lomakkeen ohjausobjektille, esim. tekstikenttään, pudotusvalikkoon jne. Etiketissä ei ole oletusarvoisesti reunuksia, mutta ne voidaan tarvittaessa lisätä ominaisuusikkunan kautta.
Ohjausobjektina ne luetaan vain käyttäjälle ja ne ovat yksinkertaisesti tapa lisätä tekstiä lomakkeelle, olipa se lihavoitu otsikko tai ohje, mitä syöttää tai valita.
Jos haluat lisätä tunnisteen, napsauta työkalupakin A -kuvaketta (ylärivi, toinen vasemmalta) ja kaksoisnapsauta sitä tai siirrä kohdistin lomakkeelle ja valitse sijainti ja koko.
Käyttämällä ominaisuusikkunan "Caption" -ominaisuutta tai napsauttamalla tarraohjainta voit kirjoittaa tarraohjaimen tekstin.
Huomaa, että teksti kääritään tarraohjaimen koon mukaan, ja jos tekstijono on liian pitkä, se ei näy kokonaan lomakkeessa, joten sinun on oltava varovainen tarraohjaimen koon suhteen.
Ominaisuudet -ikkunan avulla voit muuttaa tarraohjaimen ulkonäköä eri väreillä, kirjasimilla, takatyylillä, esim. jos se peittää kuvan ja haluat sen olevan läpinäkyvä
Etikettien hallintaa varten ei tarvitse luoda koodia. Päätavoitteena on lisätä lomakkeeseen tekstiä, jotta käyttäjä voi nähdä, miten kaikki muut ohjaimet toimivat
Tekstinohjaimen lisääminen lomakkeeseen
Tekstisäätimellä käyttäjä voi syöttää tekstiä, esim. Kirjoittamalla nimen tai kommentteja
Tekstinhallinta lisätään työkalupakista napsauttamalla tekstin ohjauskuvaketta (ylärivi, kolmas vasemmalta) ja kaksoisnapsauttamalla tai vetämällä ohjausobjekti lomakkeesi paikalle.
Tekstin ohjaus sekoitetaan usein tarraohjaimeen, mutta tekstinsäädin on käyttäjän syöttämä
Kirjoita nimesi -teksti on tarraohjain, kuten aiemmin on kuvattu, ja nyt meillä on valkoinen tekstikenttä, johon käyttäjä voi kirjoittaa jotain
Ominaisuudet -ikkunan avulla voit muuttaa värejä, fontteja, erikoistehosteita tai käyttää tekstikentän salasanamerkkejä. Saatavilla on valtava joustavuus
Yksi erittäin tärkeä ominaisuus tekstiruudulle on MultiLine -ominaisuus. Jos haluat käyttäjän syöttävän suuren määrän tekstiä tekstinhallintaan, esim. kommentit, MultiLine -ominaisuuden on oltava True.
Se on oletusarvo False, mikä tarkoittaa, että vaikka teet tekstiruudusta suuren, syötetty teksti pysyy yhdellä jatkuvalla rivillä ja vieritetään ulos tekstiruudusta. Se ei kiedo laatikon sisään.
Ei ponnahdusikkunoita, kun napsautat hiiren kakkospainikkeella tekstiruutua, kun se on käynnissä, mutta CTRL+V toimii liittämisessä ja CTRL+C toimii leikkauksessa, jos käyttäjä haluaa leikata ja liittää tekstiä muihin sovellukset
Sinun on jälleen kirjoitettava oma koodisi käsitelläksesi käyttäjän kirjoittamaa tekstiä. Voit halutessasi siirtää sen laskentataulukon soluun
Voit lisätä tämän koodin tekstikentän Muuta -tapahtumaan
123 | Yksityinen tekstitekstiBox1_Change ()Sheets ("Sheet1"). Alue ("A1"). Arvo = TextBox1.ValueEnd Sub |
Voit myös halutessasi syöttää jonkin vahvistuskoodin tarkistaaksesi, ettei käyttäjä syö roskaa, jolla on tuhoisia vaikutuksia sovellukseesi
Muutostapahtuma ei ole hyvä tälle, koska se kutsutaan joka kerta, kun käyttäjä kirjoittaa uuden merkin. Käyttäjä voisi alkaa kirjoittaa tekstijonoa ja huomata heti, että hän on rikkonut validointisääntöjä ennen kuin hän on kirjoittanut kelvollisen tekstin.
Käytät Exit -tapahtumaa. Tämä käynnistyy, kun käyttäjä siirtää kohdistuksen lomakkeen toiseen ohjausobjektiin, mikä tarkoittaa, että käyttäjä ei enää syötä tietoja.
123456 | Yksityinen tekstitekstiBox1_Exit (ByVal Peruuta MSForms.ReturnBoolean)Jos IsNull (TextBox1.Value) tai Len (TextBox1.Value) <4 SittenMsgBox "Nimi on virheellinen", vbCriticalTextBox1.SetFocusLoppu JosEnd Sub |
Kun käyttäjä napsauttaa lomakkeen toista ohjausobjektia, tämä koodi testaa joko tekstiruudun tyhjän arvon tai alle 4 merkkiä. Jos testi pitää paikkansa, näkyviin tulee viestiruutu, jossa on kriittinen kuvake ja joka ilmoittaa käyttäjälle, että nimi on virheellinen, ja kohdistus siirretään takaisin rikkovaan tekstiruutuun käyttäjän korjattavaksi.
Huomaa, että vaikka käyttäjä napsauttaa Exit -painiketta, tekstiruudun poistotapahtuma suoritetaan ensin, joten tämä estää käyttäjää poistumasta korjaamatta syötettä
Alusta ja aktivoi tapahtumia lomakkeella
Kun VBA luo ja rakentaa lomakkeen ensimmäisen kerran, se käynnistää ”Initialize” -tapahtuman. Koska lomake näytetään kuitenkin myös tässä vaiheessa, se käynnistää myös Aktivoi -tapahtuman. Siitä lähtien aina, kun lomake ilmestyy Näytä -menetelmällä tai se näkyy osana lomakehierarkiaa, Aktivoi -tapahtuma käynnistyy, mutta ei Alusta -tapahtuma
"Alusta" -tapahtuma tapahtuu vain kerran, mutta "Aktivoi" -tapahtuma voi tapahtua monta kertaa
Lomakkeessasi voit halutessasi määrittää oletusarvot laskentataulukosta syöttöohjaimissa, esim. tekstiruudut, jotta ne näkyvät lomakkeen ensimmäisellä käyttökerralla, mutta käyttäjä voi korvata oletusasetukset ja nämä uudet arvot pysyvät voimassa niin kauan kuin koodi on käynnissä
12345678 | Yksityinen alikäyttäjäForm_Initialize ()TextBox1.Value = Sheets ("Sheet1"). Alue ("A1"). ArvoJos TextBox1.Value = ”” SittenTextBox1.Visible = FalseMuuTextBox1.Visible = TottaLoppu JosEnd Sub |
Alusta -tapahtuma löytyy koodi -ikkunan toisesta avattavasta valikosta ja käyttäjän lomakkeen nimi ensimmäisestä avattavasta valikosta.
Tämä koodi käyttää Sheet1 -solun A1 arvoa oletusarvona aiemmin tässä artikkelissa luodussa tekstikentässä. Kun lomake ilmestyy ensimmäisen kerran, oletusarvo tulee näkyviin. Käyttäjä voi sitten korvata oletusarvon ja se säilytetään. Jos CellA1 on tyhjä, tekstiruutu piilotetaan, muuten se näkyy
Oletusarvo voi olla myös kovakoodattu:
1 | TextBox1.Value = “John Smith” |
Voit myös haluta varmistaa, että käyttäjän antamat arvot näkyvät uudelleen aina, kun käyttäjä käynnistää kyseisen lomakkeen kyseisessä Excel-istunnossa. VBA-koodi voi kirjoittaa arvot helposti takaisin työkirjan soluihin käyttämällä ohjausobjektin Exit-tapahtumaa ja asettaa ne uudelleen käyttämällä lomakkeen Activate-tapahtumaa
123 | Yksityinen tekstitekstiBox1_Exit (ByVal Peruuta MSForms.ReturnBoolean)Sheets ("Sheet1"). Alue ("A10"). Arvo = TextBox1.ValueEnd Sub |
123 | Yksityinen alikäyttäjäForm_Activate ()TextBox1.Value = Sheets ("Sheet1"). Alue ("A10"). ArvoEnd Sub |
Tämä koodi tekee käyttäjän arvoista pysyviä ja varmistaa myös, että ne tallennetaan pois muun työkirjan kanssa
Hakemuksen ja lomakkeiden tallentaminen
Kun tallennat lomakkeet sisältävän Excel -työkirjasi, myös kaikki lomakkeet ja niiden VBA -koodi tallennetaan. Kaikki arvot, jotka lomakkeet säilyttävät, kun ne näytetään, menetetään.
On tärkeää kirjoittaa koodi niin, että kun käyttäjä poistuu työkirjasta tai lomakkeesta, arvot kirjoitetaan takaisin työkirjan soluihin ja säilytetään.
Modaaliset ja ei-modaaliset lomakkeet
Lomakkeella on ominaisuus Show Modal. Tämä on oletusarvoisesti Tosi, mutta sen voi muuttaa arvoksi False (ei-modaalinen)
Jos lomake on modaalinen, se tarkoittaa, että mitään Excel -toimintoja ei voi käyttää lomakkeen näyttämisen aikana. Tämä sisältää koodisi VBE -ikkunassa. Voit tarkastella koodia, mutta kohdistin ja näppäimistö eivät ole käytössä.
Ei-modaalisessa muodossa voit käyttää kaikkia Excel-toimintoja, mukaan lukien VBE-ikkuna, lomakkeen näyttämisen aikana.
Tämä on tärkeää käyttäjien käyttäytymisen hallinnan kannalta
Lomakkeen sulkeminen
Vaikka kirjoitat koodisi hyvin pakottaaksesi käyttäjän valitsemaan tietyn reitin, he voivat helposti kiertää sen napsauttamalla lomakkeen oikeassa yläkulmassa olevaa Sulje X -merkkiä.
Voit estää tämän tapahtumasta muokkaamalla lomakkeen QueryClose -tapahtumaa
1234 | Yksityinen alikäyttäjäForm_QueryClose (Peruuta kokonaislukuna, CloseMode kokonaislukuna)Peruuta = TottaMsgBox "Tämä toiminto on poistettu käytöstä"End Sub |
QueryClose -tapahtuma käynnistyy, kun käyttäjä napsauttaa lomakkeen Sulje X -merkkiä. Tämä koodi peruuttaa toiminnon, joten käyttäjän on käytettävä Exit -painiketta ja sen takana olevaa koodia.
Säätimien ottaminen käyttöön ja poistaminen käytöstä
Kaikilla lomakkeen säätimillä on ominaisuus nimeltä Käytössä, jonka arvoksi on määritetty Tosi tai epätosi. Jos se on epätosi, ohjausobjekti on harmaana. Se voidaan nähdä, mutta sitä ei voida käyttää.
On myös ominaisuus nimeltä Visible, joka on jälleen asetettu True tai False.
Voit kirjoittaa koodin joko tekemään tietyn ohjaimen käyttökelvottomaksi tai tekemään sen kokonaan näkymättömäksi käyttäjälle. Jos käytät "Jos" -lausetta, voit valita olosuhteet, joissa sinun on tehtävä tämä
Voit esimerkiksi poistaa Exit -painikkeen käytöstä aluksi, kunnes käyttäjä on syöttänyt arvon TextBox1: een (nimi)
123 | Yksityinen alikäyttäjäForm_Initialize ()CommandButton1.Enabled = VääräEnd Sub |
1234567 | Yksityinen tekstitekstiBox1_Change ()Jos Len (TextBox1.Value)> 0 SittenCommandButton1.Enabled = TottaMuuCommandButton1.Enabled = VääräLoppu JosEnd Sub |
Tämä koodi käyttää Initialize -tapahtuman lomaketta poistumispainikkeen poistamiseksi käytöstä (komentopainike 1), kun lomake ilmestyy ensimmäisen kerran, ja käyttää sitten TextBox1: n (nimi) "Change" -tapahtumaa Exit -painikkeen ottamiseen käyttöön, jos jotain on kirjoitettu tai poistettu käytöstä jos ruutu on tyhjä.
Muutos -tapahtuma käynnistyy aina, kun uusi merkki kirjoitetaan tai poistetaan tekstikenttään. Jos käyttäjä yrittää kirjoittaa tekstiä, jotta painike otetaan käyttöön, ja poistaa sitten kaiken tekstin, painike poistetaan käytöstä välittömästi