Přejít na hlavní obsah

VBA Excel Textbox: omezení zadávání pouze čísel

Microsoft Excel je jedním z nejoblíbenějších nástrojů pro práci s tabulkami a daty. Můžete v něm vytvářet různé tvary a vlastní ovládací prvky, včetně textových polí (Textbox).

Jedním z běžných požadavků při práci s textovými poli v Excelu je omezení psaní pouze čísel. To znamená, že uživatel musí do textového pole zadávat pouze čísla a všechny ostatní znaky musí být zakázány.

Pro implementaci tohoto požadavku existují různé přístupy VBA (Visual Basic for Applications), programovacím jazyce používaném v Excelu. Jedním z nich je použití událostí textového pole a kontrola zadaných znaků.

V tomto článku se podrobně podíváme na to, jak implementovat omezení zadávání pouze čísel do textového pole v Excelu pomocí VBA. Podíváme se také na některé další možnosti, jako je rozlišení vstupu pouze kladných čísel nebo čísel s plovoucím bodem.

Co je VBA Excel Textbox?

VBA Excel Textbox je nástroj poskytovaný programovacím jazykem VBA (Visual Basic for Applications), který vám umožňuje vytvářet a spravovat textová pole v aplikaci Excel.

Textové pole (Textbox) je ovládací prvek, který umožňuje uživateli zadat text nebo čísla do určitého pole v listu aplikace Excel. Funkce a Vlastnosti VBA Excel Textbox umožňují programátorům vytvářet a konfigurovat textová pole a zpracovávat zadaná data.

Použití Textboxu v aplikaci VBA Excel může být užitečné v mnoha scénářích, jako je vytváření vlastního formuláře nebo aplikace, kde potřebujete získat informace od uživatele. Namísto vkládání dat do buněk tabulky uživateli, můžete použít textová pole k poskytnutí pohodlnějšího a strukturovanějšího rozhraní.

Programátoři mohou také použít VBA Excel Textbox k nastavení omezení zadaných dat, například omezit zadávání pouze na čísla nebo nastavit masku pro zadání data.

Použití VBA Excel Textbox může být efektivním způsobem vytváření interaktivních aplikací v Excelu, kde mohou uživatelé zadávat a komunikovat s daty. Díky flexibilitě a funkčnosti VBA mohou vývojáři použít Textbox k vytvoření různých typů zadávání dat a zvýšení použitelnosti uživatelského rozhraní.

Omezení zadávání pouze čísel

Visual Basic for Applications (VBA) Excel má možnost omezit vstup do textového pole pouze na čísla. To může být užitečné, když chcete, aby uživatel mohl zadávat pouze číselná data, jako jsou telefonní čísla, identifikátory nebo data.

Chcete-li omezit vstup pouze na čísla, můžete pro textové pole Použít událost "KeyPress". K této události dochází pokaždé, když uživatel stiskne klávesu na klávesnici. V obsluze události "KeyPress" můžete zkontrolovat stisknutou klávesu a povolit nebo zakázat její použití.

Zde je příklad kódu, který omezuje zadávání pouze na čísla:

Private Sub TextBox1_KeyPress(ByVal KeyAscii As MSForms.ReturnInteger)If Not IsNumeric(Chr(KeyAscii.Value)) ThenKeyAscii.Value = 0End IfEnd Sub

Tento kód zkontroluje, zda je zadaný znak číslem. Pokud symbol není číslo, kód nastaví hodnotu události "KeyAscii" na 0, aby se znak nezobrazoval v textovém poli.

Tento kód můžete použít na své textové pole nahrazením "TextBox1" jménem textového pole.

Kromě toho, pokud chcete omezit vstup pouze na celá čísla, můžete použít funkci "IsNumeric" ke kontrole, zda je zadaná hodnota celé číslo:

Private Sub TextBox1_KeyPress(ByVal KeyAscii As MSForms.ReturnInteger)If Not IsNumeric(Chr(KeyAscii.Value)) Or InStr(Chr(KeyAscii.Value), ".") > 0 ThenKeyAscii.Value = 0End IfEnd Sub

Tento kód zkontroluje, zda je zadaný symbol číslo a zda neobsahuje desetinnou čárku. Pokud podmínka není splněna, hodnota události "KeyAscii" je nastavena na 0, aby se znak nezobrazoval v textovém poli.

Pomocí VBA v Excelu je tedy možné snadno omezit psaní pouze na čísla v textovém poli. To pomáhá zajistit přesnost a spolehlivost zpracování dat a také zlepšit uživatelský zážitek.

Jak mohu použít VBA Excel Textbox?

Chcete-li použít VBA Excel Textbox, musíte postupovat podle následujících kroků:

  1. Otevřete Editor Visual Basic for Applications (VBA): Chcete-li to provést, vyberte kartu Vývojář na pásu karet Excel a poté klikněte na tlačítko Editor Visual Basic.
  2. Vytvořte nový postup: v editoru VBA vyberte modul, do kterého chcete kód umístit, a klikněte na tlačítko Vložit - > postup. Zadejte název postupu a klikněte na OK.
  3. Vytvořte ovládací prvek Textbox: uvnitř postupu použijte kód k vytvoření nového ovládacího prvku Textbox. Můžete například použít následující kód:
    Dim myTextbox As Object Set myTextbox = ActiveSheet.OLEObjects.Add(ClassType:="Forms.TextBox.1", _ Link:=False, DisplayAsIcon:=False, Left:=100, Top:=100, Width:=100, Height:=20)
  4. Nakonfigurujte vlastnosti položky Textbox: pomocí kódu upravte vlastnosti prvku Textbox, například pro zadání druhu a chování prvku:
    myTextbox.Object.BorderStyle = fmBorderStyleSingle myTextbox.Object.Hodnota = "zadejte hodnotu"
  5. Zpracujte události položky Textbox: použijte kód ke zpracování událostí prvku Textbox, například k provádění akcí při změně hodnoty v vstupním poli:
    Private Sub myTextbox_Change () ' váš kód zde End Sub
  6. Spusťte makro: uložte změny a provedením makra vytvořte a zobrazte položku Textbox v tabulce aplikace Excel.

Nyní můžete použít ovládací prvek Textbox k zadání a zobrazení textových dat v Excelu. Můžete jej také nakonfigurovat tak, aby omezoval zadávání pouze čísel nebo aby prováděl jiné specifické úkoly podle svých potřeb.

Omezení uživatelského vstupu

První metodou je kontrola dat poté, co uživatel dokončil zadávání informací do textového pole. V tomto případě lze použít událost AfterUpdate . Ve zpracovateli této události lze použít funkci IsNumeric ke kontrole, zda je zadaná hodnota číslem. Pokud hodnota není číslo, můžete podniknout příslušné kroky, například vygenerovat chybovou zprávu.

Druhou metodou je při zadávání dat aplikovat takzvaná omezení (constraints). K tomu lze použít atribut ValidationRule textového pole nastavením hodnoty, která bude ověřena, zda splňují daná kritéria. Například je možné nastavit limit pro zadávání pouze čísel pomocí následujícího výrazu: IsNumeric([Value]) . Pokud uživatel zadá jiné znaky, Excel mu to nedovolí a vydá odpovídající chybovou zprávu.

Třetí metodou je zabránit zadávání nesprávných znaků ve fázi zadávání. K tomu lze použít událost KeyPress . Ve zpracovateli této události lze zkontrolovat, zda je zadaný symbol číslo. Pokud symbol není číslo, lze jeho vstup zrušit nastavením hodnoty Cancel na True . V důsledku toho bude uživatel moci do textového pole zadávat pouze čísla.

Pokud je nutné omezit vstup celých čísel nebo čísel s plovoucím bodem, lze k ověření číselných hodnot použít příslušné funkce. K ověření celých čísel lze například použít funkci IsInteger a k ověření čísel s plovoucím bodem funkci IsNumeric .

Vzhledem k těmto metodám je možné efektivně omezit uživatelské zadávání pouze číselných hodnot v textovém poli VBA Excel, zajistit správnost dat a zlepšit fungování aplikací a softwarových řešení.

Příklad použití VBA Excel Textbox

Textbox (pole pro psaní textu) v Excelu VBA umožňuje uživatelům zadávat data přímo do buňky nebo vzorce, což z něj činí velmi užitečný nástroj pro vytváření uživatelského rozhraní.

Podívejme se na jednoduchý příklad použití Textboxu v aplikaci VBA Excel:

  1. Otevřete nový soubor Excel a vložte modul VBA (stiskněte Alt + F11 a poté vložte nový modul).
  2. Vložte následující kód do modulu:
Sub TextBoxExample()Dim inputText As StringinputText = InputBox("Введите текст:", "Пример использования Textbox")MsgBox "Вы ввели: " & inputTextEnd Sub
  1. Uložte soubor s příponou .XLSM (Chcete-li uložit makra) a zavřete Editor VBA (stiskněte Alt + Q).
  2. Stiskněte Alt + F8 a v seznamu Maker Vyberte "TextBoxExample".
  3. Kliknutím na tlačítko Spustit spustíte makro.

Po dokončení se zobrazí zpráva s výzvou k zadání textu. Do vstupního pole zadejte požadovaný text a klikněte na OK. Poté se zobrazí zpráva se zadaným textem.

Tímto způsobem můžete použít Textbox v aplikaci VBA Excel k získání dat od uživatele a jejich dalšímu zpracování. To může být užitečné například při vytváření vlastních formulářů nebo Maker, kde je vyžadováno zadávání dat.

Je důležité si uvědomit, že Textbox vám umožňuje psát pouze text, ale funkce VBA můžete použít k ověření vstupu a omezení konkrétních datových formátů, jako jsou pouze čísla. V našem příkladu jsme pro psaní textu použili InputBox, ale pomocí Textboxu můžete také vytvořit vlastní formulář s polem pro zadávání textu.

Jak vytvořit limit pro zadávání pouze čísel

K vytvoření limitu pro zadávání pouze čísel do textového pole VBA Excel lze použít událost KeyDown . Tato událost je vyvolána pokaždé, když uživatel stiskne klávesu na klávesnici.

Private Sub TextBox1_KeyDown(ByVal KeyCode As MSForms.ReturnInteger, ByVal Shift As Integer)'Проверяем, является ли нажатая клавиша числом (от 0 до 9)If (KeyCode >= 48 And KeyCode = 96 And KeyCode 

V tomto příkladu se po stisknutí klávesy v textovém poli zkontroluje její hodnota. Pokud je hodnota klávesy v rozmezí 0 až 9 (nebo 0 až 9 na další numerické klávesnici), pak je stisk klávesy povolen. V opačném případě, pokud se nejedná o číslici, se stisknutím klávesy zablokuje.

Uživatel tak bude moci do textového pole zadávat pouze čísla a všechny ostatní stisky kláves budou ignorovány.

Toto jednoduché omezení může být užitečné v mnoha situacích, kde je nutné zadat pouze čísla, například při zadávání částek peněz, množství zboží nebo jiných číselných hodnot.