Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Лабораторная работа Макросы.doc
Скачиваний:
2
Добавлен:
01.07.2025
Размер:
897 Кб
Скачать
☆

Цикл Do-Loop

Конструкция, позволяющая организовать как цикл с предусловием, так и цикл с постусловием. Имеет 4 модификации:

1) условие True в начале цикла (цикл с предусловием true)

Do While <условие>

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

Exit Do

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

Loop

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

2) условие True в конце цикла (цикл с постусловием true)

Do

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

Exit Do

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

Loop While <условие>

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

3) условие False в начале цикла (цикл с предусловием false)

Do Until <условие>

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

Exit Do

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

Loop

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

4) условие False в конце цикла (цикл с постусловием false)

Do

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

Exit Do

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

Loop Until <условие>

Условие проверяется в конце, цикл прекращается, когда условие станет истинным. Цикл обязательно повториться хотя бы один раз.

Примеры написания циклов:

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

Комментарий

Sub Do_Proc()

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

Dim A As Single;

Dim I As Integer

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

Randomize

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

Do While True

- начало цикла Do. Условия выполнение цикла всегда истинно, т.е. цикл бесконечный

A = Rnd

- присвоение переменной случайных чисел

Debug.Print a

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

If A>0.99 Then

Exit Do

- условие - при его выполнении происходит выход из цикла

Loop

- конец цикла

End Sub

- конец процедуры

Цикл While-Wend

Оператор полностью соответствует структуре Do While-Loop. Особенность оператора: 1) невозможно прервать выполнение цикла из тела цикла (Exit Do отсутствует), 2) проверка условия выполняется только в начале цикла.

While <условие>

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

Wend

Цикл For Each

Оператор работает с величинами объектного типа. Он применяется к массивам (элементам) и наборам объектов. Выполняется фиксированное число раз, число объектов в наборе определяется автоматически. Упорядочение элементов в наборе не требуется.

Синтаксис оператора:

For Each <элемент> In <набор>

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

Exit For

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

<элемент> - переменная типа Variant, <набор> - набор объектов. Для прерывания работы цикла используется оператор Exit For. Пример использования конструкция For Each … Next для итераций по всем ячейкам диапазона с именем MyRange на листе с порядковым номером 1 текущей книги Excel. Переменная, представляющая собой ячейку в семействе ячеек, содержащемся в MyRange:

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

Комментарий

Const lim As Integer = 10

For Each c In

Worksheets(1).Range("MyRange").Cells

If c.Value > lim Then

With c.Font

.Bold = True

.Italic = True

.Color = vbRed

End With

End If

Next c

MsgBox "Все сделано!"

- объявление константы lim=10

- для каждой ячейки из диапазона MyRange

- если значение в ячейке > lim, то

- для шрифта ячейки задать

- начертание: жирный

- курсив

- цвет - красный

- конец оператора With

- конец оператора If

- конец оператора For - вывод сообщения

Первая строка объявляет целую константу limit, равную 33. Вторая строка задает перебор ячеек диапазона MyRange на листе 1 текущей рабочей книги.