Dim Base As Integer
Dim Power As Integer
Dim Result As Integer
Dim Count1 As Integer
Base = 4
Power = 5
Result = 1
For Count1 = 1 To Power Step 1
Result = Result*Base
Next MsgBox Base & “ возводится в степень ” & Power & “, результат = “& Result
End Sub
21. For-Next
Действие ее подобно действию For-Next, но группа операторов выполняется не заданное число раз, а до соблюдения определенного условия. В программе Proc34 инструкция While-Wend использована для выделения определенного значения из последовательности случайных чисел.
Sub Proc34_WhileWend ( )
Dim LotteryEntry As Integer
LotteryEntry = 0
While LotteryEntry <> 7
LotteryEntry = Int (10*Rnd ( ))
Beep
Wend
MsgBox “Ваше число равно “& LotteryEntry &”. Вы выиграли!!”
End Sub
22. Управляющая структура Do-Loop
Она похожа на структуру While-Wend, однако дополнительно обладает двумя важными особенностями. Во-первых, условие завершения цикла Do-Loop можно задавать не только в его начале, но и в конце. Условие в конце цикла гарантирует, что он будет выполнен хотя бы один раз. Во-вторых, условие можно сделать критерием как выполнением цикла Do-Loop, так и его завершения. Последняя возможность в цикле While-Wend также доступна – чтобы цикл выполнялся, пока не соблюдено некоторое условие, его надо указать в структуре While с логическим оператором Not.
Рассмотрим несколько простых примеров. В программе Proc34 инструкция While-Wend применялась для определения момента, когда в последовательности случайных чисел появлялась семерка. В Proc35 та же операция осуществляется циклом Do-Loop.
Sub Proc35_DownileLoop ( )
Dim LotteryEntry As Integer
LotteryEntry = 0
Do While LotteryEntry <> 7
LotteryEntry = Int (10*Rnd ( ))
Beep
Loop
MsgBox “Ваше число равно “& LotteryEntry &”. Вы выиграли!!”
End Sub
23. Управляющая структура For-Each-Next
Это самый мощный цикл VBA - For-Each-Next. Аналогичные структуры в других языках программирования встречаются очень редко. For-Еach-Next предназначена для выполнения одной и той же группы действий над каждым объектом семейства или структуры массива. Ниже приведен пример этой структуры: