- •Лабораторная работа №2 Ввод/вывод данных
- •Создание, выполнение, сохранение процедур
- •Ввод кода с клавиатуры
- •Создание процедуры с именем “Начaло_vba”, в которой на экран выводится сообщение "Начинаем работать с vba".
- •Выполнение процедуры
- •Сохранение процедуры
- •Щёлкнуть правой кнопкой мыши на элементе ЭтаКнига.
- •Выполнение процедуры
- •Сохранение процедуры
- •Получение контекстно-зависимой справки vba
- •Адресация ячеек в vba Excel
- •Вывод сообщений и ввод данных
- •Функция MsgBox
- •Упражнение 1. Вывод сообщений на экран
- •Объединение текстовых строк
- •Упражнение 2. Объединение текстовых строк
- •Ввод данных
- •Ввод данных в диалоге с клавиатуры. Функция InputBox
- •Метод InputBox
- •Упражнение 3. Ввод данных
- •Задания для самостоятельного решения
Вывод сообщений и ввод данных
В этом пункте рассматриваются следующие средства вывода сообщений на экран дисплея и ввода данных с клавиатуры при помощи диалоговых окон:
использование функции MsgBox;
использование функции InputBox;
применение метода InputBox;
именование аргументов,
использование объединения текстовых строк.
Функция MsgBox
Функция MsgBox служит для организации диалоговых окон, содержащих какие-либо сообщения. После своего появления на экране окно сообщения ждет, пока пользователь щелкнет на одной из кнопок, присутствующих в окне. В зависимости от того, на какой кнопке щелкнул пользователь, функция возвращает определенное целое число. Функция MsgBox имеет следующий формат:
MsgBox(Prompt[,Buttons][,Title][,Helpfile,Context])
Аргументы рассматриваемой функции означают следующее.
Prompt (Приглашение) – единственный обязательный аргумент этой функции. Значением этого аргумента служит строка текста, которая появляется как сообщение в диалоговом окне. Эта строка текста должна быть заключена в кавычки. Круглые скобки в синтаксисе MsgBox указывают на то, что в данном случае MsgBox является функцией, возвращающей какое-либо значение. Если скобки опущены, то для VBA это признак того, что данное выражение значение не возвращает и результатом выполнения инструкции MsgBox является только вывод диалогового окна.
Все остальные аргументы этой функции не обязательны.
Buttons (Кнопки) – числовое выражение, представляющее сумму значений, которые указывают число и тип отображаемых кнопок, тип используемого значка, основную кнопку и способ, каким используется окно сообщения. Значение аргумента можно задать в виде константы VBA или целым числом. Данный аргумент необязателен. Значение по умолчанию этого аргумента равняется 0 или константе vbOkOnly. Если не указан аргумент Кнопки, то VBA предполагает, что в диалоговом окне сообщения присутствует только кнопка ОК. Аргумент Кнопки позволяет управлять следующими параметрами окна сообщения:
количество кнопок в окне;
типы кнопок и их размещение в окне;
пиктограмма, отображаемая в окне;
какая кнопка назначается кнопкой по умолчанию;
режим окна сообщения.
Значения констант, определяющих число и тип кнопок в диалоговом окне, вид используемого информационного значка, и кнопку, на которую устанавливается фокус, приведены в таблице 1, 2 и 3 соответственно.
Таблица 1.
Значения аргумента buttons процедуры MsgBox, определяющие отображаемые кнопки в диалоговом окне
Константа |
Значение |
Отображаемые кнопки |
vbOKOnly |
0 |
|
VbOKCancel |
1 |
|
VbAbortRetrylgnore |
2 |
|
VbYesNoCancel |
3 |
|
VbYesNo |
4 |
|
VbRetryCancel |
5 |
|
Таблица 2.
Значения аргумента buttons процедуры MsgBox, определяющие отображаемые информационные значки в диалоговом окне
Константа |
Значение |
Значок сообщения |
VbCritical |
16 |
|
VbQuestion |
32 |
|
VbExclamation |
48 |
|
VbInformation |
64 |
|
Таблица 3.
Значения аргумента buttons процедуры MsgBox, определяющие основную кнопку в диалоговом окне
Константа |
Значение |
Номер основной кнопки |
VbDefaultButton1 |
0 |
1 |
VbDefaultButton2 |
256 |
2 |
VbDefaultButton3 |
512 |
3 |
VbDefaultButton4 |
768 |
4 |
При написании программ, в которых в зависимости от нажатой кнопки диалогового окна необходимо выполнить определённое действие, вместо возвращаемых числовых значений удобнее использовать константы VBA (табл. 4), которые делают код программы нагляднее и позволяют избежать ошибок при написании программ.
Таблица 4.
Значения констант, соответствующие нажатой кнопке в диалоговом окне
Константа |
Значение |
Нажатая кнопка |
vbOK |
1 |
OK |
vbCancel |
2 |
Отмена (Cancel) |
vbAbort |
3 |
Прервать (Abort) |
vbRetry |
4 |
Повторить (Retry) |
vbIgnore |
5 |
Пропустить (Ignore) |
vbYes |
6 |
Да (Yes) |
vbNo |
7 |
Нет (No) |
Чтобы не ошибиться при вводе значений аргумента кнопки, используйте список констант, который появляется после ввода знака "+". Знак "+" используется для объединения нескольких констант при задании сложного аргумента кнопки. Например, использование в процедуре выражения
vbYesNoCancel + vbQuestion + vbDefaultButton1
приведёт к появлению кнопок Да, Нет и Отмена (константа vbYesNoCancel), значка (константа vbQuestion) и по умолчанию к использованию первой кнопки (константа vbDefaultButton1).
Примечание
Чтобы просмотреть список всех внутренних констант VBA, необходимо в окне программного кода VBA щёлкнуть левой кнопкой мыши по имени любой константы и нажать клавишу <F1>. В появившемся окне можно найти все внутренние константы Excel.
Title (Заголовок) – содержит заголовок окна сообщения; аргумент необязательный. Без этого аргумента в заголовке будет выведено имя приложения MS Office, из которого запускается программа на VBA (Excel, Word и т.д.).
Helpfile (Справка) – строковое выражение, содержащее имя справочного файла Windows. Обычно это файл, созданный разработчиком приложения с помощью Windows Help Compiler.
Context (Раздел) – численное выражение, указывающее раздел в справочном файле, относящийся к отображаемому диалоговому окну.
Аргументы Helpfile и Context не обязательны. Они используются или опускаются вместе.
Аргументы функции необходимо перечислять в том порядке, в каком они размещены в её формате. Следовательно, в функции MsgBox они должны располагаться следующим образом:
Prompt [, Buttons] [, Title] [, Helpfile, Context])
Если какой-либо аргумент опущен, то необходимо включать в список аргументов отмечающие запятые для следующего в списке аргумента.
В приведённой ниже процедуре ФункцияMsgBox() функция MsgBox используется для:
определения, какая из кнопок: Да, Нет или Отмена – нажата (щёлкнута) в диалоговом окне этой функции;
вывода на экран сообщения, какая кнопка была нажата и наименование примера использования этой функции.
Внутренняя константа vbExclamation используется в процедуре для вывода в окне сообщения символа . Определение значения нажатой кнопки осуществляется при помощи инструкции If…Then…Else, синтаксис которой будет подробно рассмотрен в дальнейшем.
Sub ФункцияMsgBox()
Dim Структура As String
Dim Кнопка As Integer
'
' В переменной Структура задается структура диалогового окна
Структура = vbYesNoCancel + vbQuestion + vbDefaultButton1
' В переменную Кнопка вводится целое число, возвращаемое MsgBox
' при нажатии кнопки Да, Нет или Отмена в окне сообщения функции
' MsgBox
Кнопка = MsgBox("Выбрать Да, Нет или Отмена?", Структура, _
"Примеры функции MsgBox")
' На экране отображается соответствующее сообщение
' в зависимости от значения переменной Кнопка
MsgBox "Равно " & Кнопка, , "Возвращаемое значение"
If Кнопка = vbYes Then MsgBox "Выбрано Да", vbExclamation, "ПРИМЕР 1"
If Кнопка = vbNo Then MsgBox "Выбрано Нет", vbExclamation, "ПРИМЕР 2"
If Кнопка = vbCancel Then MsgBox "Выбрано Отмена", _
vbExclamation,"ПРИМЕР 3"
End Sub
