Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
ОБЩИЙ_файл_ПОСОБИЕ.doc
Скачиваний:
0
Добавлен:
01.05.2025
Размер:
22.69 Mб
Скачать

Function ЗнижкиРазгал(X As Currency,y As String,z As Boolean) _ As Currency

Під формальним параметром x цієї функції розуміється вартість товару, під параметром y – тип покупця, а під параметром z – стан елемента CheckBox.

На рис. 5.51 представлений програмний код функції, що забезпечує розрахунок і підсумовування знижок на вартість покупки, на тип покупця й на день тижня, а також вибір режиму знижок та пошук найбільшої знижки. У програмному коді розрахунку кожної зі знижок передує відповідний коментар.

Функція, що створена, також включається в список функцій додатку MS Excel в категорію "Определенные пользователем" і може бути використана для розрахунків.

'Функція для розрахунку знижок з варіантами а)на обсяг покупок,

'б)тип покупця й 3)на день тижня

Option Explicit

Function ЗнижкиРазгал(x As Currency, Код_покупателя As String, _

z As Boolean) As Currency

Dim SngSk1 As Single, SngSk2 As Single, SngSk3 As Single

Dim SngSk As Single, CurSkidka As Currency

Dim StrKodPok As String, BlnVariant As Boolean

StrKodPok = Код_покупателя

BlnVariant = z

'Розрахунок знижки на обсяг покупки

If x < 100 Then

SngSk1 = 0

ElseIf x < 500 Then

SngSk1 = 5

ElseIf x < 1000 Then

SngSk1 = 10

Else

SngSk1 = 15

End If

'Розрахунок знижки на тип покупця

Select Case StrKodPok

Case Is = "ТП-01"

SngSk2 = 0

Case Is = "ТП-02"

SngSk2 = 3

Case Is = "ТП-03"

SngSk2 = 5

Case Is = "ТП-04"

SngSk2 = 10

End Select

'Розрахунок знижки на день тижня

SngSk3 = IIf(Weekday(Date, vbMonday) = 1, 5, 0)

'Вибір режиму знижок (всі або максимальна)

If BlnVariant = True Then

CurSkidka = x * (SngSk1 + SngSk2 + SngSk3) / 100

Else

If SngSk1 > SngSk2 And SngSk1 > SngSk3 Then

SngSk = SngSk1

ElseIf SngSk2 > SngSk3 Then

SngSk = SngSk2

Else

SngSk = SngSk3

End If

CurSkidka = x * SngSk / 100

End If

ЗнижкиРазгол = CurSkidka

End Function

Рис. 5.51. Програмний код функції "ЗнижкиРазгал"

Технологія використання користувацької функції "ЗнижкиРазгал". При формуванні відомості продаж ця функція може бути використана для розрахунку значень у полі "Знижки (макс), грн" (див. рис. 5.49) с заміною формальних параметрів фактичними. Так для клітинки J4 електронної таблиці посилання на дану функцію буде мати такий вигляд:

=ЗнижкиРазгал(F4;G4;$C$1),

де F4 – комірка, у якій міститься вартість товару;

G4 – комірка, у якій міститься код типу покупця;

$C$1 – комірка, у якій міститься логічне значення відповідно до стану елементу управління CheckBox (адреса цієї комірки абсолютна).

Розрахунок значень у полі "До сплаты2, грн." з урахуванням всіх знижок як різниця між вартістю товару й сумарною знижкою виконується по такій формулі:

=F4-J4.

Реалізація проекта

1. Завантажити додаток MS Excel.

2. На окремих листах книги розробити й заповнити довідковими даними таблиці відповідно до постановки завдання "Прайс-лист", "Знижка на обсяг" та "Знижка на тип покупця".

3. На окремому листі сформувати структуру підсумкової таблиці «Відомість продаж».

4. Сукупністю клавіш <Alt+F11> викликати інтегроване середовище програмування VBA.

5. Виконати команду Module меню Insert і у вікні програмного коду, що з'явиляється, набрати код функції "Знижки1".

6. Ще раз виконати команду Module меню Insert і у вікні програмного коду, що з'явилося, набрати код функції "ЗнижкиРазгал".

7. Для першого рядка таблиці "Відомість продаж" ввести відповідні функції с заміною формальних параметрів на фактичні та формули, а потім скопіювати їх у інші рядки таблиці.

8. Дані у полях таблиці "Відомість продаж" відформатувати і підготовити для друку.

Аналіз проекту

При вирішенні задачі формування відомості продаж за заданий період часу повинні бути введені вхідні дані у вигляді кодів проданих товарів і їх кількість, а також коди типів покупців. Крім того, за допомогою елемента управління CheckBox повинен бути встановлений діючий режим знижок.

Внаслідок того, що для розрахунку вартості товарів і знижок у проекті використовуються стандартні й користувацькі функції, система автоматично виконає обчислення. При уведенні в комірку користувацької функції так само, як і стандартної, системою відображається діалогове вікно (рис. 5.52), за допомогою якого формальні параметри цих функцій заміняються фактичними. Ця заміна звичайно виконується клацанням миші по відповідної комірки таблиці.

Рис. 5.52. Діалогове вікно для введення фактичних параметрів

У зв'язку з тим, що даний проект носить навчальний і дослідницький характер, у ньому передбачені різні варіанти знижок. Для реального проекту деякі поля підсумкової таблиці можуть бути вилучені, а деякі нормативні показники довідкових таблиць наведені у відповідність із реальною ситуацією.

Крім того, користувачеві, що має навички програмування в програмному середовищі VBA, не важко буде адаптувати користувацькі функції до реальних умов. Для цього сукупністю клавіш <Alt+F11> потрібно викликати вікно програмного коду і ввести відповідні коректури в модулі.

У розглянутому прикладі не показана технологія одержання підсумкових результатів. Користувачі, які мають навички роботи в середовищі MS Excel, зможуть вирішити це завдання самостійно, використовуючи стандартну функцію =СУММ(x:y), де x і y – імена граничних комірок діапазону. Це ж ставиться й до технології форматування елементів підсумкової таблиці.

Виконання проекту й аналіз отриманих результатів

Результат виконання проекту при навчальному наборі довідкових і нормативного даних, а також після введення вхідних даних у підсумкову таблицю (коди проданих товарів, коди типів покупців, режим організації знижок) представлений у вигляді підсумкової таблиці «Відомість продаж» для ситуації, коли обраний режим використання всіх знижок (рис. 5.53) або режим використання максимальної знижки (рис. 5.54).

Рис. 5.53. Відомість продаж у режимі підсумовування знижок

Рис. 5.54. Відомість продаж у режимі вибору максимальної знижки

З метою аналізу результатів використання різних знижок у таблицях передбачені додаткові поля для порівняння результатів розрахунків. Зміст цих полів залежить від обраного режиму знижок. При виборі певного режиму знижок деякі поля можуть бути вилучені.

На рис. 5.55 представлений технологічний документ із відображенням системних і користувальницьких функцій, що забезпечують формування підсумкового документа.

При формуванні елементів цього документа для зручності її друкування більшість формул "обрізане". Для перегляду формул повністю необхідно скористатися їх описом, що представлено вище.

Рис. 5.55. Відомість продаж у режимі відображення формул

Для ідентифікації фактичних параметрів функцій на цьому рисунку відображені заголовки рядків і стовпців.