Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
VBA.doc
Скачиваний:
3
Добавлен:
17.09.2019
Размер:
696.83 Кб
Скачать

Організація циклів

У мові Visual Basic цикл можна організувати за допомогою двох типів конструкцій.

Конструкція For...Next використовується тоді, коли кількість повторень циклу відома наперед. Вона має вигляд:

For лічильник = поч.знач To кін.знач (Step крок)

оператори1

(Exit For)

оператори2

Next (лічильник)

— спочатку змінній-лічильнику присвоюється значення поч. знач, після чого можливі два варіанти продовження обчислень:

1 — якщо значення змінної лічильник більше за значення кін.знач, то завершується виконання циклу, при цьому оператори1 та оператори2 не виконуються жодного разу;

2 — якщо значення лічильника менше значення кін.знач, то блок операторів оператори1 виконуються перший раз, після чого відбувається перехід на початок циклу, значення лічильника змінюється на крок (якщо немає ключового слова Step, то вважають, що крок дорівнює 1. Після цього знову перевіряється, чи лічильник не більший за значення кін.знач.

Якщо потрібно примусово завершити роботу циклу при виконанні якоїсь умови, то всередині циклу використовують службові слова Exit For (це аналогічне присвоєнню змінній лічильник значення, більшого за кін.знач).

Конструкція Do...Loop використовується тоді, коли наперед невідомо, скільки разів повинні виконатися оператори тіла циклу. Існує 4 різновиди цієї конструкції.

  • Do Until...Loop:

Do Until умова

оператор

Loop

— якщо умова набуває хибне значення, то блок оператори виконається, якщо умова істинна — то тіло циклу не виконається, а відбудеться перехід на оператор, який знаходиться після службового слова Loop. Отже тіло циклу може жодного разу не виконатися, якщо умова істинна.

  • Do While...Loop:

Do While умова

оператори

Loop

— якщо умова набуває істинне значення, то блок оператори виконається, якщо умова хибна — то відбувається перехід на оператор, який знаходиться після службового слова Loop. Якщо ж умова хибна, то цикл не виконається жодного разу.

  • Do While...Loop Until:

Do

оператори

Loop Until умова

— тіло циклу виконається хоча б 1раз; блок оператори виконуватиметься доти, поки умова буде набувати хибне значення.

  • Do While...Loop While:

Do

оператори

Loop While умова

— тіло циклу обов’язково виконається хоча б 1 раз; блок оператори виконуватиметься доти, поки умова буде набувати істинне значення.

Опис та присвоєння значень масивам

При описі статистичного масиву вказується верхня та нижня межі (за замовчуванням дорівнює 0), які не можна змінити в програмі. Масиви описують за допомогою оператора Dim. В описі можна вказати лише верхню межу або обидві, наприклад:

Dim A(9) As Single — масив з 10 елементів;

Dim B(1 To 10) — масив з 10 елементів;

Dim C(4,4) As Double — масив з 25 елементів;

Dim D(1 To 10, 1 To 5) As String — масив з 50 елементів.

Залежно від області видимості, в описі масивів використовують службові слова Static, Public, Private.

Опис динамічного масиву відбувається у два етапи:

  • описують масив за допомогою одного із службових слів (Dim, Static, Public, Private) без зазначення розмірності.

  • в потрібному місці процедури описують даний масив із потрібним значенням розмірності за допомогою оператора ReDim.

Dim Arr()As Single ’описано тип масиву

ReDim Arr(1 To 10) ’вказано розмірність

У VBA існує можливість визначення значення верхньої та нижньої меж масиву. Для цього використовуються функції Lbound(масив) та Ubound(масив) відповідно, де масив — ім’я масиву.

Важливою перевагою при використанні динамічних масивів є те, що зайняту пам’ять можна очистити після завершення обробки масиву. Для цього використовують функцію Erase(масив), де масив — ім’я масиву.

Після опису масив можна використовувати в коді. Для доступу до елементів масиву необхідно вказати назву масиву та значення індексу, яке записується в дужках. Наприклад, А(9) — звернення до елемента одновимірного масиву, індекс якого 9; ArrD(5,4) — звернення до елемента двовимірного масиву, індекси якого 5 і 4.

Для присвоєння значень елементам масиву використовують цикл, параметром якого є індекс (у випадку одновимірного масиву) або сукупність вкладених циклів за індексами масиву (для багатовимірного масиву). У тілі циклу розміщують оператор присвоєння для елемента масиву з індексом, який зберігається з параметром циклу.

Приклад (цикл з визначеною кількістю повторень): скласти процедуру знаходження добутку елементів одновимірного масиву А(6), тобто обчислити .

Текст процедури:

Sub Dobutok()

Dim Dob, a(1 to 6) As String

For I = 1 To 6

a(i) = InputBox (“Введіть” & i &“те число:”)

Next i

Dob = 1

For I = 1 To 6

Dob = Dob * a(i)

Next i

MsgBox (“Добуток чисел =” & Dob)

End Sub

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