Excel VBA InputBox

Chociaż przez większość czasu korzystasz z danych, które już masz, czasem pojawia się sytuacja, w której użytkownik chce wprowadzić dane, takie jak imię i nazwisko, wiek itp., Rodzaj danych osobowych. Tego rodzaju informacje wejściowe są czasem potrzebne, gdy przeprowadzamy ankietę i musimy przejrzeć bezstronną opinię ludzi.

Za pomocą InputBox programu Excel VBA możemy uzyskać dane wejściowe od użytkownika. Jak sama nazwa wskazuje, InputBox działa jak wyskakujące okienko, które prosi użytkownika o podanie pewnych informacji.

Składnia dla VBA InputBox

Oto składnia VBA InputBox:

Gdzie,

  • Monituj - komunikat wyświetlany użytkownikowi. Jest to jedyny wymagany argument, pozostałe argumenty są opcjonalne.
  • Tytuł - nagłówek pojawiający się w oknie dialogowym po pomyślnym wykonaniu instrukcji InputBox. Jeśli nie zostanie podany, domyślnie system drukuje „Microsoft Excel” jako tytuł.
  • Domyślne - jest to domyślna wartość wyświetlana w oknie dialogowym. Możemy również zachować wartość zerową. Nie ustawiono wartości domyślnej dla tego argumentu.
  • XPos - Współrzędna położenia okna dialogowego na osi X.
  • YPos - Współrzędna położenia okna dialogowego na osi Y.
  • HelpFile - Lokalizacja pliku pomocy, który powinien zostać użyty. Ten argument staje się obowiązkowy do ustawienia po przekazaniu argumentu „Kontekst”.
  • Context - reprezentuje ContextId pomocy dla użytego pliku pomocy. Obowiązkowe do użycia po przekazaniu argumentu „HelpFile”.
  • Ze wszystkich tych argumentów tylko trzy pierwsze wystarczą, aby pomyślnie utworzyć InputBox.

Tworzenie InputBox w Excelu VBA

Poniżej znajdują się różne kroki, aby utworzyć InputBox w programie Excel za pomocą kodu VBA.

Możesz pobrać ten szablon Excel VBA InputBox tutaj - Szablon Excel VBA InputBox
  • Otwórz VBE (Visual Basic Editor, naciskając jednocześnie Alt + F11 w pliku Excel, a następnie kliknij Wstaw i dodaj nowy moduł w VBE.

  • Utwórz makro w tym module o nazwie „Moduł1”. Przypisz nazwę do makra.

  • Wpisz polecenie InputBox w edytorze.

Podaj następujące dane wejściowe do instrukcji InputBox:

  • Monit: „Czy mogę poznać twoje pełne imię i nazwisko?”
  • Tytuł: „Dane osobowe”
  • Domyślnie: „Zacznij pisać tutaj

Kod:

 Sub InputBoxEX () InputBox „Czy znam twoje imię?”, „Dane osobowe”, „Zacznij pisać tutaj” Zakończ Sub 

  • Naciśnij F5 lub przycisk Uruchom, aby uruchomić ten kod.

Jak przechowywać dane wyjściowe InputBox w komórkach?

Utworzono InputBox, aby uzyskać dane wejściowe od użytkownika. Gdzie jednak dane wyjściowe zostaną zapisane? Nie wspomnieliśmy o żadnej lokalizacji, w której można przechowywać dane wyjściowe.

Przechowujmy dane wyjściowe, które otrzymujemy z InputBox, aby wyróżnić komórki, wykonując poniższe kroki w VBA:

  • Zadeklaruj nową zmienną „Nazwa” z typem jako „Wariant”. Ten typ zmiennej może przyjmować dowolną wartość (numeryczną / łańcuchową / logiczną itp.).

Kod:

 Sub InputBoxEX () Dim Name As Variant End Sub 

  • Użyj InputBox, aby przypisać wartość do tej zmiennej o nazwie „Nazwa”.

Kod:

 Sub InputBoxEX () Dim Name As Variant Name = InputBox („Czy znam twoje imię?”, „Dane osobowe”, „Zacznij pisać tutaj”) Zakończ Sub 

Jeśli zauważyłeś nawias po instrukcji InputBox, są one potrzebne, ponieważ używamy tej instrukcji dla zmiennej „Nazwa”. Gdy tylko staje się wartością dla zmiennej, należy ją podać w odpowiednim formacie z nawiasami.

  • Teraz niezależnie od wartości wpisanej przez użytkownika w oknie dialogowym chcemy, aby była widoczna w komórce A1 arkusza Excel. W VBE wstaw następującą instrukcję: Zakres („A1”) Wartość = Nazwa.

Kod:

 Sub InputBoxEX () Nazwa dim jako nazwa wariantu = InputBox („Czy znam twoje imię?”, „Dane osobowe”, „Zacznij pisać tutaj”) Zakres („A1”). Wartość = Nazwa Koniec Sub 

To jest to, teraz uruchommy ten kod i zobaczmy, jak to działa.

  • Kliknij przycisk Uruchom lub naciśnij F5, aby uruchomić ten kod, pojawi się następujące okno dialogowe. Wpisz swoje imię w wyskakującym oknie dialogowym z nazwą „Dane osobowe” i naciśnij OK, aby zobaczyć, gdzie wydrukuje się wydruk.

  • Po wprowadzeniu wartości i kliknięciu przycisku OK można zobaczyć wartość wprowadzoną w komórce A1. Zobacz zrzut ekranu poniżej.

Każda wartość może być przechowywana za pomocą InputBox, jeśli zmienna jest poprawnie zdefiniowana. W tym przypadku zmienna „Nazwa” została zdefiniowana jako „Wariant”. Wariant typu danych może przyjąć dowolną wartość danych, jak powiedziałem wcześniej.

Zobacz przykład poniżej:

Podaję liczbę jako argument do okna dialogowego, gdy się pojawi. Zobacz jak poniżej:

Kliknij OK, zobacz wynik poniżej:

Wartość w komórce A1 zostaje zmieniona na 2019.

Teraz zmieńmy typ zmiennej na Data.

Kod:

 Sub InputBoxEX () Dim Name As Date Name = InputBox („Czy znam twoje imię?”, „Dane osobowe”, „Zacznij pisać tutaj”) Zakres („A1”). Wartość = Nazwa Koniec Sub 

Uruchom kod i spróbuj wprowadzić wartość inną niż data. Wprowadzę swoje imię i kliknij OK.

  • Po kliknięciu przycisku OK pojawia się komunikat o błędzie w czasie wykonywania z napisem „Niezgodność typu”.

Stało się tak, ponieważ typem nazwy zmiennej jest teraz Data i podałem argument wejściowy inny niż wartość daty (nazwa ciągu). Z tego powodu ten kod nie wykonuje się i generuje błąd.

Walidacja danych wejściowych użytkownika

Co jeśli powiem ci, że dane wejściowe użytkownika mogą być ograniczone? Tak, to prawda! Możesz ograniczyć wprowadzanie danych przez użytkownika do Znaków, Liczb lub Logicznych itp.

Aby ograniczyć wprowadzanie danych przez użytkownika, możesz użyć Application.InputBox.

Składnia dla Application.InputBox jest następująca:

Gdzie,

Monituj - komunikat, który pojawia się dla użytkownika.

Tytuł - nagłówek okna dialogowego.

Domyślne - domyślna wartość pojawiająca się w obszarze pisania pod oknem dialogowym.

Typ - typ danych wejściowych.

Są to jedyne ważne argumenty wystarczające do uruchomienia tej instrukcji.

Zacznijmy od przykładu.

  • Zadeklaruj nazwę zmiennej jako Wariant.

Kod:

 Sub InputBoxEX () Dim Name As Variant End Sub 

Przypisz Application.InputBox do zmiennej o nazwie Name z tymi samymi argumentami, jakie użyłeś InputBox. tj. Monit, tytuł i domyślne. Zobacz kod poniżej:

Kod:

 Sub InputBoxEX () Dim Name As Variant Name = Application.InputBox („Czy znam twoje imię?”, „Dane osobowe”, „Zacznij pisać tutaj”) Zakończ Sub 

Teraz wstaw przecinek 5 razy, aby zignorować Left, Top, HelpFile i HelpContextID. Po 5 przecinkach możesz określić typ wprowadzania.

Kod:

 Sub InputBoxEX () Dim Name As Variant Name = Application.InputBox („Czy znam twoje imię?”, „Dane osobowe”, „Zacznij pisać tutaj”,,,,, End Sub 

Typ ciągu wejściowego mają poniżej wymienione walidacje:

  • Wybierzmy 1 jako typ w naszym zestawieniu. Oznacza to, że w wyskakującym oknie dialogowym dopuszczalne są tylko liczby / wartości liczbowe.

Kod:

 Sub InputBoxEX () Dim Name As Variant Name = Application.InputBox („Czy mogę poznać twoje imię?”, „Dane osobowe”, „Zacznij pisać tutaj”,,,,, 1) Zakończ Sub 

  • Uruchom kod ręcznie lub za pomocą klawisza F5 i podaj nazwę jako dane wejściowe w obszarze pisania, jak pokazano poniżej. Następnie kliknij OK i zobacz Dane wyjściowe.

Mówi, że numer jest nieprawidłowy. Wydaje się to logiczne, ponieważ ustawiliśmy zmienny typ danych wejściowych jako liczbę i podaliśmy tekst jako dane wejściowe, które nie są akceptowane przez system.

W ten sposób możesz ograniczyć użytkownikowi wprowadzanie tylko wartości, które chcesz widzieć przez InputBox.

Rzeczy do zapamiętania

  • InputBox akceptuje do 255 argumentów i może wyświetlać tylko 254. Bądź więc ostrożny, jeśli chodzi o maksymalną długość, jaką może wprowadzić użytkownik.
  • Do ustawienia typu danych wejściowych można użyć metody aplikacji. Jeśli jednak nie jest używany, musisz bardziej szczegółowo określić typ danych wejściowych.
  • Zaleca się wybór wariantu typu danych, ponieważ może on zawierać dowolną wartość liczbową / tekstową / logiczną itp. B = Wartości.

Polecane artykuły

To był przewodnik po VBA InputBox. Tutaj omówiliśmy, jak utworzyć InputBox w Excelu za pomocą kodu VBA wraz z praktycznymi przykładami i szablonem Excel do pobrania. Możesz także przejrzeć nasze inne sugerowane artykuły -

  1. Jak korzystać z funkcji ZNAJDŹ w Excelu
  2. Tworzenie funkcji VBA w Excelu
  3. Przewodnik po zakresie w programie Excel
  4. Jak korzystać z funkcji VBA VLOOKUP?

Kategoria: