Створення процедур і функцій користувача

Основи офісного програмування

Офісне програмування - це створення документів. Документ стає первинним, а програма лише його частиною. Інакше розглядається поняття « документ ». Тепер це об'єкт в об’єктно-орієнтованому програмуванні – сукупність даних різного типу і програм для їх обробки. Документ припускає створення організованих, структурованих даних. Під документами 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 Визначає стиль, заданий для комірок діапазону

Понравилась статья? Добавь ее в закладку (CTRL+D) и не забудь поделиться с друзьями:  



double arrow
Сейчас читают про: