- •Кафедра інформаційних технологій проектування
- •Запис, редагування та застосовування простого макросу
- •Інтегроване середовище розробки vb-програм – Редактор Visual Basic. Інтерфейс редактора vba
- •Вікно проекта
- •Вбудовані діалогові вікна
- •Процедура Msgbox. Виведення інформації
- •Функція InputBox. Введення інформації
- •Перенос рядка
- •Коментарі
- •Розміщення декількох операторів в одному рядку
- •Лекція №2
- •Що таке об’єкт?
- •Сімейство об’єктів
- •Властивості
- •Найважливіші об’єкти vba Об’єктна модель
- •Об’єкт Application (додаток)
- •Об’єкт Worksheet (Робочий лист)
- •Основні властивості робочих листів
- •Об’єкт Range (діапазон)
- •Оператор With - End With
- •Лекція №3
- •Що таке алгоритм?
- •Виконавець алгоритму — це деяка абстрактна чи реальна (технічна, біологічна чи біотехнічна) система, здатна виконати дії, що наказуються алгоритмом.
- •Якими властивостями володіють алгоритми?
- •У якій формі записуються алгоритми?
- •Базова алгоритмічна структура
- •Етапи рішення задач за допомогою комп'ютера
- •Використання імен
- •Типи даних
- •Константи
- •Операції vba
- •Вирази. Пріоритети (старшинство) операцій
- •Оператор присвоєння
- •Блок-схема алгоритму:
- •Лекція №6.
- •Форма. Елементи управління
- •Узгодження про імена
- •Арифметичні цикли. Оператор циклу For – Next
- •Лекція №8.
- •Список рекомендованої літератури:
Операції vba
В програмах на VBA можна використовувати стандартний набір операцій над даними. Існує три типи операцій:
математичні (виконуються над числами і їх результатом є числа),
відношення (виконуються не лише над числами і їх результатом є логічні значення (true – “істина”, false – “ложь”), наприклад, х < у),
логічні (застосовуються для логічних виразів і їх результатом є логічні значення, наприклад, Not x And y).
Математичні операції: +, -, *, /, \ (цілочисельне ділення), Mod (залишок від ділення),
^ (піднесення до степені).
Операції відношення: <, >, <=, >=, <> (не рівно), =.
Логічні операції: виконуються з даними логічного типу (boolean).
Операція |
Опис |
[Операнд 1] And [Операнд 2] [Операнд 1] Or [Операнд 2] [Операнд 1] Хor [Операнд 2]
Not [Операнд]
[Операнд 1] Equ [Операнд 2] |
Логічне множення (кон’юнкція) Логічне додавання (диз’юнкція) Виключаюче Or, тобто повертає True тільки тоді, коли один операнд повертає True Логічне заперечення (працює тільки з одним операндом)
Логічна еквівалентність |
Результат обчислення логічної операції, в залежності від значень операндів X і Y наведені у таблиці.
-
X
Y
Аnd
Or
Xor
Eqv
True
true
true
true
false
true
True
false
false
true
true
false
False
true
false
true
true
false
false
false
false
false
false
true
Операції з рядками
[Рядок1] & [Рядок2] – зчеплення рядків. Для зчеплення рядків допустимо використання операції [Рядок1] + [Рядок2], але рекомендується застосовувати знак & (амперсант).
Приклад:
S1 = “Hello”
S2 = “Word”
S = S1 & “ “ & S2 ‘Результатом виконання зчеплення рядків буде рядок “Hello Word ”
Вирази. Пріоритети (старшинство) операцій
Вирази - це поєднані за допомогою операцій константи, змінні та вирази, які взяті в дужки. Вирази в залежності від значення, яке вони приймають можуть бути числовими або логічними. Щоб знайти значення виразу, необхідно його обчислити, тобто виконати всі операції. VBA виконує операції в залежності від їх пріоритетів, і це дає можливість одержати однозначний результат.
Приведемо пріоритети виконання операцій:
виклик функції і дужки (мають найвищий пріоритет, тобто виконуються в першу чергу
^
-(зміна знаку)
* і /,
\
mod
+ і –
>,<,>=,<=,<>,=
Not
And
Or
Xor
Equ (операція має найнижчий пріоритет, тобто виконується останньою)
Функції VBA, використання функцій
В VBA є великий набір вбудованих функцій і процедур, використання яких суттєво спрощує програмування. Ці функції можна розділити на наступні основні категорії: математичні функції, функції перевірки типів, функції перетворення форматів, функції обробки рядків, функції дати і часу.
Синтаксис запису функцій:
<Ім’я функції>([<аргумент1>],[<аргумент2>]...) – аргументи функції перераховуються через кому в дужках. Перед дужкою не може бути прогалин.
Математичні функції
Математичні функції дозволяють проводити будь-які обчислення.
Функція |
Значення, яке повертає функція |
Abs(Number) Atn(Number)
Cos(Number) Exp(Number)
Log(Number) Rnd(Number)
Sgn(Number)
Sin(Number) Sqr (Number) Tan(Number) Fix(Number) Int(Number) |
Модуль (абсолютна величина числа) х=ABS (-5) (результат Х= 5) Арктангенс. Аргумент цієї і інших тригонометричних функцій (Cos, Sin, Tan) повинен задаватися в радіанах (для переводу аргументу, який заданий в градусах, в радіани необхідно помножити його на π/180).
Косинус Експонента (результат піднесення основи натурального логарифму e в указану степінь). EXP (x) => eх, EXP( 5 ) =>e5 Натуральний логарифм. log (x) = LOG (x) ↔ lnx Випадкове число з інтервалу [0, 1].Якщо Number <0, то функція повертає кожен раз одне й те саме число, якщо Number>0, то наступне випадкове, якщо Number=0, то випадкове число, яке генерувалося в попередньому разі, Перед викликом функції Rnd() треба використати інструкцію Randomize.
Знак числа
Синус
Квадратний корінь
з числа. sqr
(x)
=>
Тангенс Обидві функції Int i Fix відкидають дробову частину і повертають ціле число. Різниця між функціями Int i Fix полягає в тому, що для від’ємних значень параметру функція Int повертає найближче від’ємне число, менше або рівне вказаному, а Fix - найближче від’ємне число, більше або рівне вказаному. Х=Int (5.6) (результат Х= 5)
|
Функції перевірки типів
Ці функції перевіряють, якого типу є змінні. Наведемо ті, які вживаються найчастіше.
-
Функція
Перевірка
IsDate(Змінна)
IsNumeric(Змінна)
Чи є аргумент датою
Чи є аргумент числом
Функції перевірки типів повертають значення типу Boolean, тобто True, якщо аргумент є датою (для функції IsDate) або числом (для функції IsNumeric) або False в протилежному разі.
Функції перетворення форматів
Перетворення даних з одного типу в інший, здійснюється за допомогою наступних функцій:
Функція |
Опис |
Val(String)
Str(Number)
Cbool(Expression) Cbyte(Expression) CCur(Expression) Cdate(Expression) CDbl(Expression) CInt(Expression) CLng(Expression) CSng(Expression) CVar(Expression) CStr(Expression) |
Повертає підходяще число, яке міститься в рядку (тобто перетворює текст на число). Якщо буде рядок – 12abc, то повернеться число 12. Повертає значення типу Variant (String), тобто число перетворює в текст. Функція Str обов’язково виділяє позицію для знака, якщо число додатне – ставиться прогалина, якщо від’ємне – ставиться мінус. Перетворює вираз в тип Boolean Перетворює вираз в тип Byte Перетворює вираз в тип Currency Перетворює вираз в тип Date Перетворює вираз в тип Double Перетворює вираз в тип Integer Перетворює вираз в тип Long Перетворює вираз в тип Single Перетворює вираз в тип Variant Перетворює вираз в тип String (на відміну від Str() не резервує позиції для знаку |
Щоб представити числове значення як дату, час, грошовий вираз або в спеціальному форматі, використовується функція Format.
Функція Format повертає значення типу Variant (String), яке містить вираз, відформатований згідно специфікаціям, заданим в опису формату.
Синтаксис:
Format(<вираз>,<специфікація>).
В якості <специфікації> можна задавати як стандартні для VBA іменовані формати так і формати задані користувачем.
Найбільш часто вживані іменовані числові формати:
General Number – число, в якому не розділяються тисячі;
Currency – використовує настройки країни на панелі управління, відображає дві цифри справа від десяткової крапки;
Fixed – відображає щонайменше одну цифру зліва і дві справа від десяткової крапки;
Standart - відображає щонайменше одну цифру зліва і дві справа від десяткової крапки і розділяє тисячі;
Persent – відображає число у вигляді процентів і відображає дві цифри справа від десяткової крапки.
Покажемо результати роботи функції Fomat, якщо х=6242.56724
Fomat(x,”General Number”) => 6242.56724
Fomat(x,” Currency”) => 6 242.57 грн
Fomat(x,” Fixed”) => 6242.57
Fomat(x,” Standart”) => 6 242.57
Fomat(x,” Persent ”) => 624256.70%
Іменовані формати дати і часу:
General Date – виводить дату і час
Long Date - виводить дату у повному форматі дати для Widows
Medium Date - виводить дату у звичному форматі дати для Widows
Short Date - виводить дату у скороченому форматі дати для Widows
Long Time – виводить часи, хвилини та секунди
Medium Time – виводить часи та хвилини у 12-часовому форматі
Short Time – виводить часи та хвилини у 24-часовому форматі
Розглянемо приклад застосування іменованих форматів дати і часу
Fomat(Now,”Genera Date”) => 01.09.06 15:44:05
Fomat(Now,”Long Date”) => 1 Вересень 2006 р
Fomat(Now,”Medium Date”) => 01-вер-06
Fomat(Now,”Short Date”) => 01.09.06
Fomat(Now,” Long Time”) => 17:52:12
Fomat(Now,”Medium Time”) => 05:52
Fomat(Now,”Short Time”) => 17:52
Якщо користувач хоче сам задати необхідний формат він може застосовувати такі символи:
Символ |
Опис |
0 # . % : , / E+, E-, e+, e- d, m, y h, m, s |
Резервує позицію цифрового розряду, відображує незначущі нулі Резервує позицію цифрового розряду з подавленням незначущих нулів Резервує позицію знака, що розділяє дробову частину числа і цілу Резервує процентне відображення числа Розділяє години, хвилини, секунди в категорії формату Time Розділяє сотні від тисяч Розділяє день, місяць, рік в категорії формату Date Розділяє мантису і порядок в експоненційному форматі
Резервує позицію при виводі дня, місяця, року в категорії формату Date Резервує позицію при виводі години, хвилини, секунди в категорії формату Time |
Приклади:
Формат |
Результат |
Format(1.2^2, “##.###”) Format(1.2^2, “##.000”) Format(Sin(1)*Exp(5), “#.###e+##”) Format(Now, “hh:mm:ss”) Format(Now, “dd/mm/yyyy”) |
1.44 1.440 1.249e+2 18:57:23 20.01.2000 |
Функції обробки рядків
Функція |
Вираз, що повертає функція |
Asc(String)
Chr(Charcode)
Lcase(String)
Ucase(String)
Left(String, n)
Right(String, n)
Mid(String, Start [,n])
Len(String)
Spase(n) |
Повертає ASCI код першого знака рядка Asc(“астра”)=>97 Charcode приймає значення від 0 до 255. Значення від 0 до 31 відповідає управляючим кодам. Chr(13) – перехід на новий рядок, Chr(97)=>“а” Перетворює рядок до нижнього регістру (робить всі букви малими) Lcase(“АстрА”)=>“астра” Перетворює рядок до верхнього регістру (робить всі букви великими) Ucase(“АстрА”)=>“АСТРА” Повертає n лівих символів рядка String Left(“осінь”,2)=>”ос” Повертає n правих символів рядка String Right(“осінь”,3)=>”інь” Повертає рядок, який складається з n символів, починаючи з позиції Start рядка (String). Mid(“осінь”,2,3)=>”сін” Повертає кількість символів рядка String Len((“осінь”)=>5 Повертає рядок з n прогалин Spase(3)=>” ” |
Функції часу і дати
Функція |
Значення, що повертає функція |
Date
Time Day, Month, Year |
Повертає значення типу Variant, що представляє день, місяць, рік в значенні дати Повертає значення типу Variant, що представляє поточний час системного годинника комп’ютера Повертає ціле число, яке значить день, місяць, та рік в значенні дати |
Аргументом для функцій, що описані вище, має бути вираз типу Datе.
Лекція №5
Алгоритми, що розгалужуються. Оператор присвоєння. Оператор умовного переходу
