Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
VBA Л19 Л20.docx
Скачиваний:
5
Добавлен:
02.12.2018
Размер:
254.92 Кб
Скачать

Цикл со счетчиком на языке vba.

Присвоение объектам значения свойства должно произойти определенное количество раз (14 раз). Воспользуемся для этого циклом со счетчиком. Программа Символы1 примет следующий вид:

Sub Символы1()

For i = 1 То 14

Selection.Characters(i).Bold = True

Next i

End Sub

После выполнения программы все символы выделенного фрагмента текста (слова «проектирование») будут иметь начертание полужирный.

Рассмотрим более сложную задачу. Пусть в рассмотренном выше выделенном фрагменте текста (объект Selection) необходимо для букв «о» установить начертание полужирный (свойство Bold), а для других символов — начертание курсив (свойство Italic).

Присвоение объектам значения свойства в цикле должно произойти в зависимости от выполнения условия (Characters (i) = "о").

Программа Символы2 примет следующий вид:

Sub Символы2()

For i = 1 То 14

If Selection.Characters(i) = "о" _

Then Selection.Characters(i).Bold = True _

Else Selection.Characters(i).Italic = True

Next i

End Sub

В результате выполнения программы получается следующий вид выделенного фрагмента текста:

Рис. 20. Результат выполнения программы Символы2

Цикл со счетчиком на языке Visual Basic.

Пример. Составить программу, которая выводит для всех числовых кодов соответствующие им символы.

Будем определять символы и печатать их, начиная с наибольшего числового кода (255), для этого используем отрицательное значение шага цикла.

Dim strA As String

Sub Command1_Click()

For N = 255 To 0 Step -1

strA = Chr(N)

Form1.Print "Числовой код"; N; " - "; strA

Next N

End Sub

Рис. 21. Коды и символы

Пример. Создать программу, выводящую на печать произвольные числа.

Последовательности случайных чисел можно получить с помощью функции Rnd, которая является генератором случайных чисел. Функция Rnd генерирует случайные числа в числовом интервале от 0 до 1, поэтому для того чтобы получать их в заданном диапазоне (например, от 0 до 100), значение функции необходимо умножать на определенный коэффициент (например, на 100). Чтобы получать в результате целое число, необходимо использовать функцию Int.

Ниже приведена программа, генерирующая и печатающая на форме целые случайные числа в интервале от 1 до 100:

Sub Command1_Click()

For N = 1 То 100

Form1.Print Int(Rnd * 100)

Next N

End Sub

Циклы с условием. Часто бывает так, что необходимо повторить тело цикла, но заранее неизвестно, какое количество раз это надо сделать. В таких случаях количество повторений зависит от некоторого условия. Такой цикл реализуется с помощью инструкции Do . . . Loop.

Условие выхода из цикла можно поставить в начале, перед телом цикла. Такой цикл называется циклом с предусловием.

Проверка условия выхода из цикла проводится с помощью ключевых слов While или Until. Эти слова придают одному и тому же условию противоположный смысл. Ключевое слово While обеспечивает выполнение цикла до тех пор, пока выполняется условие, т.е. пока условие имеет значение «истина». Как только условие примет значение «ложь» выполнение цикла закончится. В этом случае проверяемое условие является условием продолжения цикла.

Ключевое слово Until обеспечивает выполнение цикла до тех пор, пока не выполняется условие, т.е. пока условие имеет значение «ложь». Как только условие примет значение «истина», выполнение цикла закончится. В этом случае проверяемое условие является условием завершения цикла.

Do While Условие

тело цикла

Loop

Do Until Условие

тело цикла

Loop

Рис. 22. Цикл с предусловием

Циклы с условием на языке VBA. Запишем программу Символы в форме цикла с предусловием в двух вариантах: с условием продолжения цикла и с условием завершения цикла.

Программа Символы3() с условием продолжения цикла:

Sub Символы3()

Do While i <= 11

i = i + 1

Selection.Characters(i).Bold = True

Loop

End Sub

 

Программа Символы4() с условием завершения цикла:

Sub Символы4()

Do Until i = 12

i = i + 1

Selection.Characters(i).Bold = True

Loop

End Sub

Соседние файлы в предмете [НЕСОРТИРОВАННОЕ]