Основи офісного програмування
Офісне програмування - це створення документів. Документ стає первинним, а програма лише його частиною. Інакше розглядається поняття « документ ». Тепер це об'єкт в об’єктно-орієнтованому програмуванні – сукупність даних різного типу і програм для їх обробки. Документ припускає створення організованих, структурованих даних. Під документами Offіce розуміються документи різних типів - документи Word, робочі книги Excel, бази даних Access, презентації PowerPoіnt. У процесі створення документів користувач (програміст) працює з мовою Vіsual Basіc for Applіcatіons (VBA) [3]. Це єдина мова програмування, що поєднує світ об'єктів середовища Offіce. Усі створювані програмні компоненти документа поєднуються в одне ціле, яке має назву « проект ». Проект є частиною документа і не існує поза нього. Переваги офісного програмування для користувача:
- робота в єдиному офісному середовищі;
- єдиний стиль інтерфейсу різних документів;
- можливість створення простих видів документів, не будучи програмістом.
Створення процедур і функцій користувача
Для завантаження VBA потрібно виконати одну з наступних дій:
- натиснути комбінацію клавіш <ALT> + <F11>;
- виконати послідовність команд: Сервис/Макрос/Редактор Visual Basic.
Після цього на екрані монітора з'являється вікно, яке складається з наступних частин: рядок головного меню, що містить команди роботи над проектами; панель інструментів Стандартная, вікно Project, що містить ієрархічну структуру елементів, яка створює проект (якщо воно відсутнє на екрані, його можна вставити, вибравши в меню View(Вид) команду Project - Explorer, либо Ctrl+R).
Потім у вікні VBA виконати Insert (Вставка)/ Module (Модуль). Відбудеться вставка листа модуля, на якому можна ввести текст процедури або функції.
Функція – це підпрограма, яка за допомогою низки операторів виконує обчислювання і повертає результат в головну програму, тобто, у даному разі, в Excel. Загальний вид функції користувача:
Function ІМ'Я_ФУНКЦІЇ(СПИСОК_ПАРАМЕТРІВ)
ТІЛО_ФУНКЦІЇ
End Function
ІМ'Я_ФУНКЦІЇ – це будь-який ідентифікатор, що визначений користувачем.
ІДЕНТИФІКАТОР – це послідовність букв, цифр та символу підкреслювання. Ідентифікатор мусить починатися з букви та не містити у собі пробілів.
СПИСОК_ПАРАМЕТРІВ – перелік імен і типів змінних. Тип змінної може бути відсутній. Тоді приймається тип Variant. Перелік основних типів даних VBA наведено у таблиці 1.2.
ТІЛО_ФУНКЦІЇ – складається з об'яви змінних і констант та блоків операторів. У тілі функції мусить бути хоча б один оператор, що присвоює імені функції значення якого-небудь вираження. Саме ім'я функції є носієм значення, що повертається.
Процедура (підпрограма) це сукупність операторів, які виконують визначені дії. Процедури мають стандартне оформлення:
Sub ІМ'Я_ПРОЦЕДУРИ (СПИСОК_ПАРАМЕТРІВ)
ТІЛО_ПРОЦЕДУРИ
End Sub
Дострокове завершення процедури можливо за допомогою оператора Exit Sub.
Процедура, як і функція, може повертати значення, що присвоюються параметрам усередині процедури. Але, на відміну від функцій, процедури не можна викликати з комірок робочого листка. Процедури – це макроси і їх треба викликати як макроси (Сервис/Макрос/Макросы) або призначати елементам управління, наприклад, кнопкам.
Змінні не обов'язково задавати явно, але красивий стиль програмування рекомендує це робити. Для опису змінної використовується ключове слово Dіm:
Dim A As Integer, B As Currency
Приклад функції для обчислення площі ромба при відомих діагоналях d1, d2:
Function SQ (d1,d2) As Double
SQ = (d1*d2)/2
End Function
Таблиця 1.2
Типи змінних
Тип даних | Розмір (байт) | Діапазон значень |
Byte (байт) | От 0 до 255 | |
Boolean (логічний) | True (Істина) або False (Неправда) | |
Integer (ціле) | От –32 768 до 32 767 | |
Long (довге ціле) | От -2 147 483 648 до 2 147 483 647 | |
Single(з крапкою, що плаває, звичайної точності) | По абсолютній величині від 1,401298E-45 до 3,402823E38 | |
Double(с крапкою, що плаває,подвійної точності) | По абсолютній величині від 4,94065645841247E-324 до 1,79769313486232E308 | |
Currency (грошовий) | Від 922 337 03 685 77,5808 до 922 337 203 685 477,5807 | |
Date (дата) | Від 1 січня 100 р. до 31 грудня 9999 р. | |
Object (об'єкт) | Любий покажчик об'єкта | |
String (рядок перемінної довжини) | 10 + довжина рядка | Від 0 до 2*109 |
String (рядок постійної довжини) | довжина рядка | Від 1 до приблизно 65 400 |
Array (масив) | Залежить від розміру масиву і типу елементів масиву | |
Variant (варіант) | Залежить від умісту перемінної |
Одним з основних понять VBA є об'єкт. Об'єкт - це те, чим можна керувати за допомогою програми на мові VBA, наприклад, діалог, робочий листок, діапазон комірок. Кожен об'єкт має своє ім'я. Нижче приведені деякі убудовані об'єкти VBA.
Range - діапазон комірок (може включати лише одину комірку).
Cells – комірка.
Sheet – листок.
Worksheet – рабочий листок.
Більшість об'єктів належить до груп подібних об'єктів. Ці групи називаються наборами.
Workbooks – робочі книги.
Worksheets – робочі листки.
Sheets – листки.
Набори використовуються одним з двох способів:
1) вибір якогось-небудь конкретного об'єкта (екземпляра):
Worksheets("Баланс")
2) виконання якоїсь дії над всіма об'єктами набору, наприклад, видалення:
WorkSheets("Баланс").Delete
У Excel міститься багато об'єктів, причому деякі з них містять інші об'єкти. Так робоча книга містить робочі листки, робочий листок містить діапазон комірок тощо. Об'єктом найвищого рівня є Applіcatіon (додаток). Це кореневий об'єкт, всі інші є вкладеними в нього.
Таким чином, ім'я об'єкта може включати імена вищестоящих об'єктів, що відокремлюються один від іншого крапкою.
Наприклад:
Application.Workbooks("Lab_VBA").Worksheets("Лаб2"). Delete
Кожен об'єкт має свої властивості, або характеристики, і методи, або команди, що можуть бути застосовані до об'єкта.
Властивість і метод задаються після імені об'єкта через крапку.
Для того щоб установити значення властивості, використовується такий синтаксис:
Об'єкт.Властивість=Вираження Range("A1").Value=0,5
Range("F4").Formula="Сумм(A1:B6)"
Деякі властивості не можна змінювати. Значення властивостей можна прочитати в змінну.
Змінна = Об'єкт.Властивість Summa= Range("F4"). Value
Методи - це те, що можна робити з об'єктом. Наприклад, об'єкт можна вибрати - метод Select, копіювати - метод Copy тощо. Синтаксис приведений нижче:
Об'єкт.Метод Range(A10:B12).Select
Range(F4).Copy
Приклад запису процедури PR, що дозволяє змінити масштаб активного вікна:
Sub PR()
Application.ActiveWindow.Zoom = 150
End Sub
При роботі з об'єктами Excel на рівні додатка, робочої книги і листка до об'єктів можуть застосовані методи і призначені властивості, деякі з яких наведені в таблицях 1.3 – 1.4.
Таблиця 1.3
Методи
Метод | Призначення |
SaveAs | Збереження активної робочої книги у файлі з заданим ім'ям |
Activate | Робить активною зазначену відкриту книгу, листок, діапазон комірок |
Close | Закриття зазначеної робочої книги зі збереженням (True) або без збереження (False) змін |
Open | Відкриття книги, що зберігається у файлі з заданим ім'ям. |
Delete | Видалення листків робочої книги |
Move | Модифікація методу Copy, дозволяє пересунути листок книги в нове положення |
Copy | Дозволяє створити новий листок книги, копіюючи уміст наявного листка |
Quit | Завершує роботу додатка Excel |
Clear | Очищення діапазону |
Select | Виділяє об'єкт |
Calculate | Виконує примусове перерахування всіх робочих аркушів усіх відкритих книг |
Таблиця 1.4
Властивості
Name | Змінює ім'я поточного листка |
Zoom | Збільшує масштаб активного вікна |
Visible | Має значення True, якщо об'єкт видимий, і False - у противному випадку |
Formula | Дозволяє помістити в комірку формулу |
Value | Повертає значення комірки, якщо в ній записана константа. Якщо в комірку записана формула, то властивість поверне результат обчислення по формулі. |
Font | Містить однойменний об'єкт, властивості якого дозволяють задавати параметри шрифту для комірки або діапазону |
Bold | Виділення діапазону або комірки напівжирним накресленням символів |
Size | Визначає розмір шрифту в комірці |
Color | Задає колір тла для комірки або шрифту |
Style | Визначає стиль, заданий для комірок діапазону |