- •Vba – (Visual Basic for Application)
- •Структура редактора vba
- •End Sub
- •Зв’язок з даними, розміщеними на робочому листі Microsoft Excel
- •End Sub
- •Таблиця кодів кнопок
- •Лабораторна робота №9
- •Основи мови vba
- •Оператори мови vba
- •Розрахунок контрольного прикладу в Excel
- •Розрахунок контрольного прикладу в Excel
- •Теоретичні відомості та основні поняття об’єктно-орієнтованого та візуального програмування
- •Задача про обмін валют
- •Циклічні алгоритми
- •Знаходження суми та добутку
Лабораторна робота №9
Програму, котра виводити вікно повідомлення з заголовком «Привіт, світ!» і текстом у вікні заголовка «Програма [Ваше ім’я]». [Ваше ім’я] – потрібно взяти з комірки (1.1) листа з вашим прізвищем.
Public Sub zav1()
MsgBox "Привіт, світ!", , "Програму написала " + Worksheets("Петренко").Cells(1, 1)
End Sub
Програму, котра виводить у вікно з заголовком [ім’я виконавця], взяте з комірки (1, 1) свого робочого аркуша, послідовно наступні повідомлення:
«Мій день народження [день народження]», причому день народження повинен бути зчитаним з відповідної комірки свого робочого аркуша.
«Мій код = [код виконавця]», причому код повинен бути зчитаним з відповідної комірки свого робочого аркуша.
Public Sub zav2()
MsgBox "Мій день народження " + Str(Worksheets("Петренко").Cells(3, 1)) + Chr(13) _
+ "Мій код " + Str(Worksheets("Петренко").Cells(4, 1)), , _
"Програму написала " + Worksheets("Петренко").Cells(1, 1)
End Sub
Написати команду, котра виводить вікно діалогу з заголовком, що містить ім’я виконавця, а потім записує у п’яту комірку першого стовбця робочого аркуша текст з вікна діалогу (InputBox).
Public Sub zav3()
Worksheets("Петренко").Cells(5, 1) = InputBox("Введіть значення", "Програму написала " + Worksheets("Петренко").Cells(1, 1), "fffffff")
End Sub
Основи мови vba
Допустимі імена
Імена повинні відображати суть позначуваного об’єкту, щоб зробити програму такою, що легко читається. У VBA існують такі обмеження на імена:
Довжина імені не повинна перевищувати 255 символів.
В імені не може бути крапок, прогалин і наступних символів: %, #, @, $, !, &.
Ім’я може містити будь-яку комбінацію букв, цифр, символів, які починаються з букви.
Не рекомендується вживати імена, які співпадають з ключовими словами VBA і іменами вбудованих функцій і процедур.(Dim, procedure, static).
Імена повинні бути смисловими.
Типи даних
Типи даних відносяться до фундаментальних понять будь-якої мови програмування.
Дані можуть бути представлені у вигляді змінних або констант.
Константи не можуть змінювати свої значення. Значення константи задається один раз при об’явленні константи.
Синтаксис: [Public | Private] Const Ім’яКонстанти [As Тип] = Вираз
Зауваження: те, що написано в квадратних дужках може бути а може й не бути.
Приклад об’явлення константи:
Privat Const Процентна ставка as single = 0.2 (single –коротке дробове число).
Параметр |
Опис |
Public
Private
Ім’я Константи Тип Вираз
|
Ключове слово, яке використовується на рівні модуля (проекта) для об’явлення констант і змінних, доступних всім процедурам у модулі (глобальне об’явлення). Ключове слово, яке використовується на рівні модуля для об’явлення констант і змінних, доступних тільки всередині процедури, в якому виконується опис (локальне об’явлення) Ім’я константи, яке задовольняє правилам іменування Один з типів даних (типи даних розглянуто нижче) Літерал, інша константа або будь-яка комбінація, яка включає всі арифметичні або логічні оператори, за виключенням оператору Is. |
Змінні використовуються для тимчасового зберігання даних в оперативній пам’яті, тобто вони ідентифікують області в пам’яті, де зберігається деяка інформація. Після того, як змінна об’явлена, вона вказує на одну і ту ж область пам’яті до тих пір, поки вона не буде знищена. VBA дозволяє об’являти змінні двома способами: явно і неявно.
Явне об’явлення змінної означає, що змінна повинна бути об’явлена раніше, ніж її буде використано. Явно змінну можна об’явити одним з наступних способів:
Dim Ім’яЗмінної1 [As Тип 1][, Ім’яЗмінної2 [As Тип2]]…
Private Ім’яЗмінної1 [As Тип 1][, Ім’яЗмінної2 [As Тип2]]…
Static Ім’яЗмінної1 [As Тип 1][, Ім’яЗмінної2 [As Тип2]]…
Public Ім’яЗмінної1 [As Тип 1][, Ім’яЗмінної2 [As Тип2]]…
Параметр |
Опис |
Dim Private, Public, Static
Ім’яЗмінної Тип |
Ключове слово для об’явлення змінних. Якщо Dim було застосоване всередині процедури то це локальне об’явлення (аналогічне Private). Якщо Dim було застосоване в загальній області, це глобальне об’явлення (аналогічне Public). Якщо змінна була об’явлена як Dim, Private, то змінна обнуляється при виході з процедури, де використовується це об’явлення. Якщо змінна була об’явлена як Static, то змінна обнуляється при завершенні роботи проекта. Ключові слова, які визначають де і як можна використати змінну Ім’я змінної, яке задовольняє правилам іменування Тип даних змінної. Для кожної змінної необхідно використовувати структуру As Тип |
Приклад
Dim N As Integer (ціле число).
Dim x У даному випадку відсутній тип даних. Це означає, що змінна за замовчуванням отримує тип Variant (аналог загального формату в Excel, тобто VBA сам буде визначати тип змінної. Наприклад, х = 5, якщо х має тип Variant, то VBA присвоїть x тип Integer або Long).
Неявне об’явлення змінної здійснюється включенням в кінець її імені спеціального символу, який встановлює тип змінної. В цьому випадку змінну немає необхідності об’являти перед тим, як її використовувати. Допустиме використання наступних символів для визначення типів:
-
Спеціальний символ
Тип
%
&
!
#
@
$
Integer
Long
Single
Double
Currency
String
Тип даних визначає множину допустимих значень, які може приймати вказана змінна. В VBA використовуються наступні типи даних:
Тип даних |
Розмір (байт) |
Діапазон значень |
Byte - для зберігання двійкових, вісімкових, шістнадцяткових чисел Boolean – для зберігання логічних змінних Integer (цілий) Long (довге ціле) Single (з плаваючою точкою звичайної точності)
Double (з плаваючої точкою подвійної точності)
Currency (грошовий тип даних) Date (для зберігання дати) String (для зберігання текстових даних) |
1
2
2 4 4
8
8 8 Довжина рядка |
Від 0 до 255
True (False)
Від – 215 до 215 Від –230 до 232 Від – 3,4Е38 до –1,4Е-45 для від’ємних значень. Від 1,4Е-45 до 3,4Е38 для додатних значень Від –1,7Е308 до –4,9Е-324 для від’ємних значень. Від 4,9Е-324 до 1,7Е308 для додатних значень Від – 9,22E+14 до 9,22E+14 Від 1 січня 100р. до 31 грудня 9999р. Від 1 до 216 |
Операції VBA
В програмах на VBA можна використовувати стандартний набір операцій над даними. Існує три типи операцій: математичні (виконуються над числами і їх результатом є числа), відношення (виконуються не лише над числами і їх результатом є логічні значення, наприклад х < у), логічні (застосовуються для логічних виразів і їх результатом є логічні вирази, наприклад Not x And y).
Математичні операції: +, -, *, /, \ (цілочисельне ділення), Mod (залишок від ділення), ^ (піднесення до степені).
Операції відношення: <, >, <=, >=, <> (не рівно), =.
Логічні операції: виконуються з даними логічного типу (boolean).
Операція |
Опис |
[Операнд 1] And [Операнд 2] [Операнд 1] Or [Операнд 2] [Операнд 1] Хor [Операнд 2]
Not [Операнд]
[Операнд 1] Equ [Операнд 2] |
Логічне множення (кон’юнкція) Логічне додавання (диз’юнкція) Виключаюче Or, тобто повертає True тільки тоді, коли один операнд повертає True Логічне заперечення (працює тільки з одним операндом) Логічна еквівалентність |
Нехай ми маємо два вирази: X = (а > b) X = 3 > 2 true
Y = (c = d) Y = 4 = 5 false
Результат обчислення логічної операції, в залежності від значень операндів 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
Пріоритети (старшинство) операторів: арифметичні > порівняльні > логічні.
Арифметичні: виклик функції і дужки, ^, -(зміна знаку), [* ; /], \, mod, [+; -].
Порівняльні: однакове старшинство для всіх
Логічні: Not, And, Or, Xor, Equ.
Вбудовані функції
В VBA є великий набір вбудованих функцій і процедур, використання яких суттєво спрощує програмування. Ці функції можна розділити на наступні основні категорії: математичні функції, функції перевірки типів, функції перетворення форматів, функції обробки рядків, функції дати і часу.
Математичні функції дозволяють проводити будь-які обчислення.
Функція |
Значення, яке повертає функція |
Abs(Number) Atn(Number) Cos(Number) Exp(Number)
Log(Number) Rnd (Number) Sgn (Number) Sin(Number) Sqr (Number) Tan(Number) Fix(Number) Int(Number) |
Модуль (абсолютна величина числа) Арктангенс Косинус Експонента (результат піднесення основи натурального логарифму в указану степінь Натуральний логарифм Рівномірно розподілене випадкове число з інтервалу [0, 1]. Знак числа Синус Квадратний корінь з числа Тангенс Обидві функції Int i Fix відкидають дробову частину і повертають ціле число |
Пояснення.
Різниця між функціями Int i Fix полягає в тому, що для від’ємних значень параметру функція Int повертає найближче від’ємне число, менше або рівне вказаному, а Fix - найближче від’ємне число, більше або рівне вказаному.
Для перерозподілу випадкової величини θ рівномірно розподіленої на інтервалі [0, 1] на інтервал [a, b] необхідно обчислить випадкову величину ζ: ζ = а + (b – a) θ.
Обчислення інших функцій:
, де x – аргумент фукції
ctg(x)=1/tan(x)
arcctg(x)=3.1416/2-atn(x)
lg(x)=log(x)/log(10).