
- •Теоретична довідка Візуальне програмування для створення додатків vba
- •Об’єкт.Метод
- •Середовище редактора vb
- •Вікно редактора Visual Basic
- •Елементи панелі управління
- •Мова програмування Visual Basic
- •Математичні функції
- •Арифметичний цикл для
- •Ітераційний цикл поки
- •Ітераційний цикл до
- •Процедура типу Function і процедура типу Sub
Арифметичний цикл для
For <змінна циклу = початкове значення> То <кінцеве значення> [Step<крок циклу>]
Тіло циклу
Next [змінна циклу]
Приклад
Private Sub Prog4 ‘ Арифметичний цикл
Dim i As Integer
For і = 1 To 15 Step 3
Print i
Next
End Sub
Ітераційний цикл поки
1. Оператор циклу Do While ... Loop
Цикл, що задається цією конструкцією, виконується доти, поки умова, що задається в циклі істина (дотримується).
Формат вказівки:
Do While умова
конструкції
Loop
2. Оператор циклу Do ... Loop While
Цей варіант відрізняється від розглянутого вище розташуванням умови. У другому варіанті конструкції умова розташовується наприкінці циклу:
Do
конструкції
Loop While умова
За такого варіанту конструкції оператора циклу тіло циклу виконається принаймні один раз, після чого здійсниться перевірка умови виконання циклу.
Ітераційний цикл до
3. Оператор циклу Do Until ... Loop
Тут цикл виконується доти, поки умова хибна (не дотримується), а не істинна. У такій конструкції можлива ситуація, за якої тіло циклу не виконається жодного разу, якщо при першій перевірці умова не дотримується.
Формат вказівки:
Do Until умова
конструкції
Loop
4. Оператор циклу Do... Loop Until
У даному операторі циклу, як і у попередньому, цикл виконується доти, поки умова хибна (не дотримується). За такого варіанту конструкції оператора циклу тіло циклу виконається принаймні один раз, після чого здійсниться перевірка умови виконання циклу, навіть якщо умова дотримувалася.
Формат вказівки:
Do
конструкції
Loop Until умова
У кожному новому проходженні циклу перевіряється умова; тому важливо при створенні програми стежити за тим, щоб у тілі циклу значення змінної в умові циклу могло бути змінено так, аби умова стала хибною, тобто цикл закінчився.
Нехай, наприклад, треба розрахувати значення Y залежно від введеного значення X. Тоді фрагмент програми матиме такий вигляд:
А) У даному прикладі цикл виконується тоді, коли введені значення Х задовольняють умову Х>0: X = Input ("Значення X", Х) Do While Х> 0 Y=sqr(3*Х+7) Print X;Y Loop
Б) У наведеному нижче прикладі цикл виконується тоді, коли X <5: X = InputBox ("Значення X") Do Until X>5 Y=sqr(15-3*Х) Print X;Y Loop
Процедура типу Function і процедура типу Sub
Процедури обробки подій є локальними процедурами, пов’язаними з певною формою. Для того, щоб зробити певні процедури загальнодоступними, їх потрібно оголосити в одному чи декількох стандартних модулях. Стандартний модуль, або модуль програми, являє собою особливий файл з розширенням bas, який зберігає змінні і процедури, які можуть бути використані у будь-якому місці програми. Стандартний модуль входить до складу проекту, він, як і форми, може бути збережений у зовнішній пам’яті: меню File, команда Save Module1 , вказати місце збереження і ім’я модуля. Стандартних модулів, як і форм, у проекті може бути декілька. На відміну від форм, стандартний модуль не містить об’єктів і встановлюваних властивостей об’єктів, а тільки текст програми, який може бути відображеним і відредагованим у вікні редактору коду. В процедурах обробки подій користувач може використовувати власноруч розроблені процедури, оголошені у стандартному модулі даного проекту. Існують такі різновиди процедур стандартного модуля: процедура типу Function (функції) і процедура типу Sub (підпрограми).
Функції створюються тоді, коли деякі обчислення потрібно виконувати кілька разів у програмі з різними значеннями параметрів. Для створення власної процедури типу Function необхідно використати такі оператори:
Function <ім'я функції> ([аргументи функції]) [As <тип>]
Конструкції тіла функції
End Function
де:
ім'я функції — значення, яке повертається у процедуру виклику після виконання процедури;
аргументи функції —імена змінних, значення яких використовуються функцією (якщо аргументи потрібні);
тип — це тип значень, які повертає функція, якщо цей опис відсутній, то за замовчуванням тип Variant.
Зауваження. Квадратні дужки у синтаксичній формулі вказують на необов’язковість наявності параметра.
Останній оператор у тілі функції зазвичай - оператор присвоєння імені функції обчисленого значення.
Приклад
Function TotalTax(Cost)
StateTax=Cost*0.05 ‘Податки штату 5%
CityTax= Cost*0.015 ‘Міські податки 1,5 %
TotalTax= StateTax + CityTax
End Function
Для активізації процедури типу Function треба ввести в програму ім'я процедури з тією кількістю аргументів, які використовувалися при її оголошенні. Зазвичай процедури типу Function (функція) розробляють з метою виконання певних обчислень. Використовуються за тими ж правилами як і стандартні функції: значення функції зазвичай присвоюється змінній чи властивості об’єкта.Функції, оголошені у стандартних модулях, за замовчуванням є загальнодоступними.
Процедура типу Sub, на відміну від процедури типу Function, після її виконання повертає значення в аргументах процедури або виконує певні дії (наприклад, друкування даних). Для створення такої процедури використовують оператори:
Sub <ім'я > ([аргументи]) [As <тип>]
Конструкції тіла процедури
End Sub
де:
• ім'я — це ім'я процедури, що створюється;
• аргументи — імена змінних, значення яких використовуються функцією і повертаються у процедуру виклику;
• тип — це тип значень, які повертає функція. Зауваження. Квадратні дужки у синтаксичній формулі вказують на необов’язковість наявності параметра.
Приклад .
Процедура, що виконує друкування значень, має вигляд
Sub PR (X,Y)
Printer.FontName = "Arial" ' установлення шрифту
Printer.FontSize = 16 ' установлення розміру шрифту
Print X; Y
End Sub
Оператор вводу InputBox. Цей оператор використовується для введення і збереження вхідних даних. Результатом роботи цього оператора буде виведення на екрані діалогового вікна із запитом для введення значень. Синтаксис:
InputBox (< повідомлення > [, < заголовок > ] [,< значення > ] [, < x, y > ])
Де < повідомлення > та < заголовок > - довільні, які беруться у лапки (“), < значення > - значення змінної, а < x, y > - координати лівого верхнього кута вікна на екрані. Якщо будь-який елемент оператора замовчується , ставляться коми. Приклад: х = InputBox (“х =” , “ Проект ” , , 400, 400)
У виведеному діалоговому вікні в поле вводу внести значення змінної і натиснути ОК. Введене значення присвоюється змінній і управління передається наступному оператору в програмі. При натисканні Cancel, дія відміняється.
Оператор присвоювання. Використовується в арифметичних виразах. Синтаксис: < змінна > = < арифметичний вираз >
Оператор виведення MsgBox. Цей оператор використовується для одержання від користувача відповідей (“Так” або “Ні”) на короткі повідомлення. Синтаксис:
MsgBox <повідомлення > [, число ] [, < заголовок > ]
Де <повідомлення > і < заголовок > - довільні символи, число – цифра в залежності від якої змінюється вигляд вікна (наприклад, 16 – повідомлення про помилку, 64 – інформаційне повідомлення, 3 – кнопки Да, Нет, Отмена). Повідомлення може включати арифметичний вираз, якій задається через функцію Str ().
Приклади:
1. MsgBox “Процес обчислення завершено”, 1, “Проект”
2. MsgBox (“х=” + Str (x) + “ “ + ” x+sin(x)=”+Str (x+Sin(x))), , "проект"
Результатом виконання буде виведене вікно з результатом розрахунку, передбачається що значення “х” було вказано раніше :
Оператор виведення даних Print. Дія цього оператора полягає у виведенні результатів роботи програми у вікно Immediate. Синтаксис:
Debug. Print [ список елементів виведення ]
Де до списку елементів виведення можуть входити: константи, змінні, арифметичні вирази, послідовність символів у лапках, функції Tab, Spc, String. Елементи списку відокремлюються комою (,) або крапка з комою (;). У випадку розділення комою наступна інформація друкується з нової зони (одна зона 14 позицій),. У випадку розділення крапкою з комою наступна інформація друкується безпосередньо після попередньої. Якщо елементом списку є вираз, то спочатку система обчислює значення виразу а друкує результат. Функція Tab (n) – визначає номер позиції з якої відбувається друк. Функція Spc (n) – визначає кількість позицій, які треба пропустити. Функція String (n, “символ”) – визначає кількість символів, які друкуються.