Оператор умовного переходу
Для перевірки умов функції застосовується оператор умовного переходу, він задає виконання визначених груп інструкцій залежно від значення вираження. Синтаксис оператора наступний:
If condition Then [statements] [Else elsestatements]
Якщо умова condition приймає значення True, то виконуються інструкції statements, якщо False, те інструкції elsestatements. Гілка Else є необов'язковою. Допускається також використання блокової форми синтаксису, що спрощує сприйняття оператора умовного переходу. При блоковій організації оператора умовного переходу використовуються ключові слова End If для позначення закінчення оператора:
If condition Then [statements] [Else [elsestatements] ] End If 9.6. Розрахунок комісійних
Необхідно розробити функцію, що дозволяє розраховувати комісійні. Відсоток комісійних залежить від обсягу проданого товару і нараховується за наступним правилом:
Обсяг продажів за тиждень, грн. Комісійні, %
Від 0 до 9 999 8 Від 10 000 до 19 999 10 Від 20 000 до 39 999 12 Більше 40 000 14
Побудуємо для розрахунку комісійних у стандартному модулі користувальницьку функцію:
Function Комиссионные (Продажи) if Продажи <= 9999 Then Комиссионные = Продажи * 0.08 ElseIf Продажи <= 19999 Then Комиссионные = Продажи * 0.1 ElseIf Продажи <= 39999 Then Комиссионные = Продажи * 0.12 Else Комиссионные = Продажи * 0.14 End If End Function
Можна трохи ускладнити завдання: будемо вважати, що комісійні залежать від ставки, займаної менеджером. Якщо він прийнятий у постійний штат фірми, то комісійні нараховуються за описаним вище правилом. Якщо ж він перебуває на іспитовому терміну, то його комісійні становлять 75% від номіналу. Для рішення цього завдання до функції Комиссионные треба додати ще один аргумент – Ставка, що ідентифікує ставку менеджера. Якщо менеджер перебуває на іспитовому терміну, то значення аргументу покладається рівним 0, а якщо він зарахований у штат, то значення аргументу покладається рівним 1. Тоді, функція Комиссионные прийме вид:
Function Комиссионные(Продажи, Ставка) If Продажи <= 9999 Then Оплата = Продажи * 0.08 ElseIf Продажи <= 19999 Then Оплата = Продажи * 0.1 ElseIf Продажи <= 39999 Then Оплата = Продажи * 0.12 Else Оплата = Продажи * 0.14 End If If Ставка = 0 Then Комиссионные = 0.75 * Оплата Else Комиссионные = Оплата End If End Function
Після розрахунку комісійних за допомогою користувальницької функції «Комиссионные» робочий лист буде виглядати так:
Мал. 9.4. Розрахунок комісійних за допомогою функції користувача 9.7. Найпростіша програма на VBA
Напишемо найпростішу програму, результатом дії якої буде відображення на екрані діалогового вікна з вітанням "Hello, World!". Cпочатку перейдіть у редактор Visual Basic, натиснувши комбінацію клавіш <Alt>+<F11>. Потім додайте в проект стандартний модуль, де наберіть наступний код:
Sub Hello () MsgBox "Hello, World!" End Sub
Для запуску програми на виконання натисніть клавішу <F5> або виберіть команду Run -> Run Sub/UserForm.
Мал 9.5. Результат роботи програми на VBA.
У цій програмі відбувається наступне: перший і третій рядки – це перша й остання інструкції продедури, написаної мовою VBA. Процедура на VBA має наступний синтаксис:
Sub name (arglist) [statements] End Sub name – ім'я процедури користувача; arglist –список аргументів, що може бути й порожнім, як у нашому випадку; statements – це послідовність інструкцій. Оператор MsgBox має наступний синтаксис: MsgBox prompt. У результаті його дії на екрані відображається діалогове вікно із кнопкою ОК і повідомленням, текст якого задається параметром prompt (рядок тексту повинний бути в лапках!).
|