- •Основи офісного програмування
 - •Створення процедур і функцій користувача
 - •Методичні рекомендації до виконання завдання № 1
 - •Використання інструкцій vba
 - •Методичні рекомендації до виконання завдання № 2
 - •Технологія виконання завдання
 - •Створення інтерфейсу користувача
 - •Методичні рекомендації до виконання завдання №3
 - •Технологія виконання завдання
 
Основи офісного програмування
Офісне програмування - це створення документів. Документ стає первинним, а програма лише його частиною. Інакше розглядається поняття «документ». Тепер це об'єкт в об’єктно-орієнтованому програмуванні – сукупність даних різного типу і програм для їх обробки. Документ припускає створення організованих, структурованих даних. Під документами 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 (байт)  | 
		1  | 
		От 0 до 255  | 
	
Boolean (логічний)  | 
		2  | 
		True (Істина) або False (Неправда)  | 
	
Integer (ціле)  | 
		2  | 
		От –32 768 до 32 767  | 
	
Long (довге ціле)  | 
		4  | 
		От -2 147 483 648 до 2 147 483 647  | 
	
Single(з крапкою, що плаває, звичайної точності)  | 
		4  | 
		По абсолютній величині від 1,401298E-45 до 3,402823E38  | 
	
Double(с крапкою, що плаває,подвійної точності)  | 
		8  | 
		По абсолютній величині від 4,94065645841247E-324 до 1,79769313486232E308  | 
	
Currency (грошовий)  | 
		8  | 
		Від 922 337 03 685 77,5808 до 922 337 203 685 477,5807  | 
	
Date (дата)  | 
		8  | 
		Від 1 січня 100 р. до 31 грудня 9999 р.  | 
	
Object (об'єкт)  | 
		4  | 
		Любий покажчик об'єкта  | 
	
String (рядок перемінної довжини)  | 
		10 + довжина рядка  | 
		Від 0 до 2*109  | 
	
String (рядок постійної довжини)  | 
		довжина рядка  | 
		Від 1 до приблизно 65 400  | 
	
Array (масив)  | 
		Залежить від розміру масиву і типу елементів масиву  | 
	|
Variant (варіант)  | 
		Залежить від умісту перемінної  | 
	|
Одним з основних понять VBA є об'єкт. Об'єкт - це те, чим можна керувати за допомогою програми на мові VBA, наприклад, діалог, робочий листок, діапазон комірок. Кожен об'єкт має своє ім'я. Нижче приведені деякі убудовані об'єкти VBA.
Range - діапазон комірок (може включати лише одину комірку).
Cells – комірка.
Sheet – листок.
Worksheet – рабочий листок.
Більшість об'єктів належить до груп подібних об'єктів. Ці групи називаються наборами.
Workbooks – робочі книги.
Worksheets – робочі листки.
Sheets – листки.
Набори використовуються одним з двох способів:
вибір якогось-небудь конкретного об'єкта (екземпляра):
Worksheets("Баланс")
виконання якоїсь дії над всіма об'єктами набору, наприклад, видалення:
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  | 
		Визначає стиль, заданий для комірок діапазону  | 
	
