- •Минобрнауки россии
- •Оглавление
- •Введение
- •1. Лабораторная работа № 1
- •1.1. Создание интерфейса пользователя
- •1.1.1. Основные понятия
- •1.1.2. Редактор vba
- •1.2. Работа с переменными, массивами, константами
- •1.2.1. Основные инструкции языка Visual Basic
- •1.2.3. Создание интерфейса пользователя
- •1.2.4. Окно свойств
- •1.2.4. Меню Edit
- •1.2.5. Меню View
- •1.2.6. Меню Format
- •1.3.1. Пользовательские формы
- •1.3.2. Свойства объекта UserForm
- •1.3.3. Методы объекта UserForm
- •1.3.4. События объекта UserForm
- •1.4. Контрольные вопросы
- •2. Лабораторная работа № 2
- •2.1. Элементы управления
- •2.1.1. Свойства элементов управления
- •2.1.2. Методы и события элементов управления
- •2.2. Командная кнопкаCommandButton
- •2.3. Элемент управления надписью (метка)Label
- •2.4. Текстовое окно (поле ввода)TextBox
- •2.5. Контрольные вопросы
- •3. Лабораторная работа № 3
- •3.1. Алгоритм. Способы записи алгоритма
- •3.1.1. Структуры алгоритмов
- •3.1.2. Линейная структура алгоритма
- •3.3. Полоса прокрутки
- •3.4. Задания для выполнения
- •Контрольные вопросы
- •4. Лабораторная работа № 4
- •4.1. Разветвляющаяся структура алгоритма
- •4.1.1. Условный оператор if
- •4.1.2. Оператор выбора Select Case
- •4.1.3. Оператор выбора GoTo
- •4.2. Задания для выполнения
- •4.3. Контрольные вопросы
- •5. Лабораторная работа № 5
- •5.1. Циклические структуры алгоритмов
- •5.1.1. Фиксированные циклы
- •5.2. Элемент управления ListBox (список)
- •5.3. Поле со списком
- •5.4. Задания для выполнения
- •5.5. Контрольные вопросы
- •6. Лабораторная работа № 6
- •6.1. Циклы с условием (неопределённые циклы)
- •6.2. Элемент управления Рамка
- •6.3. Элементы управления Флажок и Переключатель
- •6.4. Задания для выполнения
- •6.5. Контрольные вопросы
- •7. Лабораторная работа № 7
- •7.1. Массивы
- •7.1.1. Объявление массивов
- •7.1.2. Объявление массива фиксированного размера
- •7.1.3. Объявление динамического массива
- •7.2. Задания для выполнения
- •7.3. Контрольные вопросы
- •8. Лабораторная работа №8
- •8.1. Работа с матрицами
- •Задания для выполнения
- •8.3. Контрольные вопросы
- •9. Лабораторная работа №9
- •9.1.Список и его составные элементы
- •9.2. Формирование списка
- •9.3. Задания на выполнения
- •10. Задания для самостоятельной работы
- •Приложение
- •Библиографический список
- •Лабораторный
6.1. Циклы с условием (неопределённые циклы)
Циклы с условием используются в тех случаях, когда повторяющиеся действия нужно выполнять только при определённых условиях. Количество итераций не определено и в общем случае может быть равно нулю (в частности, для циклов с предусловием).
VBA предлагает разработчикам несколько управляющих структур для организации циклов с условием:
Четыре вида циклов Do…Loop, которые различаются типом проверяемого условия и временем выполнения этой проверки.
Непрерываемый цикл While … Wend.
В тех случаях, когда нет возможности указать начальное и конечное значения переменной цикла, используют циклы типа Do-Loop. Для таких циклов возможны 4 варианта записи.
Цикл Do While … Loop – типичный цикл с предусловием. Условие проверяется до того, как выполняется тело цикла. Цикл продолжает свою работу, пока это <условие> выполняется (т. е. имеет значение True). Так как проверка выполняется в начале, то тело цикла может ни разу не выполниться. Формат цикла Do While … Loop:
Do While <условие>
<блок операторов>
Loop.
Оператор Do … Loop While предназначен для организации цикла с постусловием. Условие проверяется после того, как тело цикла будет выполнено хотя бы один раз. Цикл продолжает свою работу, пока <условие> остаётся истинным.
Формат цикла Do … Loop While:
Do
< блок операторов >
Loop While <условие>.
Циклы Do Until … Loop и Do … Loop Until являются инверсиями ранее рассмотренных циклов с условием. В общем случае они работают аналогично, за исключением того, что тело цикла выполняется при ложном условии (т. е. <условие>=False).
Формат цикла Do Until … Loop:
Do Until <условие>
< блок операторов >
Loop.
Формат цикла Do … Loop Until:
Do
< блок операторов >
Loop Until <условие>.
Цикл While … Wend также относится к циклам с условием. Данный оператор полностью соответствует структуре Do While … Loop. Формат цикла While … Wend:
While <условие>
< блок операторов >
Wend.
Отличительной особенностью этого оператора является невозможность принудительного завершения (прерывания) тела цикла (оператор Exit Do не работает в цикле While… Wend).
Прерывание цикла
Для досрочного завершения итерации и выхода из цикла применяется оператор Exit. Этот оператор применим в любой циклической структуре, кроме While ... Wend. Общий синтаксис использования Exit для прерывания цикла таков:
<начало_цикла>
[<блок операторов1>]
Exit (For | Do)
[<блок операторов2>]
[Exit (For | Do)]
...
<конец_цикла>.
При выполнении оператора Exit цикл прерывается, и управление передается оператору, следующему за оператором <конец_цикла>. В теле цикла может присутствовать несколько операторов Exit.
В число инструкций, исполняемых в цикле, может быть включена инструкция Exit Do, если из цикла надо выйти «досрочно», например, при выполнении какого-нибудь дополнительного условия. Заметим, что Do While означает Выполнять пока… Do Until означает Выполнять пока не … Другими словами, вместо Do Until можно написать Do While Not. В некоторых случаях эти проверки удобнее ставить в конец цикла (Loop – цикл, дословно – «петля»).