Циклы с условием
Главной особенностью данного типа циклов является условие, дающее в результате значение Истина (True) или Ложь (False). Циклы с условием делятся на циклы с предусловием – условие задается в операторе начала цикла и циклы с постусловием – условие задается в операторе в конце цикла.
Цикл с предусловием: Цикл с постусловием
Do While | Until <условие> Do
<Операторы> <Операторы>
[Exit Do] [Exit Do]
Loop Loop While | Until <условие>
Где:
Do, Loop – ключевые слова, определяющие начало и окончание цикла;
While и Until – ключевые слова, определяющие тип цикла;
Цикл Do While выполняется до тех пор, пока, пока условие имеет значение True;
Цикл Do Until выполняется до тех пор, пока, пока условие имеет значение False;
Exit Do – принудительный выход из цикла.
Примеры:
Sub Предусловие()
Sum = 2
Do While Sum < 10
Sum = Sum + J
J = J + 1
Loop
Sheets("Алгоритм").Range("A20").Value = Sum
End Sub
Sub Предусловие() ‘С окнами сообщений
Sum = 2
Do While Sum < 10
Sum = Sum + J
MsgBox ("J=") & J
J = J + 1
MsgBox ("Сумма") & Sum
Loop
Sheets("Алгоритм").Range("A20").Value = Sum
End Sub
Sub Предусловие1()
Dim Sum As Integer
Dim J As Integer
Sum = 2
Do Until Sum > 9
Sum = Sum + J
J = J + 1
Loop
Sheets("Алгоритм").Range("A19").Value = Sum
End Sub
Sub Постусловие1()
Sum = 2
Do
Sum = Sum + J
J = J + 1
Loop While Sum < 10
Sheets("Алгоритм").Range("A21").Value = Sum
End Sub
8. Основы создания интерфейса пользователя
Встроенные диалоговые окна
Встроенные диалоговые окна представляют собой операторы или функции языка. Диалоговые окна бывают двух видов: окна сообщений и окна ввода.
1. Окна сообщений- MsgBox
Окна сообщений отображают информацию и содержит заголовок, текстовую фразу и одну или более кнопок для выбора, также могут содержать пиктограмму. Формат оператора окна сообщений:
MsgBox<выражение>[, <Кнопки>] [, <Заголовок окна>]
В качестве выражения может быть текст, заключенный в кавычки, число, переменная, оператор или конкатенация перечисленных элементов (объединение с помощью символа амперсант).
Например, MsgBox «Пример окна сообщений»
MsgBox "Пример окна сообщений", 0 + 48, "Окно сообщений"
MsgBox "Содержимое ячейки составляет " & Range("B4"), , "Окно сообщений"
Формат функции:
Nn=MsgBox(<выражение>[, <Кнопки>] [, <Заголовок окна>])
Где:
Nn – переменная, в которую помещается результат функции в виде числа от 1 до 7 (см табл. 1);
Кнопки – определяют элементы, которые отображаются в окне: командные кнопки, пиктограмму, кнопка по умолчанию, задаются в виде числовых или встроенных констант, например, 0+48+0 или
vbOKOnly+vbExclamation+vbDefaultButton1 (см табл. 2 – 4)
Заголовок – текст, заданный в кавычках, отображающийся в заголовке окна.
Пример применения функции MsgBox:
Sub пример()
Nn = MsgBox("Выбери кнопку", 4 + 32 + 0, "выбор")
If Nn = 6 Then
MsgBox "Начало работы"
Else
MsgBox "Конец работы"
End If
End Sub
Табл.1 Встроенные константы для определения результата
Константа | Значение | Кнопка |
vbOK | ОК | |
VbCancel | Отмена | |
VbAbort | Прервать | |
VbRetry | Повторить | |
VbIgnore | Пропустить | |
VbYes | Да | |
vbNo | Нет |
Табл.2 Встроенные константы для определения параметра кнопки
Константа | Значение | Наборы кнопок в окне диалога |
vbOKOnly | Только кнопка ОК | |
vbOKCancel | Кнопки ОК и Отмена | |
VbAbortRetryIgnore | Прервать, Повторить, Пропустить | |
VbYesNoCancel | Да, Нет, Отмена | |
VbYesNo | Да, Нет | |
VbRetryCancel | Повторить, Отмена |
Табл.3 Пиктограммы диалогового окна
Константа | Значение | Пиктограмма |
VbCritical | ||
VbQuestion | ||
VbExclamation | ||
VbInformation |
Табл.4 Кнопка по умолчанию
Константа | Значение | Номер кнопки |
VbDefaultButton1 | Первая | |
VbDefaultButton2 | Вторая | |
VbDefaultButton3 | Третья |
2. Окно ввода - InputBox
Окно ввода используется, если программе надо передать какую-либо информацию от пользователя или поместить введенное значение в ячейку листа.
Формат функции:
Stroka=InputBox(<сообщение>[, <Заголовок>]),
Где Stroka – переменная, в которую помещается введенная информация,
Сообщение – текст сообщения в кавычках,
Заголовок – заголовок окна в кавычках
Range("A10") = InputBox("Введите данные в ячейку А10", "Пример окна ввода")
Функция InBox() может использоваться в качестве условного выражения в операторах If – Then. Через окно ввода можно заполнять столбцы и строки таблицы.
Пример1 (заполнение столбца А названиями товара):
Sub окно_ввода()
Dim I, NS As Integer
NS = 4
Sheets("товар2").Select
For I = 1 To 6
Cells(NS, 2) = InputBox("Введите название товара")
NS = NS + 1
Next I
End Sub
Sub окно_ввода1()
Dim I As Integer
For I = 1 To 6
Sheets("товар2").Cells(1, 2) = InputBox("Введите название товара")
Next I
End Sub
Пример2
Sub окно_ввода_c_условием() ‘Начало программы
Dim NS% ‘объявляются переменная NS как Целое число
Dim A$ ‘объявление текстовой переменной
NS = 4 ‘присваиваются начальные значения переменным
A = ""
Sheets("товар2").Select ‘Выбор листа Товар2
Do Until A = "Закончить" ‘Начало цикла с предусловием (выполняется пока условие имеет значение False);
A = InputBox("Введите название товара, для завершения наберите Закончить") ‘значение функции InputBox помещается в значение переменной A
If A = "Закончить" Then Exit Do ’Цикл прерывается
Cells(NS, NC) = A ‘в ячейку А4 помещается введенное в окно ввода слово
NS = NS + 1 ‘следующая строка
Loop ‘конец цикла
End Sub ‘конец программы