Ввод данных в программу и вывод результата

Организация диалога между пользователем и программой.

 

Между программой VBA и пользователем, как правило, происходит постоянный обмен данными – получение программой VBA данных от пользователя с сохранением их в заданных переменных и отображение результатов выполненных действий. Все эти операции ввода/вывода выполняются при помощи специальных операторов VBA. При этом обмен данными между программой VBA и пользователем можно осуществить двумя способами.

Первый способ – использование операторов (функций) ввода/вывода InputBox и MsgBox.

Данные, вводимые пользователем, называются входными данными. Чтобы передать входные данные от пользователя программе VBA, т.е. ввести данные в программу, используется функция InputBox. При вызове функция InputBox на экране монитора отображается диалоговое окно, в котором программа VBA запрашивает (приглашает) пользователя ввести некоторое значение в текстовое окно. Кроме текстового приглашения и окна ввода данных диалоговое окно содержит также командные кнопки ОКи Cancel. По нажатию кнопки ОК содержимое текстового окна будет записано на переменную, указанную в левой части выражения вызова функции InputBox. Функция InputBox имеет следующий синтаксис:

 

stringvar = InputBox (Promt [, Title])

 

Здесь stringvar – это переменная пользователя. Аргумент Prompt представляет любое строковое значение (символ, символьную константу или переменную). В диалоговом окне этот аргумент будет отображаться как текст приглашения к вводу данных (см. пример и рисунок ниже). Указание этого аргумента является обязательным. В случае, если нет необходимости указания какого-либо приглашения, можно просто привести пустые кавычки (пустая символьная константа).

Аргумент Title является необязательным вторым аргументом для функции InputBox. Параметр Title представляет собой также любое строковое значение (символ, символьную константу или переменную). Функция InputBoxотображает символьное содержимое этого аргумента в строке заголовка диалогового окна. Если при вызове функции InputBox аргумент Title опущен, VBA отображает в строке заголовка диалогового окна название открытого приложения (Microsoft Excel). Пример вызова функции InputBox в программе VBA:

 

R1 = InputBox("Введите радиус круга", "Площадь круга")

 

В результате выполнения этого действия VBA выводит на экран монитора следующий запрос:

 

 

Вывод данных производится командой (оператором) MsgBox (вывод ответа в диалоговом окне). При выполнении оператора MsgBox программа VBA выводит на экран монитора диалоговое окно (см. пример ниже). Оператор MsgBox имеет следующую форму записи:

 

MsgBox "Promt", [Buttons As VbMsgBoxStyle = vbOKOnly], [Title]

 

Следует подчеркнуть, что MsgBox является не функцией, а оператором (командой), т.е. он не содержит в левой части переменную. Кроме того, обратите внимание, что список аргументов оператора MsgBox не заключен в скобки.

Первый аргумент Promt является текстовым комментарием, который будет отображен в выводимом диалоговом окне. Второй аргумент Buttons As VbMsgBoxStyle = vbOKOnly является необязательным. Он определяет, сколько и какого типа командные кнопки появляются в диалоговом окне, отображаемом посредством MsgBox. Когда этот необязательный аргумент опущен, диалоговое окно содержит только одну кнопку – OK (если какой-либо необязательный аргумент опускается, то для продолжения указания списка аргументов после предыдущего аргумента обязательно ставится две запятые).

Третий аргумент Title определяет заголовок диалогового окна. Подобно первому аргументу текст для строки заголовка диалогового окна заключается в кавычки. Пример:

 

MsgBox "Сумма ряда равна " & z, , "Решение задачи"

 

После выполнения этой команды на экране отображается диалоговое окно, сообщающее результат – вместо переменной z выводится ее численное значение.

 

 

Функция InputBox и оператор MsgBox используется как правило для ввода и вывода единичных данных и различного рода сообщений на экран монитора. Для более объемных данных более удобен ввода/вывод не в диалоговое окно, а на Рабочий лист Excel. Это производится в программе VBA с помощью ключевого имени (функции) cells. Функция cells имеет следующий формат:

 

Имя_переменной = Cells(i, j)

 

i – номер строки; j – номер столбца. Например, строка программы

 

xEnd = Cells(3, 2)

 

присваивает переменной xEnd числовое значение, записанное в ячейке Рабочего листа Excel, а именно, – в 3-й строке, 2-м столбце.

Для вывода результата в рабочий лист Excel используется запись с обратным расположением переменной и ячейки Excel:

 

Cells(i, j) = Имя_переменной

 

Номер строки и столбца можно указывать как в виде конкретных целых чисел, так и в виде переменных (их числовое значение должно быть целым и определено заранее). Например, выполнения действий:

 

i = 3

Cells(i, 7) = x

 

программа VBA выводит численное значение переменной x в ячейку рабочего листа, находящейся на пересечении 3-й строки, 7-го столбца.