Функції для роботи з рядковими величинами
Основою обчислень є змінні. Вони служать джерелом обчислень, місцем зберігання даних і результатів програми. Кожна змінна має тип. За замовчуванням всі дані мають тип Variant. Стандартні типи даних наведено у таблиці 4. Таблиця 4
Кожну змінну треба описати на початку модуля або підпрограми (хоч формально це не обов’язково). Змінні бувають прості і складені. Опис простої змінної відбувається за такою схемою: Dim < ім’я змінної> as < тип змінної>. Тип змінної може бути описаний одним із варіантів: Byte - мале ціле число без знаку (от 0 до 255), що займає в пам’яті 1 байт Integer - середнє ціле число із знаком (от –32768 до 32767), що займає в пам’яті 2 байта Long - велике ціле число, що займає в пам’яті 4 байта Single - число с плавающою точкою, що займає в пам’яті 4 байта Double - число с плавающою точкою, що займає в пам’яті 8 байт Currency - велике число у грошовому форматі, що займає в пам’яті 8 байт Decimal - число с плавающою точкою, що займає в пам’яті 10 байт Date - дата або час, що займає в пам’яті 8 байт Boolean - логічна змінна, що може набувати два значення: True і False, що займає 2 байта String - рядоксимволів довільної довжини (1 байт на 1 символ) String *k - рядоксимволів фіксованої довжини k (k – будь-яке число) Variant - змінна може набувати будь-яке значення, не менше 16 байт пам’яті. Для оголошення простої змінної треба вказати її ім’я, наприклад: Dim k as Byte Dim inn as Integer, j as Integer, MyStage as Long Dim ss as String, s5 as String *5 Dim x1, x2 as Double, x3 as Variant В останньому рядку для змінної x1 тип не задано, а це означає, що за замовчуванням вона одержує тип Variant (а не тип Double, як змінна x2). Можно задати константу – величину з визначеним значенням, що не змінюється: Const pi as double = 3.1415926 Використання змінної без попереднього оголошення є її неявним оголошенням. Якщо змінна має спеціальні кінцеві символи - суфікси, то тип визначається за суфіксом, в разі його відсутності, змінній буде надано тип Variant. Типи даних з відповідними суфіксами наведено у таблиці 5. Таблиця 5
Явне оголошення змінних здійснюється за допомогою ключових слів або з використання суфіксів. Службові слова мають такий формат: Dim ім’я_змінної [As тип_даних]- для оголошення локальної змінної – видимої тільки у цій процедурі, при виході з процедури її значення буде втрачено. Public ім’я_змінної [As тип_даних]- для оголошення глобальної змінної – видимої у всіх процедурах усіх модулів. Вона може бути оголошена у стандартному модулі. У процедурах обробки подій об’єктів форми можуть оголошуватись тільки локальні змінні, а використовуватись можуть і глобальні змінні даного проекту. Приклади: Dim Сost As Currency; Public a, b, KrokZm As Single Явне оголошення змінних з використання суфіксів наведено у таблиці 6. Таблиця 6
За допомогою одного оператора можна оголошувати декілька змінних одного типу, розділяючи їх комами. Будь-яка програма - додаток, розроблена мовою VBA називається проектом. Всі елементи проекту - класи, модулі, форми, структурні обєкти даного додатку - знаходяться в одному документі. Структурною одиницею програми є модуль. Модуль складається з оголошення змінних модуля та підпрограм і функцій. Підпрограми і функції, в свою чергу, складаються із заголовка, оголошення змінних підпрограми і виконуваних операторів програми. Текст програми складається з рядків, що є операторами мови програмування. До модуля можуть належати процедури та функції. Процедура VBA – це іменована сукупність операторів VBA, що виконує визначену задачу і є найменшим виконуваним блоком програмного коду VBA. Оператор VBA – це команда, записана мовою VB або виклик процедури. Всього є п’ять видів операторів: оператор присвоювання, умовний оператор, оператор циклу, оператор безумовного переходу і оператор виклику процедури. Оператор присвоювання надає змінній значення, обчислене за деякою формулою і має вид: < змінна> = < вираз> Вираз містить числа, константи, прості змінні, елементи масиву, круглі дужки та стандартні математичні функції., об’єднані знаками арифметичних операцій, наприклад: k = 4 inn = 457 - k ss = “Сообщение об ошибке: ” ainn (45) = (4567*k – inn)*x1(3)*cos(x3(3)) x2 (0) = 2.71 pr_equip.cod = 12 – x2(0) pr_equip.price = 2*sin(2*j) – pr.tax Якщо оператор не поміщається на один рядок, то він переноситься на наступний рядок за допомогою символа підкреслення «_», відділеного від тексту оператора пропуском. Наприклад: d@ = a@ * (1 + b! / 100) _ ^ c! Після кожного оператора в тому ж рядку може бути коментар – пояснення до опису змінної або суті операції. Для вставки коментарю використовують одинарні лапки або ключевое слово Rem: < оператор> ‘< текст коментарю> < оператор> Rem < текст коментарю> Приклад лінійної програми (процедури), записаної мовою Visual Basic: Private Sub Prog1 a@ = Val(Text2.Text) b! = Val(Text4.Text) c! = Val(Text3.Text) d@ = a@ * (1 + b! / 100) ^ c! Print d@ End Sub У коді процедури використана стандартна функція Val, яка перетворює текст (символьний рядок) у текстовому вікні у числове значення. Для програмування розгалужень використовуються оператори умовного переходу та оператор вибору: 1) If … Then - перевіряється одна умова і виконується один оператор чи блок операторів. Синтаксис: If < умова> Then < оператор> або з декількома операторами If < умова> Then < Блок операторів> End If 2) If … Then … Else - перевіряється одна умова і виконується один із двох блоків операторів. Синтаксис: If умова Then < Блок операторів 1> Else < Блок операторів 2> End If 3) If … Then … ElseIf - перевіряється кілька умов і виконується один з декількох блоків операторів. Синтаксис: If < умова1> Then < Блок операторів 1> ElseIf < умова2> Then < Блок операторів 2> ElseIf < умова3> Then < Блок операторів3> … Else < Блок операторів_n> End If 4) Select Case – оператор вибору, перевіряється одна умова і виконується один з декількох блоків операторів. Оператор заміняє серію операторів ElseIf, якщо один і той же вираз порівнюється з декількома значеннями Синтаксис: Select Case < вираз> Case < значення1> < Блок операторів 1> Case < значення2> < Блок операторів 2> … Case Else < Блок операторів N> End Select Приклад програми розгалуженої структури з використанням оператора if - then: Private Sub Prog2 ’Квадратне рівняння Dim a, b, c, D, x1, x2 As Double a = Val(InputBox(" Введіть значення а", a)) b = Val(InputBox(" Введіть значення b", b)) c = Val(InputBox(" Введіть значення c", c)) D = b * b - 4 * a * c If D < 0 Then print (" Розв'язків не існує") If D > = 0 Then MsgBox " Існує два розв." x1 = (-b - Sqr(D)) / (2 * a) x2 = (-b + Sqr(D)) / (2 * a) Print " x1=", x1,, " x2=", x2 End If End Sub Приклад програми розгалуженої структури з використанням вказівки Select Case:
Dim Y As Variant, X As Double X = Val(Text1.Text) Select Case X Case 0 To 1 Y = 5 * X Case 1 To 10 Y = X + 10 Case Is > 10 Y = Sin(3 * X) Case Else Y = " Не визначена" End Select Print " X="; X; " Y="; Y End Sub
|