Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Excel_3-bd.doc
Скачиваний:
9
Добавлен:
25.11.2019
Размер:
2.42 Mб
Скачать

11. Функції користувача

Функції користувача будуються в модулі редактора Visual Basic for Application. Редактор VBA відкривається командою СервисМакрос Редактор VBA (Ctrl-F11). Вікно редактора VBA складається з трьох частин (рис.14): Project-VBA Project, Properties та вікна розкритого модуля, форми чи процедури.

Вікно Project-VBA Project містить перелік модулів і форм, які входять у проект. Подвійне клацання по імені модуля чи форми призведе до відкриття програмного коду у центральному вікні.

Для створення нового об’єкта потрібно виконати команду InsertModul, InsertUserForm, InsertProcedure.

Функція користувача створюється як модуль у складі книги. Порядок створення функції користувача:

  1. Викликати вікно редактора VBA.

Рис.14

  1. Вставити новий модуль (Insert/Modul).

  2. Ввести програмний код, дотримуючись такої структури:

Function name (arg)

[Statements]

End Function

name – ім’я функції;

arg – аргументи функції, які записуються через кому;

statements – послідовність команд, які складають тіло програми.

  1. Закрити вікно редактора.

  2. Створена функція з’явиться у категорії Функції користувача вікна Майстра функцій.

Приклад 1. Створити функцію користувача для розрахунку комісійних. Комісійні розраховуються залежно від обсягів продаж за правилом: при обсягах продажу від 0 до 9999 відсоток комісійних становить 8%; від 10000 до 19999 – 10 %; від 20000 до 39999 – 12 %; більше 40000 – 14 %.

Розв’язання

В одному з листів книги створити довільну таблицю з прізвищами та обсягами продаж відповідних співробітників (рис.15).

Відкрити вікно редактора VBA командою Сервис МакросРедактор VBA або комбінацією клавіш Ctrl-F11.

Виконати команду InsertModul.

У вікні Properties надати ім’я модулю: FuncPolz.

Рис.15.

У вікні Книга (ім’я) – FuncPolz (Code) ввести програмний код, який складається з послідовності команд (рис.16).

Пояснення по програмному коду:

Початок і кінець функції користувача сприймається програмою за кодовими словами:

Function

End Function

Після кодового слова Function записується її ім’я ( в даному випадку Комис). В дужках записуються аргументи, які має дана функція. В нашому випадку – один аргумент: Продажа.

У тілі програми використовується структура розгалуженого алгоритму: ЯКЩО умова ТО інструкція1 ІНАКШЕ інструкція2. Ця структура описується конструкціями:

1. If умова Then інструкція1 Else інструкція2

Допускається блочна структура запису такої конструкції:

If умова Then

інструкція1

Else

інструкція2

End If

При блочній структурі використовується оператор End If, який визначає завершення оператора If.

Рис.16.

2. If умова1 Then

інструкція1

ElseIf умова2 Then

інструкція2

ElseIf умова3 Then

Інструкція3

End If

Оператор ElseIf використовується при перевірці множинних умов.

Таким чином, зміст програмного коду, який становить тіло нашої функції КОМИС, полягає у таких інструкціях: якщо обсяг продаж є меншим або рівним 9999, то комісійні дорівнюють добутку обсягу продаж на 0,08, інакше (тобто більше 10000), якщо обсяг продаж менший або рівний 19999, то комісійні дорівнюють добутку обсягу на 0,1, інакше (тобто більше 20000) якщо обсяг продаж менший або рівний 39999, то комісійні дорівнюють добутку обсягу на 0,12, інакше (тобто більше 40000) комісійні дорівнюють добутку обсягу на 0,14.

Наступним кроком є закриття вікна редактора.

Щоб використати щойно створену функцію, потрібно у вікні майстра функцій вибрати категорію Определенные пользователем, вибрати ім’я функції Комис.

У вікні аргументів буде лише один аргумент Продажа, яким є адреса клітинки з цифрою обсягу продаж (у даному випадку В2).

Приклад 2. Створити функцію користувача для розрахунку комісійних. Комісійні для штатних менеджерів розраховуються за правилом попередньої задачі, а якщо менеджер працює не в штаті фірми, то він отримає 75 % від номінальних комісійних.

Розв’язання

Така функція користувача повинна містити два аргументи: обсяг продаж і ставка. Ставка буде визначати є співробітник штатним чи ні.

Програмний код матиме такий вигляд:

Використовувати функцію можна аналогічно до описаного вище.

Рис.17.Результати застосування функції КомисСт

Соседние файлы в предмете [НЕСОРТИРОВАННОЕ]