Студопедия.Орг Главная | Случайная страница | Контакты | Мы поможем в написании вашей работы!  
 

Лабораторна робота №6. Тема: Створення функцій користувача



Тема: Створення функцій користувача.

Мета роботи: Ознайомитися з поняттям функції користувача, навчитися будувати власні функції

Вони створюються в стандартному модулі редактора VBA. Для входу в редактор треба вибрати команду: Сервіс\Макрос\Редактор Visual Basic або натиснути комбінацію клавіш Alt+F11. У результаті ви потрапляєте в середовище розробки додатків – редактор Visual Basic. Воно має стандартний вигляд для Windows – додатків: рядок меню, панель інструментів (Standart) і два вікна Projekt – VBAProjekt й Propetiers.

Нас у першу чергу цікавить стандартний модуль. Для того щоб його додати в проект, треба набрати команду Insert Module.

Структура коду функції користувача:

Function name (arglist)

[statements]

End Function

де name – ім'я функції користувача;

arglist – список аргументів;

statements – послідовність інструкцій, що виконуються при знаходженні значення функції.

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

Приклад 1. Побудуємо функцію, що повертає вартість товару по його вартості без ПДВ і значенню ставки ПДВ. Наберемо наступний код:

Function Вартість (Вартість_без_ПДВ, ПДВ)

Вартість=Вартість_без_ПДВ*(1+ПДВ/100)

End Function

При правильному наборі першого рядка й натисканні клавіші Введенняостання інструкція End Function створюється редактором VBA автоматично. Створена функція за замовчуванням попадає в розділ Визначені користувачем списку Категорія вікна Майстер функцій.

Знайдемо вартість товару з урахуванням ПДВ, якщо його вартість без обліку ПДВ дорівнює 3000 грн., а ПДВ дорівнює 20%.

Для цього:

1. В комірку A1 ввести текст «Вартість без ПДВ».

2. В комірку B1 ввести текст «ПДВ».

3. В комірку C1 ввести текст «Вартість».

4. В комірку A2 ввести число – 3000.

5. В комірку B2 ввести – 20.

6. Виділити комірку C2.

7. Виконати команду Вставка\Функція.

8. У першому вікні Майстра функцій у списку Категорія знайти значення Визначені користувачем, а потім у списку Функція вибрати Вартість і натиснути кнопку Ok.

9. У другому вікні Майстра функцій у поле Вартість_без_ПДВ ввести посилання на комірку A2, а в поле ПДВ – посилання на комірку B2, Ok.

Приклад 2. Створити таблицю і функцію користувача, що нараховує премії за підсумками роботи мережі N магазинів з липня по листопад за такими правилами:

– Якщо продукції продано менше чим на 6500 грн., то комісійні складають 1%;

– За перше місце автоматично нараховується 5%, за друге – 2,5%;

– За трете – 1,25%.

Прибуток кожного магазину за липень, серпень, вересень, жовтень і листопад задається довільно. Потім підсумовується прибуток для кожного магазину за вказаний період з липня по листопад.

Для обчислення загальних комісійних, а також комісійних за перше і друге місця використовується функція ЕСЛИ (...). Якщо сумарна виручка не менше контрольної, то сумарна виручка множиться на загальний відсоток і ділиться на 100.

Для обчислення премії за перше місце за допомогою функції МАКС (МАССИВ ЗНАЧЕНИЙ СУММАРНОЙ ВЫРУЧКИ) знаходиться максимальне значення сумарної виручки, множиться на відсоток за перше місце і ділиться на 100.

Премія за друге місце обчислюється за допомогою функції НАЙБОЛЬШИЙ (МАССИВ ЗНАЧЕНИЙ СУММАРНОЙ ВЫРУЧКИ; 2), яка дозволяє визначити друге найбільше значення сумарної виручки. Сумарна премія є сума всіх комісійних. Початкові дані наведені в таблиці 6.1.

Таблиця 6.1 – Вихідні дані

Мага зин Виручка за липень Виручка за серпень Виручка за вересень Виручка за жовтень Виручка за листопад Сумарна виручка Премія
  2 957 46 342 62 977 68 739 44 884 =СУММ(C4:G4) =премія(H4;C12;D12;E12;F12;G12;J4)
  21 204 3 923 8 059 4 806 47 516 =СУММ(C5:G5) =премія(H5;C12;D12;E12;F12;G12;J5)
  67 291 6 715 50 499 7 009 5 855 =СУММ(C6:G6) =премія(H6;C12;D12;E12;F12;G12;J6)
  82 086 50 638 79 047 16 210 44 941 =СУММ(C7:G7) =премія(H7;C12;D12;E12;F12;G12;J7)
  5 664 3 099 30 918 5 243 6 676 =СУММ(C8:G8) =премія(H8;C12;D12;E12;F12;G12;J8)

Текст функції:

Private Function премия(prod As Double, C As Double, i As Double, j1 As Double, j2 As Double, j3 As Double, mesto As Double) As Double

Dim temp As Double

If mesto = 1 Then

temp = prod * j1 / 100

End If

If mesto = 2 Then

temp = prod * j2 / 100

End If

If mesto = 3 Then

temp = prod * j3 / 100

End If

If mesto > 3 Then

temp = 0

End If

If C <= prod Then

Премия = prod * i / 100 + temp

Else

Премия = 0 + temp

End If

End Function

Результати обчислення наведені в таблиці 6.2.

Таблиця 6.2 – Результати обчислення





Дата публикования: 2015-04-10; Прочитано: 253 | Нарушение авторского права страницы | Мы поможем в написании вашей работы!



studopedia.org - Студопедия.Орг - 2014-2024 год. Студопедия не является автором материалов, которые размещены. Но предоставляет возможность бесплатного использования (0.01 с)...