Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Программирование VBA.pdf
Скачиваний:
374
Добавлен:
03.05.2015
Размер:
3.07 Mб
Скачать

43

этот аргумент опущен, диалоговое окно помещается по вертикали примерно на одну треть высоты экрана.

Аргументы helpfile и context используются в том случае, если в приложении создаётся собственная система справки.

Возвращаемым значением функции InputBox является значение, введенное пользователем в поле ввода.

Пример

Sub ФункцияInputBox() Dim Данное As Variant

Данное = InputBox("Введите данное") MsgBox "Введённое данное равно " & Данное

ActiveCell.Value = Данное End Sub

Тип возвращаемого значения определен как Variant, т.е. тип определяется введенным значением.

2.9.3.Метод InputBox

В Excel имеется еще один способ ввода данных пользователем в интерактивном режиме, который имеет называние метод InputBox. Формат метода:

Application.InputBox(Prompt,Title,Default,Left,Top,HelpFile,HelpContextId,Type)

Метод InputBox является методом объекта Application, и поэтому здесь присутствует слово Application. Аргументы этого метода, кроме Type, такие же, как и у функции InputBox. Основное отличие синтаксиса метода InputBox от синтаксиса одноименной функции заключается в последнем аргументе Type. Необязательный аргумент Type позволяет явно указать тип возвращаемого значения. В приведённой ниже таблице содержатся значения, которые может принимать этот аргумент.

 

 

Значения аргумента Type

Значение

 

Возвращаемое значение

 

 

 

0

 

Формула

 

 

 

1

 

Число

 

 

 

2

 

Текст (строка)

 

 

 

4

 

Логические значения, такие как ИСТИНА и ЛОЖЬ

 

 

 

8

 

Ссылка на ячейку

 

 

 

16

 

Значение ошибки

 

 

 

64

 

Массив значений

 

 

 

Пример

Sub Пример()

Dim Данное As Integer

Данное = Application.InputBox("Введите число:", , , , , , , 1)

44

MsgBox "Введённое данное равно " & Данное

End Sub

Запятые в выражении Application.InputBox указывают места пропущенных аргументов. Последний аргумент – Type имеет значение 1. Это показывает, что допустимыми вводимыми значениями являются только числа.

Преимуществом метода InputBox является возможность обнаружения ошибок при вводе данных. Например, если при выполнении процедуры Пример введено не число, то будет выведено следующее сообщение об ошибке:

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

Пример

Sub ФункцияInputBox2() Dim Данное As Variant

Данное = Application.InputBox("Введите данное:", , , , , , , 3) MsgBox "Введённое данное равно " & Данное

End Sub

Пропуск отмечающих запятых, а также перестановка аргументов функции приводит к ошибкам несовпадения типов. Для предотвращения ошибок программирования функций при вводе аргументов VBA предоставляет возможность передавать значения аргументов функции, используя именованные аргументы функций. Приведённая ниже процедура Пример2 иллюстрирует использование именованных аргументов функций Prompt, Title и Type; она решает ту же задачу, что и процедура Пример.

Sub Пример2()

Dim Данное As Integer

Данное = Application.InputBox(Promp t:= "Введите число:", _ Title:="Проверка типа данных", Type:=1)

MsgBox Prompt := "Введённое данное равно " & Данное, _ Title:="Проверка ввода данных"

End Sub

Следует обратить внимание на то, что:

имя аргумента отделяется от его значения символом “:=” (двоето-

чие и равно);

порядок перечисления именованных аргументов не обязательно совпадает с их порядком в формате функции;

45

список аргументов функции MsgBox не заключается в скобки;

в операторе Данное = Application.InputBox … функция InputBox ис-

пользуется как метод приложения Application, и поэтому её аргу-

менты заключаются в скобки.

Ниже приведены результаты выполнения процедуры Пример2.

2.9.4.Объединение текстовых строк

Если надо объединить несколько текстовых строк в одну, используется символ конкатенации &. Его применение, а также применение других символьных констант, используемых при выводе сообщений, на экран показано в приведённой ниже процедуре ОбъединениеСтрок.

Sub ОбъединениеСтрок() Dim Имя As String

Dim Сообщение As String

Имя = InputBox("Введите ваше имя: ")

'Следующая строка для окна сообщения объединяет 'слово "Привет" со значением переменной Имя

MsgBox "Привет, " & Имя & "!"

Сообщение = "Это пример объединения нескольких" Сообщение = Сообщение & " строк в одну большую" Сообщение = Сообщение & " строку." & vbNewLine

Сообщение = Сообщение & "vbNewLine - константа, позволяющая" Сообщение = Сообщение & " начинать новую строку"

MsgBox Сообщение

End Sub

Ниже приведены результаты выполнения процедуры ОбъединениеСтрок.