Tento tutoriál předvede, jak získat vstup od uživatele pomocí vstupního pole VBA.
The Vstupní pole VBA nám umožňuje vyzvat uživatele k zadání informací. Tyto informace pak lze použít v našem kódu VBA nebo v listu aplikace Excel.
Vstupní pole VBA s proměnnou
Můžeme deklarovat proměnnou v našem kódu VBA, která pak ukládá informace, které jsou zadány do vstupního pole. Tuto proměnnou pak můžeme použít v našem kódu.
V závislosti na typu informací, které chceme vrátit ze vstupního pole, můžeme deklarovat konkrétní typ proměnné buď pro vrácení textu (řetězec nebo variantní proměnná), nebo pro vrácení čísla (celočíselná, dlouhá, dvojitá nebo jednoduchá proměnná).
Proměnná řetězce se vstupním polem
Zde je návod, jak můžete vytvořit InputBox, kde jsou data vrácena do řetězcové proměnné.
123 | Dim strInput jako řetězecstrInput = InputBox („This is my InputBox“, „MyInputTitle“, „Enter your input text HERE“) |
Nejprve si všimněte, že deklarujeme proměnnou. Této proměnné bude přiřazena hodnota, kterou uživatel zadá. Použili jsme typ proměnné String, aby vstupní pole přijímalo textové řetězce (což zahrnuje libovolné alfanumerické znaky).
Proměnná čísla se vstupním polem
Pokud deklarujete číselnou proměnnou, budete muset zadat číslo pouze do vstupního pole.
12 | Dim iInput As IntegeriInput = InputBox („Zadejte prosím číslo“, „Vytvořit číslo faktury“, 1) |
Nejprve deklarujeme číselnou proměnnou jako celočíselnou proměnnou. Do vstupního pole pak můžeme také vložit výchozí hodnotu 1.
Pokud bychom místo čísla zadali řetězec a poté klikli na OK, dostali bychom chybu Neshoda typu, protože proměnná čísla neakceptuje řetězec.
Získejte vstup od uživatele
Zde je další příklad použití nejpopulárnějších funkcí InputBoxu.
Následující kód dělá tři věci:
1. Vyzve k zadání pomocí InputBoxu a přiřadí ji proměnné
2. Ověří vstup, v opačném případě opustí sub
3. Vrátí vstup do pole se zprávou
12345678910111213 | Public Sub MyInputBox ()Dim MyInput jako řetězecMyInput = InputBox („This is my InputBox“, „MyInputTitle“, „Enter your input text HERE“)Pokud MyInput = "Zadejte svůj vstupní text ZDE" Nebo MyInput = "" PotomUkončit dílčíKonec IfMsgBox "Text z MyInputBox je" & MyInputEnd Sub |
Vrácení vstupu do listu aplikace Excel
Vstup, který zadáte do vstupního pole, můžete vrátit do konkrétní buňky v listu aplikace Excel.
1 | Rozsah („P1“) = InputBox („Zadejte prosím své jméno“, „Zadejte jméno“, „Zadejte jméno ZDE“) |
Vstupní data můžeme také vrátit na list aplikace Excel pomocí proměnné.
12345678910 | Sub EnterNumber ()Při chybě Pokračovat DalšíDim dblAmount As DoubledblAmount = InputBox ("Zadejte požadovanou částku", "Zadejte částku")Pokud dblAmount 0 PotomRozsah ("A1") = dblAmountJinýMsgBox „Nezadali jste číslo!“Konec IfEnd Sub |
Ve výše uvedeném příkladu jsme povinni zadat číslo. Pokud zadáme číslo, pak proměnnou dblAmount vloží číslo do listu aplikace Excel v buňce A1. Pokud však nezadáme číslo, pak nám okno se zprávou řekne, že jsme nezadali číslo a do buňky A1 nebude vloženo nic.
Použití VBA InputBoxu v Access VBA
Vstupní pole VBA funguje v Accessu úplně stejně jako v Excelu při vracení uživatelského vstupu ve formě pole se zprávou.
Pokud však chcete vrátit vstup uživatele do databáze, budete muset použít objekt Recordset, nikoli objekt Range, jak se používá v aplikaci Excel.
1234567891011121314 | Sub EnterInvoiceNumber ()Dim dbs jako databázeDim první jako sada záznamůNastavit dbs = CurrentDbNastavit rst = dbs.OpenRecordset ("tblMatters", dbOpenDynaset)S první.Přidat nový! InvNo = InputBox („Zadejte prosím číslo faktury“, „GENERACE ČÍSLA FAKTURY“, 1).AktualizaceKonec sprvní ZavřítNastavit první = nicNastavit dbs = nicEnd Sub |