Excel VBA InputBox

Vaikka useimmiten käytät jo mukana olevia tietoja, joudut joskus tilanteeseen, jossa haluat käyttäjän syöttävän tietoja, kuten nimi, ikä jne. Sellaisia ​​henkilökohtaisia ​​tietoja. Tällaista syöttötietoa tarvitaan joskus tutkimuksen yhteydessä ja on tarkistettava ihmisten puolueeton mielipide.

Käyttämällä Excel VBA: n InputBox-sovellusta saamme tulotiedot käyttäjältä. Kuten nimestä voi päätellä, InputBox toimii ponnahdusikkunana, joka pyytää käyttäjää syöttämään tiettyjä tietoja.

VBA InputBoxin syntaksi

Seuraava on VBA InputBox: n syntaksi:

Missä,

  • Kysy - Viesti, joka näytetään käyttäjälle. Tämä on ainoa vaadittava argumentti, loput muut argumentit ovat valinnaisia.
  • Otsikko - Se on otsikko, joka ilmestyy valintaikkunaan InputBox-käskyn onnistuneen suorittamisen jälkeen. Jos sitä ei anneta, järjestelmä tulostaa oletuksena otsikon "Microsoft Excel".
  • Default - Oletusarvo tulee valintaikkunaan. Voimme pitää sen myös tyhjänä. Tälle argumentille ei ole asetettu oletusarvoa.
  • XPos - valintaikkunan sijaintikoordinaatti X-akselilla.
  • YPos - valintaikkunan sijaintikoordinaatti Y-akselilla.
  • HelpFile - Käytettävän ohjetiedoston sijainti. Argumentista tulee pakollinen asetettavaksi, kun 'Konteksti' -argumentti hyväksytään.
  • Konteksti - edustaa käytetyn HelpFile-ohjeen ContextId-ohjeita. Pakollinen käytettäväksi, kun 'HelpFile' -argumentti hyväksytään.
  • Kaikista näistä väitteistä vain kolme ensimmäistä ovat riittävät InputBox-luonnissa.

InputBoxin luominen Excel VBA: ssa

Alla on eri vaiheet InputBoxin luomiseen Excelissä VBA-koodilla.

Voit ladata tämän VBA InputBox Excel -mallin täältä - VBA InputBox Excel Template
  • Avaa VBE (Visual Basic Editor painamalla Alt + F11 samanaikaisesti Excel-tiedostossa ja napsauta Lisää ja lisää uusi moduuli VBE: hen.

  • Luo tähän moduuliin makro nimeltä 'Module1'. Anna nimi makroon.

  • Kirjoita komento InputBox editoriin.

Anna seuraavat tulot InputBox-käskyyn:

  • Kysymys: "Voinko tietää koko nimesi?"
  • Otsikko: ”Henkilökohtaiset tiedot”
  • Oletus: “Aloita kirjoittaminen tähän

Koodi:

 Sub InputBoxEX () InputBox "Voinko tietää nimesi?", "Henkilökohtaiset tiedot", "Aloita kirjoittaminen tähän" Lopeta ala 

  • Suorita tämä koodi painamalla F5 tai suorita painike.

Kuinka tallentaa InputBox-tulosteen soluille?

Olet luonut InputBoxin saadaksesi syötteitä käyttäjältä. Missä tulosteet kuitenkin tallennetaan? Emme ole maininneet mitään sijaintia, joihin lähtö voidaan tallentaa.

Tallennetaan tulos, jonka saamme InputBoxista Excel-soluihin, noudattamalla seuraavia vaiheita VBA:

  • Ilmoita uusi muuttuja 'Nimi', jonka tyyppi on 'Variant'. Tämän tyyppisellä muuttujalla voi olla mikä tahansa arvo (numeerinen / merkkijono / looginen jne.).

Koodi:

 Sub InputBoxEX () himmennetään nimellä vaihtoehtona loppuosa 

  • Määritä arvo muuttujalle nimeltään InputBox.

Koodi:

 Sub InputBoxEX () himmennetty nimellä Variant Name = InputBox ("Voinko tietää nimesi?", "Henkilökohtaiset tiedot", "Aloita kirjoittaminen tähän") Lopeta Sub 

Jos olisit voinut huomata sulujen InputBox-käskyn jälkeen, niitä tarvitaan, koska käytämme tätä lauseketta muuttujalle "Nimi". Heti kun siitä tulee muuttujalle annettava arvo, se on mainittava oikeassa muodossa suluilla.

  • Nyt mitä tahansa arvoa, jonka käyttäjä on kirjoittanut valintaikkunaan, haluamme, että se näkyy Excel-taulukon solussa A1. Laita seuraava lause samalle VBE: lle: Alue (“A1”): Arvo = Nimi.

Koodi:

 Sub InputBoxEX () himmennetty nimi varianttina nimellä = InputBox ("Saanko tietää nimesi?", "Henkilökohtaiset tiedot", "Aloita kirjoittaminen tästä") Alue ("A1"). Arvo = Nimi Loppu Sub 

Tämä on se, nyt suoritetaan tämä koodi ja katsotaan miten se toimii.

  • Napsauta Käynnistä-painiketta tai paina F5 suorittaaksesi tämän koodin, saat seuraavan valintaikkunan. Kirjoita nimesi valintaikkunaan, jossa näkyy nimi ”Henkilökohtaiset tiedot”, ja napsauta OK nähdäksesi missä tulosteet tulostetaan.

  • Heti kun syötät arvon ja napsautat OK, näet solussa A1 syötetyn arvon. Katso alla oleva kuvakaappaus.

Mikä tahansa arvo voidaan tallentaa InputBoxilla, jos muuttuja on määritetty oikein. Tässä tapauksessa olet määritellyt muuttujan 'Nimi' vaihtoehdoksi. Tyypin variantti voi ottaa minkä tahansa data-arvon, kuten aiemmin totesin.

Katso alla oleva esimerkki:

Annan numeron argumenttina valintaikkunaan, kun esiin tulee. Katso alla:

Napsauta OK, katso alla oleva tulos:

Arvo solussa A1 muutetaan arvoon 2019.

Muutetaan nyt muuttujan tyyppi päivämääräksi.

Koodi:

 Sub InputBoxEX () himmennetty nimellä päivämäärä = InputBox ("Voinko tietää nimesi?", "Henkilökohtaiset tiedot", "Aloita kirjoittaminen tähän") Alue ("A1"). Arvo = Nimi Loppu Sub 

Suorita koodi ja yritä syöttää muu arvo kuin päivämäärä. Annan nimeni itse ja napsautin OK.

  • Kun olet napsauttanut OK, ajonaikainen virheviesti sanoo 'Type mismatch'.

Tapahtuma johtui siitä, että muuttujan nimen tyyppi on Päivämäärä nyt ja olen antanut muita syöttöargumentteja kuin päivämääräarvon (merkkijonon nimi). Siksi tämä koodi ei suoriteta ja aiheuttaa virheen.

Käyttäjän syöttämien tietojen validointi

Entä jos sanon, että käyttäjän syötettä voidaan rajoittaa? Kyllä se on totta! Voit rajoittaa käyttäjän syöttämät merkit, numerot tai loogiset jne.

Voit rajoittaa käyttäjän syöttämistä käyttämällä Application.InputBox-sovellusta.

Application.InputBox: n syntaksi on seuraava:

Missä,

Kysy - Viesti, joka avautuu käyttäjän kohdalla.

Otsikko - valintaikkunan otsikko.

Oletus - Oletusarvo, joka ilmestyy kirjoitusalueelle valintaikkunan alle.

Type - Tulotyyppi.

Nämä ovat ainoat tärkeät argumentit, jotka riittävät tämän lausunnon suorittamiseen.

Aloitetaan tämä esimerkin avulla.

  • Ilmoita muuttujan nimi variaatioksi.

Koodi:

 Sub InputBoxEX () himmennetään nimellä vaihtoehtona loppuosa 

Määritä Application.InputBox muuttujalle Nimi samoilla argumenteilla kuin mitä olet käyttänyt InputBox. eli Kysy, Otsikko ja Oletus. Katso alla oleva koodi:

Koodi:

 Sub InputBoxEX () himmennetty nimi varianttina = sovellus.InputBox ("Voinko tietää nimesi?", "Henkilökohtaiset tiedot", "Aloita kirjoittaminen tähän") Lopeta alaosa 

Laita nyt pilkku 5 kertaa ohittaaksesi Vasen, Ylä, HelpFile ja HelpContextID. 5 pilkun jälkeen voit määrittää tulotyypin.

Koodi:

 Sub InputBoxEX () himmennetty nimi varianttina = sovellus.InputBox ("Voinko tietää nimesi?", "Henkilökohtaiset tiedot", "Aloita kirjoittaminen tähän",,,,, Lopeta alaosa 

Syöttöjonon tyypillä on alla mainitut validoinnit:

  • Valitaan lauseessa 1 tyypiksi. Se tarkoittaa, että vain numerot / numeeriset arvot ovat hyväksyttäviä avautuvassa valintaikkunassa.

Koodi:

 Sub InputBoxEX () himmennetty nimi varianttina = sovellus.InputBox ("Voinko tietää nimesi?", "Henkilökohtaiset tiedot", "Aloita kirjoittaminen tähän",,,,, 1) Lopeta alaosa 

  • Suorita koodi manuaalisesti tai F5-näppäimellä ja anna nimi syöttöalueelle alla olevan kuvan mukaisesti. Napsauta sitten OK ja katso Tuloste.

Sanotaan, että numero ei kelpaa. Tämä vaikuttaa loogiselta, koska olemme asettaneet muuttuvan syötteen tyypin numerona ja tarjoamalla tekstin syötteeksi, jota järjestelmä ei hyväksy.

Tällä tavalla voit rajoittaa käyttäjän syöttämään vain arvot, jotka haluat nähdä InputBoxin kautta.

Muistettavat asiat

  • InputBox hyväksyy enintään 255 argumenttia ja voi näyttää vain 254. Joten ole varovainen käyttäjän antaman enimmäispituuden suhteen.
  • Sovellusmenetelmää voidaan käyttää syöttötietojen tyypin asettamiseen. Jos sitä ei käytetä, sinun on kuitenkin tarkennettava tulotietotyyppiä.
  • Vaihtoehtoista tietotyyppiä suositellaan valittavaksi, koska se voi sisältää minkä tahansa numeerisen / teksti / loogisen jne. B = arvot.

Suositellut artikkelit

Tämä on opas VBA InputBoxiin. Tässä keskustelimme siitä, kuinka luodaan InputBox Excel -sovellukseen VBA-koodilla yhdessä käytännön esimerkien ja ladattavan Excel-mallin kanssa. Voit myös käydä läpi muiden ehdottamiemme artikkeleidemme -

  1. Kuinka käyttää FIND-toimintoa Excelissä
  2. VBA-toiminnon luominen Excelissä
  3. Opas alueelle Excelissä
  4. Kuinka käyttää VBA VLOOKUP -toimintoa?

Luokka: