Метод 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." Ссылка ниже: