4. Встроенные диалоговые окона
4.1 Окно сообщения 
Встроенные диалоговые окна представляют собой операторы или функции языка. К ним относятся окно сообщения (MessageBox) и окно ввода (InputBox). Окна диалогов используют системные функции Windows. Поэтому надписи на кнопках, названия полей и другие элементы окон диалога могут отображаться на экране в английском или русском варианте, в зависимости от версии и настроек Windows.
Окно сообщения создается функцией MsgBox, которая имеет следующий синтаксис:
MsgBox(prompt[, buttons] [, title] [, helpfile, context])
Функция возвращает значение, соответствующее выбранной пользователем кнопке в окне сообщения. Ниже приведены значения и имена возвращаемых констант. Имена можно использовать вместо значений в любом месте программы.

Константа

Значение

Нажатая кнопка

vbOK

1

OK

vbCancel

2

Отмена (Cancel)

vbAbort

3

Прервать (Abort)

vbRetry

4

Повторить (Retry)

vbIgnore

5

Пропустить (Ignore)

vbYes

6

Да (Yes)

vbNo

7

Нет (No)

Параметр prompt обязательный. Это строка, которая выдается в окне сообщения. Её длина ограничена 1024 символами. Параметр buttons необязательный. Значение параметра - целое число, равное сумме значений, определяющих набор кнопок, коды значков, кнопки по умолчанию в окне сообщения, а также модальность окна. Возможные значения описаны ниже. По умолчанию значение параметра равно 0. Параметр title задает строку, которая является заголовком окна сообщения. Если параметр отсутствует, то в качестве заголовка используется имя приложения. Окно сообщений может иметь еще 2 необязательных параметра (helpfile и context), касающихся справочной информации, относящейся к данному сообщению. О них можно прочитать в справочной системе. Константы для определении параметра buttons

Константа

Значе-ние

Описание

Наборы кнопок окна сообщения

VbOKOnly

0

Окно содержит только кнопку OK.

VbOKCancel

1

Окно содержит кнопки OK и Cancel (Отмена).

vbAbortRetryIgnore

2

Окно содержит кнопки Abort (Прервать), Retry (Повторить) и Ignore (Пропустить).

vbYesNoCancel

3

Окно содержит кнопки Yes (Да), No (Нет) и Cancel (Отмена).

vbYesNo

4

Окно содержит кнопки Yes (Да) и No (Нет).

vbRetryCancel

5

Окно содержит кнопки Retry (Повторить) и Cancel (Отмена).

Пиктограммы окна сообщения

vbCritical

16

Добавляет пиктограмму “Критическое сообщение”. Часто после такого сообщения программа прекращает работу.

vbQuestion

32

Добавляет пиктограмму “Запрос”. Обычно используется, когда для продолжения работы программы требуется дополнительная информация.

vbExclamation

48

Добавляет пиктограмму “Предупреждение”.

vbInformation

64

Добавляет пиктограмму “Информация”. Чаще всего используется для сообщения о завершении выполнения некоторой задачи.

Кнопка по умолчанию

vbDefaultButton1

0

Первая.

vbDefaultButton2

256

Вторая.

vbDefaultButton3

512

Третья.

vbDefaultButton4

768

Четвертая.

Модальность окна

vbApplicationModal

0

Модальность уровня приложения. Пока вы не нажмете одну из кнопок окна, вы не сможете вернуться в приложение, породившее это окно. При этом можно переключиться на другое приложение.

vbSystemModal

4096

Модальность системного уровня. Пока не будет закрыто это окно, никакие приложения не доступны.

Например, в результате выполнения оператора Ans = MsgBox("Закончить?", vbYesNo + vbQuestion +vbDefaultButton1, "Пример окна MsgBox") появится окно сообщения как на рис.4.1. Чтобы определить, какая кнопка была нажата, значение переменной Ans анализируется с помощью оператора If: Например: If Ans = vbYes then UserForm1.Hide

Рис. 4.1. Пример окна сообщения 4.2 Окно ввода Окно ввода служит для ввода данных. Оно создается функцией InputBox(), имеющей следующий синтаксис: InputBox(prompt[, title] [, default] [, xpos] [, ypos] ) Окно содержит сообщение, указывающее какие данные должен ввести пользователь, поле текста для ввода данных и две кнопки ОК и Отмена, которые используются для подтверждения или отмены ввода данных. Закончив ввод данных, пользователь должен щелкнуть на одной из кнопок. Если щелчок был сделан на кнопке ОК, то значением функции является текст, находящийся в поле ввода. Если щелчок был сделан на кнопке Отмена, то значением функции является пустая строка, независимо от того, что напечатал пользователь. Параметры функции имеют следующий смысл: prompt – строка сообщения, которая будет напечатана в окне; title – строка, которая является заголовком окна. Если параметр не указан, то в качестве заголовка используется имя приложения; default – строка, помещаемая в текстовое поле. Если параметр не указан, то поле текста будет пустым; xpos – расстояние в твипах от левой границы экрана до левой границы окна. Если параметр не указан, окно центрируется по горизонтали; ypos – расстояние в твипах от верхней границы экрана до верхней границы окна. Окно ввода может иметь еще два необязательных параметра (helpfile и context). О них можно прочитать в справочной системе. Для преобразования введенной строки в другой тип данных используйте функции преобразования типов: CCur(), CDate(), CInt(), CLng(), CSng(), CVar() и другие. В качестве примера на рисунке 4.2 приведено окно, созданное с помощью оператора: A = InputBox("Введите значение:", "Пример окна InputBox") Рис.4.2. Пример окна ввода Упражнение 2. Создание простого макроса с использованием окон ввода и вывода 1. Поместите на рабочем листе поместите кнопку панели Формы (рис. 4.3). Появится диалоговое окно Назначить макрос объекту. 2. В диалоговом окне Назначить макрос объекту шелкните на кнопке Создать. Запустится редактор Visual Basic и откроется окно редактирования кода макроса. 3. В процедуру обработки события Кнопка_Щелкнуть поместите следующий код: Sub Кнопка1_Щелкнуть() Dim Строка As String Строка = InputBox("Введите значение:", "Пример окна InputBox") MsgBox Строка, vbExclamation, "Пример окна MsgBox" End Sub 4. Щелкните на кнопке, размещенной на рабочем листе. Макрос начнет выполняться. Появится окно ввода (рис. 4.3). 5. Наберите в поле ввода окна какой-либо текст и щелкните на кнопке ОК. Появится окно вывода, в котором будет выведен ранее введенный текст . 6. Щелкните на ОК. Макрос завершит работу. Рис. 4.3. Вывод окна Ввода из процедуры макроса Задание для самостоятельной работы Создайте подпрограмму Sub, управляемую кнопкой формы, размещенной на рабочем листе. Процедура выводит Окно ввода. Значение, введенное в поле Окна ввода выводится в Окне вывода. Следующая страничка   Вернуться на предыдущую    В содержание темы

Hosted by uCoz