Историки об Елизавете Петровне: Елизавета попала между двумя встречными культурными течениями, воспитывалась среди новых европейских веяний и преданий...
Автоматическое растормаживание колес: Тормозные устройства колес предназначены для уменьшения длины пробега и улучшения маневрирования ВС при...
Топ:
Процедура выполнения команд. Рабочий цикл процессора: Функционирование процессора в основном состоит из повторяющихся рабочих циклов, каждый из которых соответствует...
Проблема типологии научных революций: Глобальные научные революции и типы научной рациональности...
Методика измерений сопротивления растеканию тока анодного заземления: Анодный заземлитель (анод) – проводник, погруженный в электролитическую среду (грунт, раствор электролита) и подключенный к положительному...
Интересное:
Берегоукрепление оползневых склонов: На прибрежных склонах основной причиной развития оползневых процессов является подмыв водами рек естественных склонов...
Финансовый рынок и его значение в управлении денежными потоками на современном этапе: любому предприятию для расширения производства и увеличения прибыли нужны...
Национальное богатство страны и его составляющие: для оценки элементов национального богатства используются...
Дисциплины:
2017-09-27 | 303 |
5.00
из
|
Заказать работу |
Синтаксис:
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, который используется в тех случаях, когда необходимо проверять одно и то же значение, сравнивая его с различными выражениями.
Наброски и зарисовки растений, плодов, цветов: Освоить конструктивное построение структуры дерева через зарисовки отдельных деревьев, группы деревьев...
Таксономические единицы (категории) растений: Каждая система классификации состоит из определённых соподчиненных друг другу...
Историки об Елизавете Петровне: Елизавета попала между двумя встречными культурными течениями, воспитывалась среди новых европейских веяний и преданий...
Поперечные профили набережных и береговой полосы: На городских территориях берегоукрепление проектируют с учетом технических и экономических требований, но особое значение придают эстетическим...
© cyberpedia.su 2017-2024 - Не является автором материалов. Исключительное право сохранено за автором текста.
Если вы не хотите, чтобы данный материал был у нас на сайте, перейдите по ссылке: Нарушение авторских прав. Мы поможем в написании вашей работы!