Циклы с условием

Главной особенностью данного типа циклов является условие, дающее в результате значение Истина (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 ‘конец программы