
- •Лабораторна робота 1 Ієрархічна структура об'єктів vba. Властивості і методи
- •Продовження табл. 2
- •Закінчення табл. 2
- •Лабораторна робота 2 Організація програм у vba. Редактор Visual Basic
- •Лабораторна робота 3 Типи змінних. Тип даних, обумовлений користувачем. Змінна типу Оbject. Константи.
- •Лабораторна робота 4 Область дії змінної. Персистенція
- •Лабораторна робота 5 Оператори мови vba
- •Лабораторна робота 6 Масиви. Опис і створення масивів. Динамічні масиви
- •Лабораторна робота 7 Масив і діапазон робочого листа. Функції для роботи з масивами
- •Лабораторна робота 8 Убудовані функції vba. Функції користувача
- •Процедура повинна:
- •Лабораторна робота 9 Використання If і Select Case у функціях користувача
- •Лабораторна робота 10 Форма користувача
- •Лабораторна робота 11 Елементи керування
- •Лабораторна робота 12 Робота зі списками
- •Лабораторна робота 13 Розв’язання рівнянь методом послідовних наближень
- •Лабораторна робота 14 Використання методу ChartWizard і вбудованих математичних функцій для виконання фінансових розрахунків
- •Задачі для самостійного розв’язання
- •Список рекомендованої літератури Основна
- •Додаткова
Лабораторна робота 3 Типи змінних. Тип даних, обумовлений користувачем. Змінна типу Оbject. Константи.
У VBA існують такі типи змінних (табл.10)
Таблиця 10
Тип |
Опис |
Boolean |
Логічний |
Integer |
Ціле |
Long |
Довге ціле |
Single |
З крапкою, що плаває |
Double |
З крапкою подвійної точності, що плаває |
Currency |
Грошовий |
Date |
Дата й час |
String |
Рядок змінної й постійної довжини |
Object |
Об'єкти |
Type |
Тип даних, визначений користувачем |
Variant |
Будь-якого з типів, крім типу, визначеного користувачем |
Синтаксис опису змінних:
dim <ім'я змінної> as <тип>, <ім'я змінної> as <тип>, ...
Опис розташовується в будь-якім місці програми, до першого використання описуваної змінної.
Опис не є обов'язковий, за замовчуванням будь-яка неописана змінна має тип Variant. Цей тип корисно використовувати, якщо необхідно зберегти змінну, тип якої невідомий заздалегідь. У подібних випадках корисно також використовувати вбудовані функції перетворення типів (табл.11).
Таблиця 11
Функція |
До якого типу перетворює |
CBool |
Boolean |
CCur |
Currency |
CDate |
Date |
CLng |
Long |
CInt |
Integer |
CDbl |
Double |
CVar |
Variant |
CStr |
String |
Csng |
Single |
Також під час налагодження програм часто необхідна опція Орtіоn Ехрlісіt, що вимагає явного опису всіх змінних.
Синтаксис опису змінної типу Оbjесt:
dim < ім'я змінної> as object
set <ім'я змінної> = <ім'я типу>
Приклад 1
dim a as object
set a = worksheets(1).range (“A1”)
Швидкодія програми збільшиться, якщо під час опису використовується явна назва типу об'єкта.
Приклад 2
dim a as range
set a = range (“A1:B5”)
Наступний приклад ілюструє переваги опису змінної з точною назвою типу об'єкта. У програмі використовуються 2 змінних типу Object для обміну даними між чарунками А1 і А2 першого робочого листа. Цикл повторюється 2000 разів. У програмі використовуються вбудовані функції:
Timer - повертає число секунд, що пройшли після опівночі.
Chr (s) – повертає символ, що відповідає коду-аргументу s. Наприклад, Chr (13) – повертає переклад каретки (натискання клавіші “enter”).
Msgbox ( текст повідомлення, кнопки, заголовок вікна) – виводить діалогове вікно з текстом повідомлення. Перший елемент обов'язковий.
& - операція конкатенації рядків.
Докладніше ці й інші функції будуть розглянуті пізніше.
Приклад 3
public sub pr1()
dim a as object
dim b as object
dim c as variant 'стартовий час
dim x as integer
set a = worksheets(1).range(“A1”)
set b = worksheets(1).range(“A2”)
c = timer ‘присвоєння з поточного часу в секундах
for x = 1 to 2000
a.value = 10
b.value = a.value
next x
msgbox (timer-c) & “ seconds” ‘рахунок і висновок часу виконання
end sub
Запустимо програму 2 рази. Запишіть отримані результати.
Змінимо в програмі 2 рядки
dim a as range
dim b as range
Запустимо програму на виконання. Зафіксуємо й порівняємо результати.
Тип даних, визначений користувачем, описується на початку модуля й має рівень дії, дорівнюючий рівню проекту, представляє сукупність декількох елементів, кожний з яких може мати свій тип і розмірність.
Синтаксис:
type <ім'я типу>
<ім'я елемента> as <тип> ‘опис типів простих змінних
…
<ім'я елемента> [(розмірність)] as <тип>
end type
Приклад 4
type anketa
a_name as string
a_age as integer
a_birth as data
end type
sub pr2()
dim b as anketa
b.a_name = “anton”
b.a_age = 19
b.a_birth = #01/01/99#
msgbox (“прізвище” & b.a_name & chr(13) & “вік” & b.a_age & _
chr (13) & “день народження” & b.a_birth)
end sub
Константи, на відміну від змінних, не змінюють значень. Значення привласнюється під час опису.
Синтаксис:
const <ім'я константи> [ as <тип>] = <вираз> ,
де <вираз> - літерал (тобто числове, строкове чи логічне значення), інша константа чи їх сполучення, що включає арифметичні й логічні операції.
Приклад 5
const rate as single = 0.2
const firm = “MMM”
У VBA є велика колекція вбудованих констант, у тому числі і з додатка Excel, які необов'язково пам'ятати. Знайти й переглянути їх можна в Object Browser. Убудовані константи VBA мають префікс vb, Excel – xl, Word – wd.
Приклад 6
Об’єкт Font має властивість Underline, що встановлює чи знімає підкреслення шрифту. Припустимими значеннями цієї властивості є убудовані константи Excel:
xlUnderlineStyleNone – немає підкреслення
xlUnderlineStyleSingle – одинарне підкреслення
xlUnderlineStyleDouble – подвійне підкреслення
та ін. Наприклад:
ActiveCell.Font.Underline=xl XlUnderlineStyleSingle
Завдання до лабораторної роботи 3
Виконати й описати результати у звіті для прикладів 3, 4
Створити свій користувальницький тип і програму, що його використовує.