Архитектура Аудит Военная наука Иностранные языки Медицина Металлургия Метрология Образование Политология Производство Психология Стандартизация Технологии |
Устанавливает режим ожидания нажатия кнопки пользователем, а затем возвращает значение типа integer, указывающее, какая кнопка была нажата.
Синтаксис: MsgBox (prompt [, buttons] [, title] )
Аргументы: ¾ prompt — Обязательный параметр. Строковое выражение, отображаемое как сообщение в диалоговом окне ¾ buttons — Необязательный параметр. Числовое выражение, представляющее сумму значений, которые указывают число и тип отображаемых кнопок, тип используемого значка, основную кнопку и модальность окна сообщения. Значение по умолчанию этого аргумента равняется 0. Значения констант, определяющих число и тип кнопок используемого значка, приведены в табл.11 ¾ title — Необязательный параметр. Строковое выражение, отображаемое в строке, заголовка диалогового окна. Если этот аргумент опущен, в строку заголовка помещается имя приложения Таблица 11 – Значение констант, определяющее тип и число кнопок, тип значка
Значения 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
Пример. 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; Нарушение авторского права страницы