Excel VBA InputBox

I když většinou používáte data, která jsou již s vámi, někdy narazíte na situaci, kdy chcete, aby uživatel vložil data jako jméno, věk atd. Druh osobních údajů. Tyto druhy vstupních informací jsou někdy potřebné, když provádíme průzkum, a je třeba přezkoumat nezaujatý názor lidí.

Pomocí vstupního modulu Excel VBA můžeme získat vstupní data od uživatele. Jak název napovídá, InputBox funguje jako vyskakovací okno, které žádá uživatele, aby vložil určité informace.

Syntaxe pro VBA InputBox

Následuje syntaxe pro VBA InputBox:

Kde,

  • Výzva - zpráva, která se uživateli zobrazí. Toto je jediný povinný argument, ostatní ostatní argumenty jsou volitelné.
  • Nadpis - Je to záhlaví, které se objeví v dialogovém okně po úspěšném provedení příkazu InputBox. Pokud není uveden, ve výchozím nastavení systém vytiskne jako název „Microsoft Excel“.
  • Výchozí - Jedná se o výchozí hodnotu, která se objeví v dialogovém okně. Můžeme to nechat také neplatné. Pro tento argument není nastavena žádná výchozí hodnota.
  • XPos - Umístěte souřadnici dialogového okna na ose X.
  • YPos - Umístěte souřadnici dialogového okna na ose Y.
  • HelpFile - Umístění souboru nápovědy, který by měl být použit. Tento argument se stává povinným, když je předán argument „Kontext“.
  • Kontext - představuje kontext nápovědy pro použitý soubor nápovědy. Povinné pro použití při předání argumentu „HelpFile“.
  • Ze všech těchto argumentů stačí k úspěšnému vytvoření InputBoxu pouze první tři.

Vytváření InputBox v Excel VBA

Níže jsou uvedeny různé kroky k vytvoření InputBox v Excelu pomocí kódu VBA.

Tuto šablonu VBA InputBox Excel si můžete stáhnout zde - VBA InputBox Excel Template
  • Otevřete VBE (Editor jazyka současným stisknutím Alt + F11 současně v souboru Excel a klikněte na Vložit a přidejte nový modul do VBE.

  • V tomto modulu vytvořte makro s názvem 'Module1'. Makru přiřaďte název.

  • V editoru zadejte příkaz InputBox.

Do příkazu InputBox zadejte následující vstupy:

  • Výzva: „Mohu znát vaše celé jméno?“
  • Název: „Osobní informace“
  • Výchozí: „Začněte psát zde

Kód:

 Sub InputBoxEX () InputBox "Mohu znát vaše jméno?", "Osobní informace", "Začít psát zde" End Sub 

  • Stisknutím F5 nebo tlačítkem Spustit spustíte tento kód.

Jak uložit výstup InputBoxu do buněk?

Vytvořili jste InputBox, abyste získali vstup od uživatele. Kde se však výstup uloží? Nezmínili jsme žádné místo, kde lze výstup uložit.

Uložme výstup, který dostaneme ze InputBoxu, do vynikajících buněk pomocí následujících kroků ve VBA:

  • Deklarovat novou proměnnou „Name“ s typem jako „Variant“. Tento typ proměnné může nabývat jakékoli hodnoty (číselné / řetězcové / logické atd.).

Kód:

 Sub InputBoxEX () Dim Jméno jako Varianta End Sub 

  • Použijte InputBox k přiřazení hodnoty této proměnné nazvané 'Název'.

Kód:

 Sub InputBoxEX () Dim Name As Variant Name = InputBox ("Mohu znát vaše jméno?", "Osobní informace", "Začněte psát zde") End Sub 

Pokud jste si mohli všimnout závorky za příkazem InputBox, je to nutné, protože tento příkaz používáme pro proměnnou 'Název'. Jakmile se hodnota stane proměnnou, musí být uvedena ve správném formátu s kulatými závorkami.

  • Nyní, bez ohledu na hodnotu, kterou uživatel zadal v dialogovém okně, chceme, aby to bylo vidět v buňce A1 listu Excel. Do VBE vložte následující příkaz: Range („A1“). Value = Name.

Kód:

 Sub InputBoxEX () Dim Name As Variant Name = InputBox ("Mohu znát vaše jméno?", "Osobní informace", "Začněte zde psát") Rozsah ("A1"). Hodnota = Název End Sub 

To je ono, nyní spustíme tento kód a uvidíme, jak to funguje.

  • Kliknutím na tlačítko Spustit nebo stisknutím klávesy F5 spustíte tento kód. Zobrazí se následující dialogové okno. Napište své jméno do dialogového okna s názvem „Osobní informace“ a stiskněte OK, abyste viděli, kde se výstup vytiskne.

  • Jakmile zadáte hodnotu a kliknete na OK, uvidíte hodnotu zadanou v buňce A1. Viz obrázek níže.

Pokud je proměnná správně definována, lze pomocí InputBoxu uložit libovolnou hodnotu. V tomto případě jste proměnnou 'Name' definovali jako 'Variant'. Jak jsem již řekl, varianta datového typu může mít jakoukoli datovou hodnotu.

Viz příklad níže:

Když se objeví, dávám číslo jako argument dialogu. Viz níže:

Klikněte na OK, podívejte se na výstup níže:

Hodnota v buňce A1 se změní na 2019.

Nyní změníme typ proměnné na Datum.

Kód:

 Sub InputBoxEX () Dim Name As Date Name = InputBox ("Mohu znát vaše jméno?", "Osobní informace", "Začněte zde psát") Rozsah ("A1"). Hodnota = Název Konec Sub 

Spusťte kód a zkuste zadat jinou hodnotu než datum. Zadám své jméno a kliknu na OK.

  • Po klepnutí na tlačítko OK se zobrazí chybová zpráva o době spuštění s názvem „Neshoda typu“.

Došlo k tomu, protože typem názvu proměnné je Datum a nyní jsem zadal jiný argument vstupu, než je hodnota data (název řetězce). Z tohoto důvodu se tento kód nespustí a vyvolá chybu.

Ověření vstupu uživatele

Co když vám řeknu, že vstup uživatele může být omezen? Ano, je to pravda! Uživatelský vstup můžete omezit na Znaky, čísla nebo Logické atd.

Chcete-li omezit vstup uživatele, můžete použít Application.InputBox.

Syntaxe pro Application.InputBox je následující:

Kde,

Výzva - zpráva, která se zobrazí uživateli.

Nadpis - Nadpis dialogového okna.

Výchozí - Výchozí hodnota, která se objeví v oblasti psaní v dialogovém okně.

Typ - Typ vstupu.

Toto jsou jediné důležité argumenty, které jsou pro spuštění tohoto prohlášení dostačující.

Začněme tímto příkladem.

  • Deklarovat proměnnou Name jako Variant.

Kód:

 Sub InputBoxEX () Dim Jméno jako Varianta End Sub 

Přiřaďte Application.InputBox k proměnné nazvané Name se stejnými argumenty jako ty, které jste použili InputBox. tj. Výzva, Název a Výchozí. Viz níže uvedený kód:

Kód:

 Sub InputBoxEX () Dim Name As Variant Name = Application.InputBox („Mohu znát vaše jméno?“, „Osobní informace“, „Začněte psát zde“) End Sub 

Nyní zadejte 5krát čárku, abyste ignorovali ID vlevo, nahoře, HelpFile a HelpContextID. Po 5 čárkách můžete zadat typ vstupu.

Kód:

 Sub InputBoxEX () Dim Name As Variant Name = Application.InputBox („Mohu znát vaše jméno?“, „Osobní informace“, „Začněte sem psát“,,,,, End Sub 

Typ vstupního řetězce má níže uvedené ověření:

  • V našem prohlášení vyberme 1 jako typ. To znamená, že v dialogovém okně, které se objeví, jsou přijatelné pouze čísla / číselné hodnoty.

Kód:

 Sub InputBoxEX () Dim Name As Variant Name = Application.InputBox („Mohu znát vaše jméno?“, „Osobní informace“, „Začněte psát zde“,,,,, 1) End Sub 

  • Spusťte kód ručně nebo pomocí klávesy F5 a zadejte jméno jako vstup do oblasti psaní, jak je znázorněno níže. Poté klikněte na OK a podívejte se na Výstup.

Říká se, že číslo není platné. To se zdá logické, protože jsme nastavili typ proměnného vstupu jako číslo a poskytli text jako vstup, který systém nepřijímá.

Tímto způsobem můžete omezit uživatele na zadávání pouze hodnot, které chcete vidět přes InputBox.

Co si pamatovat

  • InputBox přijímá až 255 argumentů a může zobrazit pouze 254. Proto buďte opatrní ohledně maximální délky, kterou může uživatel zadat.
  • Pro nastavení typu vstupních dat lze použít aplikační metodu. Pokud se však nepoužívá, musíte být konkrétnější ohledně typu vstupních dat.
  • Doporučuje se zvolit jiný datový typ, protože může obsahovat jakoukoli z numerických / textových / logických atd. B = hodnoty.

Doporučené články

Toto byl průvodce VBA InputBox. Zde jsme diskutovali o tom, jak vytvořit InputBox v Excelu pomocí kódu VBA spolu s praktickými příklady a stahovatelnou šablonou Excel. Můžete si také prohlédnout naše další doporučené články -

  1. Jak používat funkci FIND v Excelu
  2. Vytvoření funkce VBA v Excelu
  3. Průvodce rozsahem v Excelu
  4. Jak používat funkci VBA VLOOKUP?

Kategorie: