ТОП 10:

Окно панели элементов управления (Toolbox)



Инструменты и средства управления на панели элементов управления служат для того, чтобы создавать новые элементы пользовательского интерфейса. Любое окно этого интерфейса содержит различные объекты: командные кнопки, текстовые окна, ярлыки (этикетки), переключатели и т.д. Все они называются Controls (элементами управления). Эти элементы добавляются в формы путем перетаскивания их с панели элементов управления в поле формы, указанных на рисунке 10.

 

Рисунок 10 – Окно инструментов

 

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

Имеется возможность расширения средств управления, представленных на панели управления. Для этого нужно выбрать команду Tools→Additional Controls (Сервис→Дополнительные элементы) и в появившемся диалоговом окне выбрать нужное средство управления.

Процесс выравнивания элементов управления в форме можно облегчить, используя команды меню Format (Формат).

 

34. Встроенные диалоговые окна в VBA. Окно сообщений (вывода) MsgBox: назначение, синтаксис функции и оператора, константы процедуры. Окно ввода InputBox: назначение, синтаксис функции. Примеры.

 

В проектах VBA часто встречаются две разновидности встроенных диалоговых окон: окна сообщений и окна ввода.

Окна сообщений (MsgBox)

 

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

Окно сообщения является модальным по отношению к приложению. Это означает, что приложение не сможет продолжить работу, пока окно сообщения не будет закрыто. Иногда окно сообщения отображает пиктограмму или содержит несколько кнопок, с помощью которых пользователь может сделать выбор. В этом случае окно сообщения позволяет получить информацию о принимаемом пользователем решении.

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

Синтаксис оператора MsgBox:

MsgBox <Строковое выражение> [ , целая константа] [ , строковое выражение]

 

Синтаксис функции MsgBox ():

Переменная = MsgBox (Строковое выражение [ , целая константа]

[ , строковое выражение]

где

переменная – переменная целого типа, которой присваивается значение, возвращаемое функцией MsgBox ();

MsgBox – имя оператора/функции;

строковое выражение - строковое выражение, которое будет отображаться в поле сообщения окна сообщения (заключается в кавычки);

целая константа – или группа констант, определяющая, какие кнопки (комбинации кнопок) и пиктограммы будут отображаться в окне сообщения;

строковое выражение – строковое выражение, которое будет отображаться в строке заголовка окна сообщения (заключается в кавычки);

В окне сообщения можно выбрать одну из четырех пиктограмм. Эти пиктограммы и их свойства представлены в таблице 27.

 

Таблица 27 - Константы процедуры MsgBox, определяющие отображаемые информационные значки в диалоговом окне

Пиктограмма Имя пиктограммы Константа Назначение
vbCritical Critical message (Критическое сообщение) Указывает, что произошла серьезная ошибка. Часто после такого сообщения программа прекращает работу
vbExclamation Warning message (Предупреждение) Сообщает о возникновении ошибки, которая требует исправления или может привести к нежелательным последствиям
vbQuestion Query (Запрос) Указывает, что для продолжения работы программе требуется дополнительная информация от пользователя
vbInformation Information message (Информационное сообщение) Информирует пользователя о состоянии программы. Чаще всего используется для сообщения о завершении выполнения некоторой задачи.

 

В функции MsgBox () можно использовать шесть наборов кнопок, задаваемых константами в соответствии с таблицей 28. Значение константы в соответствии с выбранным набором кнопок принимает аргумент Options.

 

Таблица 28 - Константы процедуры MsgBox, определяющие отображаемые кнопки в диалоговом окне

Набор кнопок Значение Константа
<OK> vbOKOnly
<ОК>, <Отмена> vbOKCancel
<Стоп>, <Повтор>, <Пропустить> vbAbortRetryIgnore
<Да>, <Нет>, <Отмена> vbYesNoCancel
<Да>, <Нет> vbYesNo
<Повтор>, <Отмена> vbRetryCancel

 

Если требуется поместить в окно пиктограмму и набор кнопок, то аргумент Options набирается, как две константы, соединенные знаком «+». Первая константа выбирается из таблицы 27, вторая – из таблицы 28. Если используется несколько кнопок, то можно указать, какая из них будет кнопкой команды по умолчанию, т.е. кнопкой, которая сработает при нажатии клавиши [Enter] (кнопка, получающая фокус при отображении окна сообщения). В этом случае в аргумент Options добавляется третья константа в соответствии с таблицей 29.

Каждая из кнопок диалогового окна после щелчка на ней мышью во время выполнения программы возвращает соответствующее ей значение переменной (таблица 30).

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

 

Таблица 29 - Константы процедуры MsgBox, определяющие основную кнопку в диалоговом окне

Кнопка команды по умолчанию Значение Константа
Первая vbDefaultButton1
Вторая vbDefaultButton2
Третья vbDefaultButton3
Четвертая vbDefaultButton4

 

Таблица 30 - Значения, возвращаемые функцией MsgBox

Кнопка Значение Константа
<OK> vbOK
<Отмена> vbCancel
<Стоп> vbAbort
<Повтор> vbRetry
<Пропустить> vbIgnore
<Да> vbYes
<Нет> vbNo

 

Пример 1.

Постановка задачи. Создать окно информационного сообщения с заголовком «Окно» и текстом «Нажмите кнопку» с пиктограммой информационного сообщения и с двумя кнопками <Да> и <Нет>. При нажатии кнопки <Да> надпись на командной кнопке <Command1> формы требуется заменить на значение Да, а при нажатой кнопки <Нет> на значение Нет.

Технология выполнения задания:

1 Запустить VBA.

2 В проект добавить форму. На панели инструментов выбрать элемент CommandButton и поместить на поле формы. Появится командная кнопка <CommandButton1>.

3 Дважды щелкнуть на командной кнопке <CommandButton1> и в окне программного кода между строками Private Sub и End Sub набрать следующие утверждения:

Private Sub CommandButton1_Click()

Dim A As Long

A = MsgBox ("Нажмите кнопку", vbInformation + vbYesNo, "Окно")

If A = 6 Then

CommandButton1.Caption = "Да"

ElseIf A = 7 Then

CommandButton1.Caption = "Нет"

End If

End Sub

Примечание.

В первой строке функция MsgBox выводит на экран диалоговое окно с текстом «Нажмите кнопку», двумя кнопками <Yes> и <No> и заголовком окна «Окно».

Вторая строка проверяет возвращаемое значение переменной А на его равенство числу 6.

Если условие выполняется, то это означает, что нажата кнопка <Yes>, и тогда в третьей строке свойству Caption (Надпись) командной кнопки <CommandButton1> присваивается значение Да.

Если возвращаемое значение не равно 6, то четвертая строка проверяет его на значение, равное 7, поскольку при нажатии кнопки <No>, возвращаемое значение А равно 7.

Если А действительно равно 7, то в пятой строке надписи на командной кнопке присваивается значение Нет.

Шестая строка закрывает условный оператор.

4 Запустить программу и проверить ее работоспособность, как показано на рисунке 35.

 


Рисунок 35 – Проверка работоспособности программы

Окна ввода

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

Она выводит на экран диалоговое окно, содержащее сообщение, после ввода и две кнопки ОК и Cancel.

Устанавливает режим ожидания ввода текста пользователем и нажатия кнопки <ОК> или <Отмена>,

Если пользователь выбрал <ОК>, окно ввода возвращает значение типа String, находящийся в поле ввода.

Если же пользователь выбрал <Отмена>, окно ввода возвращает пустую строку (Empty) независимо от того, что напечатал пользователь.

Синтаксис функции:

Строковая переменная = InputBox (Строковое выражение [, константа заголовка] [, константа поля ввода] [, xPos] [, yPos])

где

Строковая переменная – переменная, в которой хранится значение,

возвращаемое функцией InputBox ();

InputBox – имя функции;

строковое выражение – выражение, которое будет отображаться в области

сообщения окна ввода;

константа заголовка – строковая константа или переменная, значение

которой будет отображаться в заголовке окна ввода;

константа поля ввода – строковая константа или переменная, значение

которой будет отображаться в поле ввода;

xPos, yPos – положение окна ввода соответственно по

горизонтали и вертикали (в твипах).

Пример 2.

Постановка задачи. Иллюстрация использования окна ввода.

Технология выполнения задания:

1 Запустить VBA.

2 В проект добавить форму. На панели инструментов выбрать элемент CommandButton и поместить на поле формы. Появится командная кнопка <CommandButton2>.

3 Щелкнуть мышью дважды на командной кнопке <CommandButton2> и в окне программного кода между строками Private Sub и End Sub набрать следующие утверждения:

Private Sub CommandButton2_Click()

A = InputBox ("Введите информацию", "Окно ввода")

If A <> " " Then

CommandButton2.Caption = A

Else

CommandButton2.Caption = "Строка ввода пуста"

End If

End Sub

Примечание.

Первая строка отображает окно ввода и присваивает возвращаемое значение переменной А.

Вторая строка проверяет содержимое поля ввода.

Если в поле набраны какие-либо данные, т.е. строка ввода непустая, то утверждение третьей строки после нажатия кнопки <OK> меняет название кнопки <CommandButton2> на содержимое введенных данных.

В противном случае (строка 4) в пятой строке <CommandButton2> присваивается значение Строка ввода пуста.

4 Запустить программу и проверить ее работоспособность, как показано на рисунке 36.

 

 







Последнее изменение этой страницы: 2017-01-19; Нарушение авторского права страницы

infopedia.su Все материалы представленные на сайте исключительно с целью ознакомления читателями и не преследуют коммерческих целей или нарушение авторских прав. Обратная связь - 18.232.51.69 (0.011 с.)