Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Глава19.docx
Скачиваний:
3
Добавлен:
25.08.2019
Размер:
2.42 Mб
Скачать

Глава 19. Инструментальные средства пользователя в среде microsoft office

Оператор цикла For-Next. Данный оператор относится к категории вычисляемых циклов, когда известно заранее число повторений цикла, заданы начальное, конечное значения и шаг (приращение) изменения начального значения, т.е.:

I

For <переменная_цикла> = <начало> То <конец> [ Step <шаг> ]

<блок операторов 1 > ' тело цикла

[ Exit For ] ' прекращение цикла

<блок операторов2 > ' повторяется определенное число раз

Next <переменная_цикла>

Для каждого значения переменной этого цикла выполняется блок операторов, распо­ложенных до ключевого слова Next. Затем происходит изменение переменной цикла (увеличение значения на шаг), проверяется полученное значение (не более указанного конечного значения) и повторяется выполнение блока операторов.

Если переменная цикла превысила значение конец, управление передается оператору, следующему за фразой Next.

В теле цикла может присутствовать оператор Exit For. При выполнении этого опера­тора прекращается цикл и управление также передается оператору, следующему за фразой Next. Цикл For-Next может быть вложенным.

П ример 19.25. Организация циклов с использованием счетчика повторений

Текст программы

Комментарий

Sub stickRandom()

Объявление имени процедуры

Dim numrows As Integer; numcols As Integer

Объявление переменных

Dim therow As Integer; thecol As Integer

numrows = Selection.Rows.Count

Определение числа строк

в выделенном блоке ячеек

numcols = Selection.Columns.Count

Определение числа столбцов

в выделенном блоке ячеек

Debug.Print numrows; numcols

Печать числа строк и столбцов

в выделенном блоке ячеек

Randomize

Генератор случайных чисел

Debug.Print Rnd

Печать случайного числа

For therow = 1 To numrows

Внешний цикл по числу строк

в блоке ячеек

For thecol = 1 To numcols

Внутренний цикл по числу

столбцов в блоке ячеек

Selection.Cells(therow; thecol).Value = Rnd

Присваивание текущей ячейке

случайного числа

Selection — выбор ячейки

Cells — метод доступа к ячейке

с определенными координатами

Value — свойство "значение"

Next thecol

Конец внутренного цикла

Next therow

Конец внешнего цикла

End Sub

Конец процедуры

Цикл Do-Loop. Логически управляемый цикл, оператор Do — начало, оператор Loop — конец цикла; имеет 4 модификации:

19.2. СОЗДАНИЕ ПРИЛОЖЕНИИ НА ЯЗЫКЕ VISUAL BASIC FOR APPLICATIONS

707

1) условие True в начале цикла

Do While <условие>

<блок операторов>

Exit Do

<блок операторов>

Loop

Цикл выполняется до тех пор, пока истинно <условие>. Минимальное число повто­рений тела цикла — 0. Оператор Exit Do предназначен для прекращения цикла и передачи управления оператору Loop — конец цикла.

2) условие True в конце цикла

Do

<блок операторов>

Exit Do

<блок операторов>

Loop While <условие>

Цикл выполняется хотя бы один раз, в конце выполняется проверка <условия>.

3) условие False в начале цикла

Do Until <условие>

<блок операторов>

Exit Do

<блок операторов>

Loop

Until указывает, что цикл выполняется до тех пор, пока <условие> не станет истин­ным. Минимальное число повторений тела цикла — 0.

4) условие False в конце цикла

Do

<блок операторов>

Exit Do

<блок операторов>

Loop Until <условие>

Условие проверяется в конце, цикл прекращается, когда условие станет истинным. Минимальное число повторений тела цикла — 1.

Пример 19.26. Выполнение логически прерываемых циклов

Текст программы

Комментарий

Option Explicit

Обязательность объявления всех переменных

перед их использованием

Sub Do_Rnd()

Объявление имени процедуры без параметров

Dim a As Single

Объявление переменных

Dim i As Integer

Randomize

Вызов генератора случайных чисел

Do While True

Начало цикла Do. Задание условия выполнения

цикла — цикл бесконечный

a = Rnd

Присвоение переменной случайного числа