VBA InputBox - Získejte vstup od uživatele v makru - Příklady kódu VBA

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

wave wave wave wave wave