Statements

Повторение фиксированное число раз: циклы Fоr.

Простейшим из циклов является. В VBA имеется две различные структуры таких циклов: For.. Next и For Each... Next. Обе эти структуры называются циклами For, потому что всегда выполняются определенное число раз.

Применение цикла For.. Next

Цикл For.. Next имеет такой синтаксис.

For counter = start to end [ Step StepSize ]

Statements

Next [ counter ]

Где counter представляет любую числовую переменную, соответствующую правилам VBA, обычно с типом данных Interger или Long. Выражение start является любым числовым выражением и определяет начальное значение переменной счетчика counter. Выражение end – также числовое выражение и определяет конечное значение той же переменной.

По умолчанию VBA каждый раз после завершения инструкций из цикла увеличивает значение переменной counter на 1. Другое значение увеличения можно задать с помощью необязательного ключевого слова Step. После него необходимо указать величину (шаг, на которую надо увеличить значение counter). В нашем синтаксисе StepSize представляет любое числовое выражение и как раз указывает эту самую величину.

Statements представляет одну или несколько инструкций VBA (или вообще ни одной из них). Они составляют тело цикла, и каждая из них выполняется всякий раз, когда выполняется сам цикл.

Ключевое слово Next сигнализирует VBA, что достигнут конец цикла, необязательная переменная counter после Next должна быть той же переменной, которая находится после ключевого слова For в начале циклической структуры. Ее надо писать после Next, чтобы легче читать исходный текст программы (особенно с вложенными циклами For.. Next).

При выполнении цикла For.. Next вначале переменной counter присваивается значение, представленное переменной start. Затем VBA выполняет все инструкции, представленные в Statements, пока не будет достигнуто ключевое слово Next. Ключевое слово Next сигнализируют VBA, что достигнут конец тела цикла. Затем значение переменной counter увеличивается на величину переменной StepSize (шаг), если есть необязательной ключевое слово Step. Если этого слова нет, то значение counter увеличивается на 1. Происходит переход на начало цикла, а затем текущее значение counter сравнивается со значением, представленным end. Если counter будет меньше или равен end, то цикл выполнится снова. Если counter больше, чем end, то выполнение продолжается с первой инструкции, которая находится после ключевого слова Next.

G Счетчик в рассматриваемом типе циклов может быть как с возрастающим счетчиком, так и с убывающим. Для этого необходимо использовать ключевое слово Step, с отрицательным значением StepSize, в результате чего значение counter будет уменьшаться от большого значения к меньшему.

Пример цикла For.. Next с возрастающим счетчиком:

Эта процедура получает от пользователя два числа, в заданном ими диапазоне суммирует все целые числа, а затем выводит на экран полученное значение. Если, например, вы запустили эту программу и ввели значения 4 и 8, то будут просуммированы числа 4, 5, 6, 7 и 8, а на экране будет отображено число 30.

Sub Demo_ForNext()

Dim k As Integer

Dim uStart As String

Dim uEnd As String

Dim uSum As Long

uStart = InputBox("Введите натуральное число:")

uEnd = InputBox("Введите второе натуральное число")

Введенные значения еще не обрабатывались поэтому сумма должны быть нулевой


uSum = 0

For k = uStart To uEnd

Цикл For..Next
uSum = uSum + k

Next k

MsgBox "Сумма натурального ряда от" & uStart &

_" до" & uEnd & " равна: " & uSum

Повторите назначение этого оператора
End Sub

Пример цикла For.. Next с убывающим счетчиком:

Этот пример делает то же самое, но счетчик цикла работает с убыванием.

Sum Demo_ForNextDown()

Dim k As Integer

Dim uStart As Integer

Dim uEnd As Integer

Dim uSum As Long

uStart = InputBox("Введите натуральное число:")

uEnd = InputBox("Введите второе натуральное число")

Цикл For..Next,убывающий


uSum = 0

For k = uStart To uEnd Step -1

uSum = uSum + k

Next k

MsgBox "Сумма натурального ряда от" & uStart & _

" до" & uEnd & " равна: " & uSum

End Sub

þ 1. Введите оба примера, найдите отличия между ними. 2. Запустите их на выполнение, в качестве первого числа введите 3, а второго 15. Вычислите и запишите результат каждого примера. 3. Сделайте тоже самое, но числа введите наоборот, то есть сначала введите 15 а затем 3. 4. Поясните полученные результаты.

Понравилась статья? Добавь ее в закладку (CTRL+D) и не забудь поделиться с друзьями:  



double arrow
Сейчас читают про: