- •Современные офисные пакеты
- •6.5. Прикладные системы подготовки текстов
- •Макроязыки офисного приложения
- •Структура редактора vba
- •Типы данных и переменные vba
- •5.3. Типы данных в vba
- •Классы и объекты.
- •Операторы условного перехода, операторы в vba.
- •Циклические операторы vba
- •9.18. Оператор цикла While…Wend
- •9.19. Оператор цикла For…Next
- •Строковые функции
- •Математические функции
- •Функции преобразования типов в vba.
- •Использование функций преобразования типов
- •Диалоговые окна
- •Основные элементы управления
- •Общие свойства элементов управления Кратко о некоторых элементах управления Некоторые общие свойства элементов управления
- •Некоторые элементы управления
- •Операции с файлами
- •Работы с массивами и строками
- •Объявление массивов Объявление фиксированных массивов
- •Объявление динамических массивов
Циклические операторы vba
Для программирования циклических алгоритмов используются операторы циклов. В VBA таких операторов несколько. Наиболее распространенными являются операторы While…Wend и For…Next. С их помощью можно запрограммировать циклические алгоритмы с предусловием. Принцип их работы:
1. Переменной цикла присваивается начальное значение.
2. Проверяется условие входа в цикл. Условие – это любое логическое выражение, операндом которого является переменная цикла. Если условие истинно, то выполняются Повторяющиеся действия (тело цикла). В противном случае цикл завершается, управление передается оператору, следующему за оператором цикла.
3. Значение переменной цикла изменяется.
4. Повторяются действия с шага 2.
9.18. Оператор цикла While…Wend
Синтаксис:
While <условие>
<Повторяющиеся действия>
Wend
В качестве условия входа в цикл возможно использование любого логического выражения, в том числе и сложного.
Синтаксисом оператора не предусмотрено
- присваивание начального значения переменной цикла;
- изменение значения переменной цикла после выполнения повторяющихся действий.
Поэтому эти действия программист должен предусмотреть сам. Если не присвоить переменной цикла начального значения, возможно невыполнение цикла или выполнение повторяющихся действий случайное число раз. При отсутствии модификации значения переменной цикла возникает ситуация бесконечного цикла. Для выхода из этой ситуации необходимо нажать клавишу Esc или одновременно две клавиши Ctrl + Break.
Избежать подобного рода ошибок позволяет оператор цикла For…Next, т.к. установка начального значения переменной цикла и ее модификация предусматриваются его синтаксисом.
9.19. Оператор цикла For…Next
Переменную цикла в операторе For…Next принято называть счетчиком.
Синтаксис:
For <Счетчик>=<НачЗначение> То <КонЗначение> [Step <Приращение>]
<Повторяющиеся действия>
Next [<Счетчик>]
Элементы синтаксиса:
Счетчик –
Обязательный. Переменная числового типа. Указывается программистом.
НачЗначение –
Обязательный. Определяет состояние переменной Счетчик, с которого начинается отсчет ее значения.
КонЗначение –
Обязательный. Определяет состояние переменной Счетчик, на котором отсчет ее значения прекращается.
Step Приращение –
Необязательный. Переменная числового типа. Позволяет изменять приращение счетчика (по умолчанию оно равно 1).
Не рекомендуется изменение значения переменной цикла внутри тела цикла, т.к. это приведет к ошибочным результатам.
После ключевого слова Next можно не указывать имя переменной-счетчика. Более того, в этом случае программа будет выполняться быстрее. Однако для быстрого нахождения соответствия между For и Next, особенно при программировании вложенных циклов, имя переменной цикла все же лучше указывать.
В данном случае переменная цикла i изменяет свое значение от 1 до значения переменной p включительно с шагом 1. Шаг модификации значения переменной цикла i в данном случае в операторе цикла не указан, так как он равен 1 (по умолчанию). Т.е. будет получено p значений вычисляемой функции.
Значение Счетчика может изменяться в обратном направлении. Для этого следует задать начальное значение больше конечного и выбрать отрицательное приращение значения счетчика.
В качестве значений элементов синтаксиса оператора For…Next могут быть использованы любые числовые выражения. Во всех предыдущих примерах это были целые числа, но возможно использование и вещественных чисел.
Преимущество оператора цикла For…Next очевидно. Поэтому его использование предпочтительнее. Однако его применение возможно только в том случае, когда в качестве условия входа в цикл используется простое логическое выражение.
