Найти в Дзене
VBA Excel с нуля

VBA Excel № 138. Метод InputBox.

Оглавление
Скриншот с моего ноутбука
Скриншот с моего ноутбука

Метод InputBox (не путать с функцией VBA InputBox) в Excel предлагает ряд преимуществ по сравнению с функцией VBA InputBox.

Во-первых, он позволяет задать тип возвращаемого значения.

Во-вторых, можно указать диапазон листа, используя мышь для его выделения.

И, наконец, он обеспечивает автоматическую проверку введенных данных на правильность.

Синтаксис метода InputBox таков:

InputBox(запрос, [, заголовок], [, по_умолчанию), [, слева), [, сверху], [, справка, раздел], [, тип] )

Где:

  • Запрос: текст, отображаемый в окне ввода (обязательный параметр).
  • Заголовок: заголовок окна ввода (необязательный параметр).
  • По_умолчанию: значение, отображаемое по умолчанию в окне ввода (необязательный параметр).
  • Слева, сверху: координаты верхнего левого угла окна ввода на экране (необязательные параметры).
  • Справка, раздел: файл и раздел в справочной системе (необязательные параметры).
  • Тип: код типа данных, возвращаемого методом (необязательный параметр).

Значения типа данных и их соответствующие коды приведены в таблице:

Скриншот с моего ноутбука
Скриншот с моего ноутбука

📌 Скачать файл пример, можно в конце статьи.

Метод InputBox обладает гибкостью, позволяя возвращать различные типы данных в зависимости от суммы значений типов. Например, для ввода текста или числа используйте код 3 (1+2), а для ввода адреса ячейки — код 8. Пользователь также может указать диапазон на текущем листе.

В примере процедуры "ДиапазонУдаления" ниже используется метод InputBox для выбора удаляемого диапазона. После ввода адреса диапазона и нажатия кнопки "OK", выбранный диапазон очищается.

Скриншот с моего ноутбука
Скриншот с моего ноутбука
Скриншот с моего ноутбука
Скриншот с моего ноутбука

Еще одно преимущество метода InputBox — автоматическая проверка правильности введенных данных. Если пользователь вводит данные, не соответствующие ожидаемому формату (например, не являющиеся диапазоном адресов), Excel отобразит сообщение об ошибке и предложит повторить ввод данных.

Скриншот с моего ноутбука
Скриншот с моего ноутбука

Вот пояснение к каждой строке кода:

  • Sub ДиапазонУдаления(): Это объявление начала процедуры с именем "ДиапазонУдаления". Процедура начинается с ключевого слова Sub, за которым следует имя процедуры в скобках.
  • Dim ВыбранныйДиапазон As Range: Эта строка объявляет переменную ВыбранныйДиапазон типа Range, которая будет использоваться для хранения выбранного пользователем диапазона ячеек.
  • On Error Resume Next: Эта строка указывает на то, что при возникновении ошибки выполнение программы должно продолжаться, пропуская ошибки. Это используется, чтобы избежать прерывания выполнения программы при возникновении ошибки в строке, где происходит выбор диапазона.
  • Set ВыбранныйДиапазон = Application.InputBox _: Здесь происходит вызов метода InputBox объекта Application, который отображает окно ввода пользователю. В результате выбора пользователя переменная ВыбранныйДиапазон будет содержать выбранный диапазон ячеек.
  • (Prompt:="Выберите удаляемый диапазон:", _: Это аргумент метода InputBox, который устанавливает текст запроса, отображаемый в окне ввода. В данном случае текст сообщает пользователю, что нужно выбрать диапазон для удаления.
  • Title:="Удаление диапазона", _: Это аргумент метода InputBox, который устанавливает заголовок окна ввода. В данном случае он сообщает пользователю о том, что происходит удаление диапазона.
  • Default:=Selection.Address, _: Это аргумент метода InputBox, который устанавливает значение по умолчанию, отображаемое в окне ввода. В данном случае используется адрес текущей выбранной ячейки в качестве значения по умолчанию.
  • Type:=8): Это аргумент метода InputBox, который устанавливает тип данных, который будет возвращаться методом. В данном случае используется значение 8, что означает, что пользователь может ввести адрес ячейки или диапазона ячеек.
  • On Error GoTo 0: Эта строка отменяет режим игнорирования ошибок, устанавливая обработку ошибок по умолчанию.
  • If Not ВыбранныйДиапазон Is Nothing Then: Это условное выражение проверяет, не является ли переменная ВыбранныйДиапазон пустой (не выбран ли диапазон).
  • ВыбранныйДиапазон.ClearContents:Если диапазон выбран, то данный код очищает содержимое выбранного диапазона.
  • ВыбранныйДиапазон.Select:Эта строка выделяет выбранный диапазон на листе.
  • End If: Это ключевое слово завершает блок условия If.

СКАЧАТЬ ФАЙЛ ПРИМЕР

И хочу проинформировать вас, уважаемые читатели, что я также добавил файл пример в статью "VBA Excel № 72.3 Работа с датами. Расширенные функции в VBA." Ссылка ниже: