Funkcia VBA InputBox je užitočná na získanie jednej informácie zadanej používateľom v programe Excle 2016. Týmito informáciami môže byť hodnota, textový reťazec alebo dokonca adresa rozsahu. Toto je dobrá alternatíva k vývoju UserForm, keď potrebujete získať iba jednu hodnotu.
Syntax InputBox
Tu je zjednodušená verzia syntaxe funkcie InputBox:
InputBox(výzva[, názov][, predvolené])
Funkcia InputBox akceptuje tu uvedené argumenty.
Argumentovať |
Čo to ovplyvňuje |
Prompt |
Text zobrazený vo vstupnom poli |
Názov |
Text zobrazený v záhlaví vstupného poľa
(voliteľné) |
Predvolené |
Predvolená hodnota pre vstup používateľa (voliteľné) |
Príklad InputBox
Tu je vyhlásenie, ktoré ukazuje, ako môžete použiť funkciu InputBox:
TheName = InputBox(“Ako sa voláš?”, “Pozdrav”)
Keď spustíte tento príkaz VBA, Excel zobrazí toto dialógové okno. Všimnite si, že tento príklad používa iba prvé dva argumenty a neposkytuje predvolenú hodnotu. Keď používateľ zadá hodnotu a klikne na tlačidlo OK, kód priradí hodnotu premennej TheName.
Funkcia InputBox zobrazí toto dialógové okno.
Nasledujúci príklad používa tretí argument a poskytuje predvolenú hodnotu. Predvolená hodnota je používateľské meno uložené v Exceli (vlastnosť UserName objektu Application).
Sub GetName()
Dim TheName As String
TheName = InputBox("Ako sa voláš?", _
"Pozdravy", Application.UserName)
End Sub
InputBox vždy zobrazuje tlačidlo Zrušiť. Ak používateľ klikne na tlačidlo Zrušiť, funkcia InputBox vráti prázdny reťazec.
Funkcia InputBox VBA vždy vracia reťazec, takže ak potrebujete získať hodnotu, váš kód musí vykonať ďalšiu kontrolu. Nasledujúci príklad používa funkciu InputBox na získanie čísla. Používa funkciu IsNumeric na kontrolu, či reťazec je číslo. Ak reťazec obsahuje číslo, všetko je v poriadku. Ak zadanie používateľa nemožno interpretovať ako číslo, kód zobrazí okno s hlásením.
Sub AddSheets()
Dim Prompt As String
Dim Caption As String
Dim DefValue As Long
Dim NumSheets ako reťazec
Výzva = „Koľko listov chcete pridať?“
Popis = „Povedz mi...“
DefValue = 1
NumSheets = InputBox (výzva, popis, DefValue)
Ak NumSheets = „“ Potom Exit Sub 'Canceled
If IsNumeric(NumSheets) Then
Ak NumSheets > 0, potom Sheets.Add Count:=NumSheets
Inak
MsgBox „Neplatné číslo“
Koniec Ak
End Sub
Pozrite si dialógové okno, ktoré táto rutina vytvára.
Ďalší príklad použitia funkcie InputBox.
Iný typ InputBoxu
Tu uvedené informácie sa vzťahujú na funkciu InputBox VBA. Zdá sa, že Microsoft miluje zmätok, takže máte prístup aj k metóde InputBox , čo je metóda objektu Application.
Jednou veľkou výhodou použitia metódy Application InputBox je, že váš kód môže vyzvať na výber rozsahu. Používateľ potom môže vybrať rozsah v pracovnom hárku zvýraznením buniek. Tu je rýchly príklad, ktorý vyzve používateľa, aby si vybral rozsah:
Sub GetRange()
Dim Rng As Range
Pri chybe Pokračujte ďalej
Nastaviť Rng = Application.InputBox _
(výzva:=“Zadajte rozsah:”, Typ:=8)
Ak Rng nie je nič, ukončite Sub
MsgBox “Vybrali ste rozsah” & Rng.Address
End Sub
Takto to vyzerá.
Pomocou metódy Application InputBox získate rozsah.
V tomto jednoduchom príklade kód povie používateľovi adresu rozsahu, ktorý bol vybraný. V reálnom živote by váš kód skutočne urobil niečo užitočné s vybraným rozsahom. Na tomto príklade je pekné, že Excel sa stará o spracovanie chýb. Ak zadáte niečo, čo nie je rozsah, Excel vám o tom povie a umožní vám to skúsiť znova.
Metóda Application.InputBox je podobná funkcii InputBox vo VBA, má však aj určité rozdiely. Úplné podrobnosti nájdete v systéme pomoci.