InputBox je jednou z hlavních funkcí aplikace VBA Excel, která umožňuje uživateli zadávat data z klávesnice. Často je však nutné omezit povolený formát zadaných hodnot, například aby uživatel mohl zadávat pouze čísla nebo pouze písmena. K tomu lze použít vstupní masku, která identifikuje možné znaky pro zadání a jejich pořadí.
Vstupní maska je řetězec složený ze speciálních znaků, z nichž každý označuje určitý typ symbolu. Například symbol "#" v masce označuje číslici a symbol " @ " písmeno. Existují i další speciální symboly, například "+" označuje znak "+" nebo " - " a " * " je jakýkoli symbol. Vstupní maska poskytuje možnost omezit zadané hodnoty podle určitých pravidel a zvýšit přesnost zadávání dat.
Příklad použití vstupní masky: InputBox ("zadejte své telefonní číslo:", , "(###) ###-####")
V tomto případě vstupní maska označuje, že uživatel musí zadat telefonní číslo ve formátu (###) ###-####, kde " # " označuje číslo. Uživatel tak může zadat pouze čísla a závorky a pomlčka se automaticky přidají při zadávání. Pokud uživatel zadá hodnotu, která neodpovídá masce, zobrazí se chybová zpráva.
Co je vstupní maska a k čemu slouží
Použití vstupní masky usnadňuje zadávání dat uživatelem a zabraňuje tomu, aby bylo možné zadat nesprávné hodnoty. Pomáhá udržovat data v určitém formátu,což usnadňuje další zpracování a analýzu dat.
Vstupní maska je široce používána v různých oblastech, včetně práce s formuláři, telefonními čísly, poštovními adresami, daty, časem, měnou a dalšími typy dat.
Například pro zadání telefonního čísla je možné nastavit masku, kde uživatel může zadávat pouze čísla a po určitém počtu znaků automaticky přidá mezery nebo pomlčky. To pomůže zjednodušit zadávání čísla a zvýší jeho čitelnost.
Vstupní masky lze implementovat pomocí různých technologií, včetně programovacího jazyka VBA v Excelu. Pomocí vstupní masky budete moci snadno spravovat, co může uživatel zadat do konkrétního pole, což zajistí správný formát dat.
Funkce vstupní masky InputBox VBA Excel
Jednou z funkcí vstupní masky do InputBox VBA Excel je možnost použití zástupných znaků. Tyto znaky znamenají, že na dané pozici musí být v řádku zadána určitá hodnota nebo znaky.
Například symbol " # " označuje číslici, symbol "?"- jakýkoli jednotlivý symbol, symbol " * "- jakákoli sekvence znaků, symbol " 0 " - číslici nebo mezeru.
Díky použití vstupní masky může uživatel zobrazit náhled zadaných dat a také získat vodítka o tom, jaké hodnoty by měly být zadány. To pomáhá snížit pravděpodobnost chyb při zadávání dat.
Zvláštností vstupní masky do InputBox VBA Excel je také možnost kombinovat zástupné znaky s jinými symboly. Pokud je například nutné omezit zadávání data, můžete použít masku "##/##/####", kde " # " je číslo.
Hodnoty vstupní masky lze nastavit při volání funkce InputBox pomocí možnosti "InputMask". Například:
Dim myValue As String
myValue = InputBox ("zadejte hodnotu:", "Vstupní maska", , , , "##/##/####")
V tomto příkladu se při volání InputBox zobrazí vstupní maska pro datum ve formátu "##/##/####".
Použití vstupní masky v InputBox VBA Excel usnadňuje proces zadávání dat a umožňuje kontrolu nad zadanými hodnotami. To je zvláště užitečné při práci s velkým množstvím dat, což pomáhá ušetřit čas uživatele a snížit pravděpodobnost chyb.
Práce s vstupní maskou do VBA
Jedním z nejoblíbenějších způsobů implementace vstupní masky do VBA je použití metody `InputBox`. Tato metoda umožňuje vytvořit dialogové okno pro zadávání dat uživatelem a ve výchozím nastavení nemá možnost nastavit vstupní masku.
Je však možné vytvořit vlastní funkci, která před použitím zkontroluje uživatelem zadaná data. Můžete například vytvořit funkci, která zkontroluje, že zadaný text je validní e-mailová adresa nebo že zadané znaky jsou číslice.
Níže je uveden příklad funkce, která kontroluje zadaný text tak, aby odpovídal šabloně e-mailové adresy:
Function IsValidEmail(email As String) As Boolean
Dim pattern As String
IsValidEmail = (email <> "" And email Like pattern)
Tento příklad používá regulární výraz k ověření textu, aby odpovídal šabloně e-mailové adresy. Pokud zadaný text odpovídá šabloně, funkce vrátí `True`, jinak `False`.
Nyní můžeme tuto funkci použít spolu s metodou ' InputBox` k vytvoření vstupní masky pro e-mailovou adresu:
Dim email As String
e-mail = InputBox ("zadejte e-mailovou adresu:")
If IsValidEmail(email) Then
MsgBox " zadaná e-mailová adresa je validní."
MsgBox " zadaná e-mailová adresa je nevalná."
Tímto způsobem můžeme kontrolovat správnost zadaných dat a varovat uživatele před nesprávným zadáním.
Vstupní masky do VBA lze také použít v jiných kontextech, například při práci s textovými poli ve vlastní podobě. V takovém případě můžete použít události textového pole, jako je `BeforeUpdate` nebo `AfterUpdate`, ke kontrole zadaných dat a zpracování chyb nebo varování.
Obecně platí, že práce s vstupní maskou do VBA umožňuje lepší uživatelský zážitek a pohodlnější a bezpečnější práci s daty.
Příklady použití vstupní masky VBA Excel
Omezení vstupních znaků:
Musíme omezit zadávání dat uživatelem na pouze čísla. K tomu můžeme v VBA použít následující masku:
ActiveSheet.Range("A1").Validation.Add Type:=xlValidateCustom, Formula1:="=ISNUMBER(A1)"
Uživatel tak bude moci do buňky A1 zadávat pouze čísla.
Omezení počtu znaků:
Řekněme, že chceme omezit počet zadaných znaků v buňce na 10. K tomu můžeme v VBA použít následující masku:
ActiveSheet.Range("A1").Validation.Add Type:=xlValidateTextLength, Formula1:="=LEN(A1)
Nyní bude moci uživatel do buňky A1 zadat pouze až 10 znaků.
Omezení zadaného data:
Předpokládejme, že musíme omezit data zadaná uživatelem pouze na data aktuálního roku. K tomu můžeme v VBA použít následující masku:
ActiveSheet.Range("A1").Validation.Add Type:=xlValidateDate, Formula1:=">=DATE(YEAR(NOW()),1,1)"
Uživatel tak bude moci do buňky A1 zadávat pouze data aktuálního roku.
Omezení zaváděného času:
Předpokládejme, že musíme omezit čas zadaný uživatelem pouze v rámci pracovního dne (od 9:00 do 17:00). K tomu můžeme v VBA použít následující masku:
ActiveSheet.Range("A1").Validation.Add Type:=xlValidateTime, Formula1:=">=TIME(9,0,0)", Formula2:="
Uživatel tak bude moci zadat do buňky A1 pouze čas v uvedeném intervalu.
Příklady použití vstupní masky do aplikace VBA Excel umožňují přesnější kontrolu dat zadaných uživatelem a prevenci chyb. Pomáhají zachovat integritu dat a poskytují přesnější a spolehlivější výsledky v práci s pracovními sešity aplikace Excel.