Excel VBA InputBox

Хоча в більшості випадків ви використовуєте дані, які вже є у вас, іноді виникає ситуація, коли ви бажаєте, щоб користувач вводив такі дані, як Ім'я, Вік тощо, типу особистої інформації. Такі види вхідної інформації потрібні іноді, коли ми проводимо опитування та потребуємо перегляду неупередженої думки людей.

Використовуючи InputBox Excel VBA, ми можемо отримати вхідні дані від користувача. Як випливає з назви, InputBox працює як спливаюче вікно, яке просить користувача ввести певну інформацію.

Синтаксис для VBA InputBox

Далі йде синтаксис для VBA InputBox:

Де,

  • Підказка - повідомлення, яке відображається користувачеві. Це єдиний необхідний аргумент, інші інші аргументи необов’язкові.
  • Заголовок - це заголовок, який з’являється у діалоговому вікні після успішного виконання оператора InputBox. Якщо не вказано, система за замовчуванням друкує "Microsoft Excel" як заголовок.
  • За замовчуванням - це значення за замовчуванням, яке відображається у діалоговому вікні. Ми також можемо зберегти це недійсним. Для цього аргументу не встановлено значення за замовчуванням.
  • XPos - Позиція координати діалогового вікна на осі X.
  • YPos - Позиція координати діалогового вікна на осі Y.
  • HelpFile - Місце розташування файлу довідки, який слід використовувати. Цей аргумент стає обов'язковим для встановлення при передачі аргументу "Контекст".
  • Контекст - представляє довідку ContextId для використовуваного файлу довідки. Обов’язково використовувати при передачі аргументу "HelpFile".
  • З усіх цих аргументів лише перших трьох достатньо для успішного створення InputBox.

Створення InputBox в Excel VBA

Нижче наведено різні етапи створення InputBox в Excel за допомогою коду VBA.

Ви можете завантажити шаблон VBA InputBox Excel тут - шаблон VBA InputBox Excel
  • Відкрийте VBE (Visual Basic Editor), натиснувши одночасно Alt + F11 у файлі Excel та натисніть кнопку Вставити та додайте новий модуль у VBE.

  • Створіть макрос у цьому модулі під назвою "Module1". Призначте ім'я макросу.

  • Введіть команду InputBox в редактор.

Надайте наступні входи в оператор InputBox:

  • Підказка: "Чи можу я знати ваше повне ім'я?"
  • Назва: "Особиста інформація"
  • За замовчуванням: "Почніть вводити тут

Код:

 Sub InputBoxEX () InputBox "Чи можу я знати ваше ім'я?", "Особиста інформація", "Почніть вводити сюди" Кінець підрозділу 

  • Натисніть F5 або кнопку запуску, щоб запустити цей код.

Як зберігати вихід InputBox до клітин?

Ви створили InputBox, щоб отримати вхід від користувача. Однак де буде зберігатися вихід? Ми не згадували жодного місця, де можна зберігати вихід.

Давайте збережемо вихідний результат, отриманий від InputBox, для випередження комірок, виконавши наступні кроки у VBA:

  • Оголосіть нову змінну 'Name' з типом 'Variant'. Цей тип змінної може приймати будь-яке значення (числове / рядкове / логічне тощо).

Код:

 Sub InputBoxEX () Dim ім'я як варіант варіанту Кінець Sub 

  • Використовуйте InputBox, щоб призначити значення цій змінній під назвою "Ім'я".

Код:

 Sub InputBoxEX () Dim ім'я як ім'я варіанта = InputBox ("Чи можу я знати ваше ім'я?", "Особиста інформація", "Почніть вводити тут") Кінець Sub 

Якщо ви могли помітити дужки після оператора InputBox, вони потрібні, оскільки ми використовуємо цей оператор для змінної "Ім'я". Як тільки воно стає значенням для змінної, його слід згадати у відповідному форматі з дужками.

  • Тепер, яке б значення не було введено користувачем у діалоговому вікні, ми хочемо, щоб це побачило у комірці А1 листа Excel. Поставте наступне твердження для того ж у VBE: Діапазон ("A1"). Значення = Ім'я.

Код:

 Sub InputBoxEX () Dim Name як назва варіанта = InputBox ("Чи можу я знати ваше ім'я?", "Особиста інформація", "Почніть вводити тут") діапазон ("A1"). Значення = Ім'я Кінець Sub 

Це воно, тепер давайте запустимо цей код і подивимося, як він працює.

  • Натисніть кнопку Запустити або натисніть F5, щоб запустити цей код, ви отримаєте наступне діалогове вікно. Напишіть своє ім’я у діалоговому вікні, в якому з’явилося ім’я «Особиста інформація», і натисніть «ОК», щоб побачити, де друкується вихід.

  • Як тільки ви введете значення і натисніть кнопку ОК, ви зможете побачити значення, введене в комірку A1. Дивіться скріншот нижче.

Будь-яке значення може бути збережене за допомогою InputBox, якщо змінна правильно визначена. У цьому випадку ви визначили змінну 'Ім'я' як 'Варіант'. Варіантний тип даних може приймати будь-яке значення даних, як я вже говорив раніше.

Дивіться приклад нижче:

Я даю число як аргумент діалогового вікна, коли з'являється. Дивіться як нижче:

Клацніть на OK, дивіться вихід нижче:

Значення в комірці A1 змінено на 2019 рік.

Тепер давайте змінимо тип змінної на Date.

Код:

 Sub InputBoxEX () Dim Name як дата Ім'я = InputBox ("Чи можу я знати ваше ім'я?", "Особиста інформація", "Почніть вводити тут") діапазон ("A1"). Значення = Ім'я Кінець Sub 

Запустіть код і спробуйте ввести значення, відмінне від дати. Я введу своє ім’я і натискаю ОК.

  • Після натискання кнопки "ОК" повідомлення про помилку в часі виконання: "Введіть невідповідність".

Це сталося тому, що тип імені змінної - Дата зараз, і я дав вхідний аргумент, крім значення дати (ім'я рядка). Через що цей код не виконується і видає помилку.

Валідація введення користувача

Що робити, якщо я скажу вам, що введення користувача можна обмежити? Так, це правда! Ви можете обмежити введення користувачем символів, чисел або логіки тощо.

Для обмеження введення користувача можна скористатися програмою Application.InputBox.

Синтаксис для Application.InputBox такий:

Де,

Підказка - повідомлення, яке з’являється для користувача.

Назва - Заголовок діалогового вікна.

За замовчуванням - значення за замовчуванням, яке з'являється в області набору тексту в діалоговому вікні.

Тип - тип вводу.

Це єдині важливі аргументи, яких достатньо для запуску цього твердження.

Почнемо це з прикладу.

  • Оголосити назву змінної як варіант.

Код:

 Sub InputBoxEX () Dim ім'я як варіант варіанту Кінець Sub 

Призначте Application.InputBox до змінної під назвою Name з тими ж аргументами, що і ті, якими ви користувалися InputBox. тобто запит, заголовок та за замовчуванням. Дивіться код нижче:

Код:

 Sub InputBoxEX () Dim ім'я як назва варіанта = Application.InputBox ("Чи можу я знати ваше ім'я?", "Особиста інформація", "Почніть вводити тут") Кінець Sub 

Тепер 5 разів ставити кому, щоб ігнорувати лівий, верхній, довідковий файл та HelpContextID. Через 5 коми ви можете вказати тип введення.

Код:

 Sub InputBoxEX () ім'я диму як назва варіанта = Application.InputBox ("Чи можу я знати ваше ім'я?", "Особиста інформація", "Почніть вводити тут",,,,, Закінчити Sub 

Тип вхідного рядка має нижче вказані валідації:

  • Давайте виберемо 1 як тип у нашому викладі. Це означає, що в діалоговому вікні, що з'являється, допустимі лише число / числові значення.

Код:

 Sub InputBoxEX () Dim ім'я як назва варіанта = Application.InputBox ("Чи можу я знати ваше ім'я?", "Особиста інформація", "Почніть вводити тут",,,, 1) Кінець Sub 

  • Запустіть код вручну або за допомогою клавіші F5 та введіть ім’я як вхід у область введення тексту, як показано нижче. Потім натисніть кнопку OK і перегляньте результат.

Каже, номер недійсний. Це здається логічним, тому що ми встановили тип змінної введення як число і надаємо текст як вхід, який неприйнятний системою.

Таким чином, ви можете обмежити користувача вводити лише ті значення, які ви хочете бачити через InputBox.

Що потрібно пам’ятати

  • InputBox приймає до 255 аргументів і може відображати лише 254. Тому будьте обережні щодо максимальної довжини, яку може ввести користувач.
  • Метод застосування може бути використаний для встановлення типу вхідних даних. Однак якщо він не використовується, то вам слід бути більш конкретним щодо типу вхідних даних.
  • Варіант типу даних рекомендується вибирати, оскільки він може містити будь-яке числове / текстове / логічне тощо. B = Значення.

Рекомендовані статті

Це було керівництвом до VBA InputBox. Тут ми обговорили, як створити InputBox в Excel за допомогою коду VBA разом із практичними прикладами та шаблоном Excel, який можна завантажити. Ви також можете ознайомитися з іншими запропонованими нами статтями -

  1. Як використовувати функцію FIND в Excel
  2. Створення функції VBA в Excel
  3. Посібник по діапазону в Excel
  4. Як використовувати функцію VBA VLOOKUP?

Категорія: