VBA InputBox -toiminto on hyödyllinen yksittäisen käyttäjän Excle 2016:ssa kirjoittaman tiedon saamiseksi. Tieto voi olla arvo, tekstimerkkijono tai jopa alueosoite. Tämä on hyvä vaihtoehto UserFormin kehittämiseen, kun tarvitset vain yhden arvon.
InputBox-syntaksi
Tässä on yksinkertaistettu versio InputBox-funktion syntaksista:
InputBox(kehote[, otsikko][, oletus])
InputBox-funktio hyväksyy tässä luetellut argumentit.
Perustelu |
Mihin se vaikuttaa |
Kehote |
Syöttöruudussa näkyvä teksti |
Otsikko |
Syöttöruudun otsikkorivillä näkyvä teksti
(valinnainen) |
Oletus |
Käyttäjän syötteen oletusarvo (valinnainen) |
Esimerkki InputBoxista
Tässä on lausunto, joka näyttää, kuinka voit käyttää InputBox-toimintoa:
TheName = InputBox("Mikä on nimesi?", "Tervehdys"
Kun suoritat tämän VBA-käskyn, Excel näyttää tämän valintaikkunan. Huomaa, että tämä esimerkki käyttää vain kahta ensimmäistä argumenttia eikä anna oletusarvoa. Kun käyttäjä syöttää arvon ja napsauttaa OK, koodi määrittää arvon muuttujalle TheName.
InputBox-toiminto näyttää tämän valintaikkunan.
Seuraava esimerkki käyttää kolmatta argumenttia ja tarjoaa oletusarvon. Oletusarvo on Excelin tallentama käyttäjänimi (sovellusobjektin UserName-ominaisuus).
Sub GetName()
Dim TheName merkkijonona
TheName = InputBox("Mikä on nimesi?", _
"Tervehdys", Application.UserName)
Lopeta ala
InputBox näyttää aina Peruuta-painikkeen. Jos käyttäjä napsauttaa Peruuta, InputBox-funktio palauttaa tyhjän merkkijonon.
VBA:n InputBox-toiminto palauttaa aina merkkijonon, joten jos haluat saada arvon, koodisi on tehtävä lisätarkistus. Seuraava esimerkki käyttää InputBox-funktiota numeron saamiseksi. Se käyttää IsNumeric-funktiota tarkistaakseen, onko merkkijono numero. Jos merkkijono sisältää numeron, kaikki on kunnossa. Jos käyttäjän syötettä ei voida tulkita numeroksi, koodi näyttää viestiruudun.
Sub AddSheets()
Himmeä kehote merkkijonona
Himmeä kuvateksti merkkijonona
Dim DefValue As Long
Dim NumSheets merkkijonona
Prompt = "Kuinka monta arkkia haluat lisätä?"
Kuvateksti = "Kerro minulle…"
Oletusarvo = 1
NumSheets = InputBox (kehote, kuvateksti, oletusarvo)
Jos NumSheets = "" Poistu alivalikosta Peruutettu
Jos IsNumeric(NumSheets) Sitten
Jos NumSheets > 0 Sitten Sheets.Add Count:=NumSheets
Muu
Viestilaatikko "Virheellinen numero"
Loppu Jos
Lopeta ala
Tarkista tämän rutiinin tuottama valintaikkuna.
Toinen esimerkki InputBox-toiminnon käytöstä.
Toinen InputBox-tyyppi
Tässä esitetyt tiedot koskevat VBA:n InputBox-toimintoa. Microsoft näyttää rakastavan sekaannusta, joten sinulla on myös pääsy InputBox- menetelmään , joka on Application-objektin menetelmä.
Yksi Application InputBox -menetelmän käytön suuri etu on, että koodisi voi pyytää alueen valintaa. Käyttäjä voi sitten valita alueen laskentataulukosta korostamalla solut. Tässä on nopea esimerkki, joka kehottaa käyttäjää valitsemaan alueen:
Sub GetRange()
Dim Rng As Range
Virheestä Jatka seuraavaksi
Aseta Rng = Application.InputBox _
(prompt:="Määritä alue:", Tyyppi:=8)
Jos Rng ei ole mitään, poistu Subista
MsgBox "Valitsit alueen" & Rng.Address
Lopeta ala
Tältä se näyttää.
Käytä Application InputBox -menetelmää alueen saamiseksi.
Tässä yksinkertaisessa esimerkissä koodi kertoo käyttäjälle valitun alueen osoitteen. Tosielämässä koodisi tekisi jotain hyödyllistä valitulle alueelle. Hieno asia tässä esimerkissä on, että Excel huolehtii virheiden käsittelystä. Jos syötät jotain, joka ei ole väli, Excel kertoo sinulle siitä ja antaa sinun yrittää uudelleen.
Application.InputBox-menetelmä on samanlainen kuin VBA:n InputBox-toiminto, mutta siinä on myös joitain eroja. Katso täydelliset tiedot ohjejärjestelmästä.