Методичка для Д в 1 семестре
.pdfСинтаксис функции MsgBox (некоторые необязательные параметры здесь не указаны):
MsgBox (<сообщение> [, <кнопки>] [,<заголовoк >])
Эта функция устанавливает режим ожидания нажатия кнопки пользова- телем, а затем возвращает значение типа Integer, указывающее, какая кнопка была нажата.
Аргументы:
∙<сообщение> — строковое выражение, отображаемое как сообщение в
диалоговом окне
∙<кнопки> — числовое выражение, представляющее сумму значений, ко- торые указывают число и тип отображаемых кнопок, тип используемого значка, основную кнопку и модальность окна сообщения. Значение по умолчанию этого аргумента равняется 0. Значения констант, определяю- щих число и тип кнопок, приведены в таблице 8:
|
|
Таблица 8 |
|
|
|
|
|
Константа |
Значение |
Отображаются кноп- |
|
|
|
ки |
|
|
|
|
|
vbOKOnly |
0 |
|
|
|
|
|
|
VbOKCancel |
1 |
|
|
|
|
|
|
VbAbortRetrylgnore |
2 |
|
|
|
|
|
|
VbYesNoCancel |
3 |
|
|
|
|
|
|
VbYesNo |
4 |
|
|
|
|
|
|
VbRetryCancel |
5 |
|
|
|
|
|
|
11
Значения аргумента <кнопки>, определяющие отображаемые ин- формационные значки в диалоговом окне:
|
|
Таблица 9 |
|
|
|
Константа |
Значение |
Значок |
|
|
сообщения |
|
|
|
VbCritical |
16 |
|
|
|
|
VbQuestion |
32 |
|
|
|
|
VbExclamation |
48 |
|
|
|
|
VbInformation |
64 |
|
|
|
|
∙<заголовoк > — строковое выражение, отображаемое в строке , заголовка диалогового окна. Если этот аргумент опущен, в строку заголовка поме- щается имя приложения.
Пример1 – Если используется только один обязательный аргумент <со- общение>, функция MsgBox действует как оператор. В этом случае скобки не обязательны:
MsgBox "Это проверка работы MsgBox"
Рис. 3
12
Пример2 – Сообщение может быть также выражением:
текст1 = "На " : текст2 = " осталось желаний - "
дата = Format(Date, "Short date") : число = 5
MsgBox текст1 & дата & текст2 & число
Рис. 4 |
Пример3 – Кроме сообщения в диалоговом окне MsgBox может присут- |
ствовать одна из нескольких пиктограмм: |
f = MsgBox("Это проверка работы MsgBox", vbInformation) |
Рис. 5 |
Пример4 – В стандартном в диалоговом окне MsgBox присутствует одна |
кнопка ОК, но можно выводить и другие кнопки: |
Dim Имя As String, f As Integer
Имя = InputBox("Ваше имя", "Привет!", "Анна")
f = MsgBox(Имя, vbQuestion + vbYesNo, "Ваше имя")
Рис. 6
13
Смысл отбражения кнопок в окне сообщения заключается в предоставле- нии пользователю возможности выбора действия. В данном случае пользовате- лю ничего не надо печатать – следует только щелкнуть на одной из кнопок.
В таблице 10 приведены возвращаемые значения нажатых кнопок:
|
|
Таблица 10 |
|
|
|
|
|
Константа |
Значение |
Нажатая кнопка |
|
vbOK |
1 |
OK |
|
vbCancel |
2 |
Отмена (Cancel) |
|
vbAbort |
3 |
Прервать (Abort) |
|
vbRetry |
4 |
Повторить |
|
|
|
(Retry) |
|
vbIgnore |
5 |
Пропустить |
|
|
|
(Ignore) |
|
vbYes |
6 |
Да (Yes) |
|
vbNo |
7 |
Нет (No) |
|
1.4.3. Операторы выбора
В VBA для принятия решения используется два оператора:
1.If×××Then×××Else
2.Select Case
Синтаксис If×××Then×××Else:
If <Условие> Then [<Команды>] [Else <Команды else>]
Если <Условие> принимает значение True, то выполняются <Команды>.
Если <Условие> принимает значение False, то выполняется <Команды else>.
Пример1:
If Сумма > 1000 Then Скидка = 0/05 Else Скидка = 0
Допускается также использование формы синтаксиса в виде блока:
14
If <Условие> Then [<Команды>]
[ElseIf <Условие-n> Then
[<Команды elseif > ] [Else
<Команды else>] ]
End If
Эта форма синтаксиса позволяет проверять дополнительные условия <Условие-n>.
Пример2:
If Сумма > 1000 Then
Скидка = 0.05
ElseIf Сумма > 500 Then
Скидка = 0.03
Else
Скидка = 0
End If
Синтаксис Select Case:
Select Case <Выражение>
[Case СписокВыражений-1 [Команды - 1]]
…
[Case СписокВыражений-n [Команды - n]]
[Case Else
[Команды - Else]]
End Select
15
Этот оператор выполняет одну из нескольких групп команд, в зависимо- сти от значения выражения <Выражение>.
Пример3:
Число = InputBox(“Введите целое число”)
Select Case Число Case 1
MsgBox(“Число равно 1”)
Case 2, 3
MsgBox(“Число равно 2 или 3”)
Case 4 To 6
MsgBox(“Число от 4 до 6”)
Case Is >= 7
MsgBox(“Число не менее 7”)
End Select
1.4.4. Операторы повтора
Для описания циклических алгоритмов можно использовать два операто-
ра VBA:
·For¼Next
·Do¼Loop
Если уже перед выполнением цикла известно, сколько раз он должен вы-
полняться, можно использовать оператор For¼Next. Синтаксис этого оператора:
For <Счетчик> = <Начало> То <Конец> [Step <Шаг>]
[<Команды>]
¼
[Exit For]
¼
[<Команды >] Next [<Счетчик>]
16
For¼Next повторяет выполнение группы команд, пока <Счетчик> изме- няется от начального значения до конечного с указанным шагом. Если <Шаг> не указан, то он полагается равным 1.
Альтернативный способ выхода из цикла предоставляет инструкция Exit
For.
Пример1 – Вычислить сумму натуральных чисел от 1 до 10:
Dim I As Integer, Sum As Integer
Sum = 0
For I = 1 To 10
Sum = Sum + I
Next I
MsgBox Sum
Оператор Do¼Loop повторяет выполнение набора команд, пока условие имеет значение True (случай While) или пока оно не примет значение True (случай Until). Существует два варианта синтаксиса этого оператора:
Таблица 11
1 вариант |
2 вариант |
Do [{While | Until} <Условие>] |
Do |
[<Команды>] |
[<Команды>] |
[Exit Do] |
[Exit Do] |
[<Команды>] |
[<Команды>] |
Loop |
Loop [{While | Until} <Условие>] |
Второй вариант отличается от первого тем, что набор команд хотя бы один раз выполнится, так как условие проверяется в конце цикла.
Пример1 – Вычислить сумму натуральных чисел от 1 до 10.
Вариант1 – если не предусмотреть изменение параметра цикла, произой- дет зацикливание (бесконечный цикл можно прервать сочетанием клавиш
Ctrl + Break):
17
I = 1
Sum = 0
Do While I <= 10
Sum = Sum + I
Loop
Вариан 2 - цикл не выполнится ни разу, если при первой проверке
<Условие> = False:
I = 1
Sum = 0
Do While I > 10
Sum = Sum + I
I =I + 1
Loop
Вариан 3 - цикл выполнится 10 раз:
I = 1
Sum = 0
Do While I <= 10
Sum = Sum + I
I =I + 1
Loop
1.5. Правила оформления блок-схем
При создании блок-схем необходимо пользоваться правилами, утвер- жденными ГОСТ 19.701-90 (международный стандарт ИСО 5807-85). Ниже приводятся выдержки из этого нормативного документа.
Схемы алгоритмов, программ, данных и систем состоят из имеющих за- данное значение символов, краткого пояснительного текста и соединяющих линий.
18
Описание символов:
1.Символы данных
1.1.Данные. Символ отображает данные, носитель данных не опреде- лен. Эта фигура часто используется и для записи различных ал- горитмов, потому как для алгоритма источник информации не существенен и определяется он только при реализации програм- мы.
1.2.Документ Символ отображает данные, представленные на носи- теле в удобочитаемой форме (машинограмма, документ для оп- тического или магнитного считывания, микрофильм, рулон лен- ты с итоговыми данными, бланки ввода данных).
1.3.Ручной ввод Символ отображает данные, вводимые вручную во время обработки с устройств любого типа (клавиатура, переклю- чатели, кнопки, световое перо, полоски со штриховым кодом).
2.Символы процесса:
2.1.Процесс - Символ отображает функцию обработки данных любо- го вида (выполнение определенной операции или группы опера- ций, приводящее к изменению значения, формы или размещения информации или к определению, по которому из нескольких на- правлений потока следует двигаться).
19
2.2.Предопределенный процесс - Символ отображает предопределен- ный процесс, состоящий из одной или нескольких операций или шагов программы, которые определены в другом месте (в под- программе, модуле). То есть этот элемент используется для обо- значения подпрограмм.
2.3.Подготовка - Символ отображает модификацию команды или
группы команд с целью воздействия на некоторую последующую функцию (установка переключателя, модификация индексного регистра или инициализация программы). Часто используется для задания параметров счетного оператора цикла \ (смотри пример блок-схемы алгоритма ниже).
2.4.Решение - Символ отображает решение или функцию переключа- тельного типа, имеющую один вход и ряд альтернативных выхо- дов, один и только один из которых может быть активизирован после вычисления условий, определенных внутри этого символа.
Соответствующие результаты вычисления могут быть записаны по соседству с линиями, отображающими эти пути. Используется для обозначения оператора IF или границ циклов с пост- и пре- дусловиями.
3.Специальные символы
3.1.Соединитель - Символ отображает выход в часть схемы и вход из
другой части этой схемы и используется для обрыва линии и
20