Архитектура Аудит Военная наука Иностранные языки Медицина Металлургия Метрология
Образование Политология Производство Психология Стандартизация Технологии


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



Синтаксис:

MsgBox (prompt [, buttons] [, title] )

 

Аргументы:

¾ prompt — Обязательный параметр. Строковое выражение, отображаемое как сообщение в диалоговом окне

¾ buttons — Необязательный параметр. Числовое выражение, представляющее сумму значений, которые указывают число и тип отображаемых кнопок, тип используемого значка, основную кнопку и модальность окна сообщения. Значение по умолчанию этого аргумента равняется 0. Значения констант, определяющих число и тип кнопок используемого значка, приведены в табл.11

¾ title — Необязательный параметр. Строковое выражение, отображаемое в строке, заголовка диалогового окна. Если этот аргумент опущен, в строку заголовка помещается имя приложения

Таблица 11 – Значение констант, определяющее тип и число кнопок, тип значка

Имя Константы Числовое значение Отображаются кнопки
VbOkOnly
VbOkCancel
VbAbortRetryIgnore
VbYesNoCancel
VbYesNo
VbRetryCancel
VbCritical
VbQuestion
VbExclamation
VbInformation
VbDefaultButtob1 Первая кнопка по умолчанию
VbDefaultButtob2 Вторая кнопка по умолчанию
VbDefaultButtob3 Третья кнопка по умолчанию
VbDefaultButtob4 Четвертая кнопка по умолчанию
VbSystemModal Режим модальности: все программы приостанавливаются до тех пор, пока пользователь не ответит на сообщение

 

Значения 0-5 параметра кнопки могут быть просуммированы со значениями 16-64 и 256-4096. В этом случае первые значения определяют состав кнопок диалогового окна, вторы – вид отображаемого в окне значка, а третьи – выбор кнопки по умолчанию.

Например, если в качестве значения параметра указать выражение 3+64+512, то в диалоговом окне будут отображены кнопки Да, Нет, Отмена, значок информирующего значения и по умолчанию будет выбрана кнопка Отмена.

Public Sub qq()

MsgBox " Нажмите любую кнопку", _

vbYesNoCancel + vbInformation + vbDefaultButton3, _

" Контрольный пример"

MsgBox " Нажмите любую кнопку", _

3 + 64 + 512, _

" Контрольный пример"

MsgBox " Нажмите любую кнопку", _

579, _

" Контрольный пример"

End Sub

 

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

Таблица 12

Константа Значение Нажатая кнопка
vbOK vbCancel vbAbort vbRetry vbIgnore vbYes vbNo ОК Отмена (Cancel) Прервать (Abort) Повторить (Retry) Пропустить (Ignore) Да (Yes) Нет (No)

Пример.

Public Sub TestMsgBox1()

x = 2

n = MsgBox(" Значение переменной Х=" & x & Chr(10) _

& " Продолжитьвычисления? ", vbYesNo, " Пример окна MsgBox" )

If n = 6 Then

MsgBox " Нажата кнопка Да"

ElseIf n = 7 Then

MsgBox " Нажата кнопка Нет"

End If

End Sub

Пользователь может нажать одну из кнопок – Да или Нет. Если будет нажата кнопка Да, переменной N будет присвоено значение 6, если будет нажата кнопка Нет – 7. Проанализировав в дальнейшем это значение, можно выбрать одну из ветвей выполнения программы.

Часто процедура MsgBox используется в «минимальном» варианте - только для вывода сообщения, с одной кнопкой – OK. В этом случае аргументы не берутся в скобки.

Например:

MsgBox “Значение переменной Х=” & X

Пример окна сообщений

 

ПРИМЕР:

1. Пример использования окон сообщений. В результате действия приведенной ниже процедуры Тестокон появится диалоговое окно пример окна ввода с полем ввода

 

Следуя приглашению в этом диалоговом окне, введем в поле ввода имя, например Андрей. Нажмем кнопку ОК.

На экране отобразится диалоговое окно пример окна сообщения с текстом приветствия

Если пользователь не введет имя в поле ввода диалогового окна Пример окна ввода или нажмет кнопку Отмена, то компьютер выразит свое неудовлетворение действиями пользователя отображением диалогового окна

 

Public Sub ТестОкон()

Dim ИмяКлиента As String

'

' Ввод имени пользователя

'

ИмяКлиента = InputBox(" Введите ваше имя", " Пример окна ввода" )

' Реакция программы на ввод имени пользователя

If ИмяКлиента < > " " Then

MsgBox " Привет, " & ИмяКлиента, vbInformation, _

" Пример окна сообщения"

Else

MsgBox " Невежа, ты забыл ввести свое имя ", _

vbExclamation, " Еще один пример окна сообщения"

End If

 

End Sub

 

Условные операторы

 

Для изменения порядка выполнения программного кода используются условные операторы

Условный оператор позволяет выбирать и выполнять действия в зависимости от истинности некоторого условия.

Имеется два варианта синтаксиса:

1) Строчная форма записи условного оператора:

IF < условное выражение> Then < операторы1 > [Else < операторы2> ]

Работа:

Если < условное выражение> принимает значение True, то выполняются < операторы1 > после Then и управление передается оператору, следующему за условным оператором. Если < условное выражение> =False, то выполняются < операторы2> после Else и управление передается оператору, следующему за условным оператором. Ветвь Else является необязательной

2) Блочная форма записи оператора IF (оператор расположен на нескольких строках ):

IF < условное выражение 1> Then

< операторы 1 >

[ElseIf < условное выражение n> Then

[< операторы - n > ]…

[Else

[< ИначеОператоры> ]

End If

Работа:

Если < условное выражение1> принимает значение True, то выполняются < операторы 1 > после Then, и управление передается оператору, следующему за условным оператором. Если < условное выражение1> =False, то при наличии конструкции [ElseIf < условное выражение n> проверяется значение < условное выражение n>. Если оно имеет значение True, то выполняются [< операторы - n > ]…и управление передается оператору, следующему за условным, в противном случае выполняются операторы [< ИначеОператоры> ] после Else. Ветвь Else является необязательной.

 

На блок-схеме условные операторы отображаются следующим образом:

Пример 1

Вычислить, является ли введенное число четным

 

Public Sub Четное_число()

Dim s As Integer

s = Worksheets(1).Range(" a1" )

's = Worksheets(" Лист1" ).Range(" a1" )

's = Worksheets(1).Cells(1, 1)

's = CInt(InputBox(" Введите любое целое число" ))

If s Mod 2 = 0 Then

Worksheets(1).Range(" a2" ) = " Введенное число " & s & " является четным"

'MsgBox " Введенное число " & s & " является четным"

Else

Worksheets(1).Range(" a2" ) = " Введенное число " & s & " является нечетным"

'MsgBox " Введенное число " & s & " является нечетным"

End If

End Sub

 

Пример 2

Вычислить

 

Public Sub aa()

Dim a As Double, f As Double

Dim i As Integer

a = Worksheets(2).Range(" b1" )

i = Worksheets(2).Range(" b2" )

If i Mod 2 = 0 And a > 0 Then

f = i * Sqr(a)

ElseIf i Mod 2 < > 0 And a < 0 Then

f = 0.5 * i * Sqr(Abs(a))

Else

f = Sqr(Abs(i * a))

End If

Worksheets(2).Range(" a3" ) = " Результат"

Worksheets(2).Range(" a4" ) = " f="

Worksheets(2).Range(" b4" ) = f

End Sub

 

Пример 3 Вложенные операторы If

Public Sub Возраст1()

intВозраст = InputBox(" Укажите возраст" )

If intВозраст > 7 Then

If intВозраст < = 17 Then

MsgBox (" Школьник" )

Else

MsgBox " Взрослый"

End If

Else

MsgBox " Дошкольник"

End If

End Sub

 

Пример 4 Эквивалентом вложенных операторов операторов If является оператор If …Then … ElseIf, в котором используется ключевое слово ElseIf

Public Sub Возраст2()

intВозраст = InputBox(" Укажите возраст" )

If intВозраст < 7 Then

MsgBox " Дошкольник"

ElseIf intВозраст < = 17 Then

MsgBox (" Школьник" )

ElseIf intВозраст < = 23 Then

MsgBox (" Студент" )

ElseIf intВозраст < = 55 Then

MsgBox (" Специалист" )

Else

MsgBox " Пенсионер"

End If

End Sub

Что получим, если ничего не введем?

11.3 Оператор безусловного перехода GoTo

 

Оператор безусловного перехода GoTo всегда изменяет порядок выполнения операторов в программе – при этом VBA не проверяет никаких условий, а просто переходит к выполнению программы с того места, которое будет указано в этом операторе.

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

GoTo Labl

Здесь Labl – метка, определяющая оператор (или группу операторов), с которого будет продолжено выполнение программы. Метка – это любой допустимый идентификатор VBA, за которым обязательно должно следовать двоеточие.

 

Public Sub Опер_GoTo()

Пароль = InputBox(" Введите Ваш пароль" )

If Пароль < > " ABC" Then GoTo Неверный_пароль

MsgBox (" Добро пожаловать, ABC! " )

'Другие операторы

Exit Sub

Неверный_пароль:

MsgBox " Вы не можете работать на этой машине"

End Sub

 

В этой процедуре оператор GoTo используется для перехода в особую ветвь программы, предназначенную для обработки ситуации, когда пользователь вводит неверный пароль. Если же пароль будет введен верно (“ABC”), то после вывода приветствия программа представит пользователю доступ к машине для продолжения работы.

Оператор GoTo не пользуется большой популярностью у программистов, поскольку его использование противоречит нормам структурного программирования и часто приводит к появлению ошибок в логике программы. Поэтому оператор GoTo следует применять только в том случае, когда без него никак нельзя обойтись. Обычно в VBA оператор GoTo используется только при обработке ошибок.

 

 

11.4 Условный оператор Select Case

 

Кроме рассмотренных ранее условных операторов If в языке VBA имеется еще один условный оператор Select Case, который используется в тех случаях, когда необходимо проверять одно и то же значение, сравнивая его с различными выражениями.


Поделиться:



Популярное:

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


lektsia.com 2007 - 2024 год. Все материалы представленные на сайте исключительно с целью ознакомления читателями и не преследуют коммерческих целей или нарушение авторских прав! (0.047 с.)
Главная | Случайная страница | Обратная связь