- •7.050105 “Банківська справа”, 7.050104 “Фінанси”
- •Донецьк 2005
- •1 Створення програм у середовищі Visual Basic 6.0. Основні поняття - об'єкт, властивість, подія.
- •1.1 Візуальне створення програми
- •1.2 Створення вихідного коду
- •1.3 Контрольні запитання
- •1.4 Практичні завдання
- •1.5 Тест
- •2 Основні оператори мови
- •2.1 Організація розгалужених обчислювальних процесів
- •2.1.1 Умовний оператор If
- •If умова Then
- •2.1.2 Оператор варіанти Select Case
- •2.2 Організація циклічних обчислювальних процесів
- •2.2.1 Оператор циклу For . . . Next
- •Частина початкового рядка циклу Step n може бути пропущена, коли крок зміни перемінної циклу дорівнює одиниці. Приклад використання циклу For … Next
- •2.2.2 Оператор циклу Do While . . . Loop
- •2.2.3 Оператор циклу Do. . . Loop While
- •2.3 Контрольні запитання
- •2.4 Практичні завдання
- •2.5 Тест
- •3 Використання елементів управління в програмах. Робота з формами. Поняття методу
- •3.1 Елементи управління - смуги прокручування, перемикачі, прапорці, групи, списки, що розчиняються
- •3.2 Робота з формами. Поняття методу
- •Приклад програми
- •3.2 Контрольні запитання
- •3.4 Практичні завдання
- •3.5 Тест
- •4 Управління програмою за допомогою меню. Робота з масивами елементів управління, змінних
- •4.1 Управління програмою за допомогою меню
- •4.2 Робота з масивами елементів управління, змінних
- •4.3 Контрольні запитання
- •4.4 Практичні завдання
- •Картка кількісного обліку товарів
- •Аналіз виконання плану товарообігу за структурою
- •Відомість розрахунків покупців по кредитах
- •Відомість результатів інвентаризації товарів
- •Рахунок-фактура
- •Відомості про вибірку фондів по плодоовочевим культурам за декаду
- •Відомість залишків основних фондів
- •Реєстр листків по тимчасовій непрацездатності
- •Відомість відрахувань із зарплати
- •Меню на відпустку харчування співробітникам столової
- •Аналіз забезпеченості кадрами
- •4.5 Тест
- •5 Розробка програм з використанням підпрограм – процедур і функцій, вікон повідомлень
- •5.1 Підпрограми – процедури і функції
- •5.2 Вікна повідомлень
- •Коди сполучень кнопок у вікні повідомлення
- •Коди значків у вікні повідомлення
- •Приклад програми з використанням підпрограм, вікон повідомлень
- •5.3 Контрольні запитання
- •5.4 Практичні завдання
- •5.5 Тест
- •6 Робота з файлами
- •6.1 Файли довільного доступу
- •6.2 Файли послідовного доступу
- •6.3 Бінарні файли
- •Приклад виконання програми роботи з файлом
- •5.4 Контрольні запитання
- •5.5 Практичні завдання Завдання №1
- •Завдання №2
- •Завдання №3
- •7 Використання Visual Basic for Application у Microsoft Excel
- •7.1 Основні поняття
- •7.2 Редактор vba
- •7.3 Створення функцій користувача
- •7.4 Автоматизація розрахунків на робочому листі
- •7.5 Робота з формами у середовищі vba
- •7.6 Контрольні запитання
- •7.7 Практичні завдання
- •7.8 Тест
- •Література
- •7.050105 “Банківська справа”, 7.050104 “Фінанси”
Приклад програми з використанням підпрограм, вікон повідомлень
Як приклад розглядається програма, яка дозволить ввести данні в масив записів з полями для збереження прізвищ та ініціалів співробітників, сум нарахованої заробітної плати. При введенні значень нарахованої заробітної плати програма повинна перевіряти значення і, якщо введено від’ємне число видавати повідомлення та знищувати уміст текстового поля. Командами меню Вікно користувач повинен мати змогу Очистити таблицю, підсумок або таблицю і підсумок, завершити роботу програми. Режим меню Розрахунок дає змогу визначити суму нарахування з фонду заробітної плати у пенсійний фонд (32% від загальної суми нарахувань), у фонд соціального страхування (4,4% від загальної суми нарахувань), у фонд зайнятості (0,5% від загальної суми нарахувань).
|
|
Рисунок 5.1 - Види вікна програми – приклада
На етапі візуальної розробки програми слід створити форму, розташувати на неї елементи управління, визначити їх властивості у відповідності з даними таблиці:
Об’єкт |
Властивість |
Значення |
Форма (Form) |
Name |
frmMain |
Caption |
Виплати з фонду заробітної плати |
|
Font |
Times New Roman, 12 п., напівжирний |
|
Етикетка (Label) |
Name |
lblZag |
Caption |
Введіть дані для розрахунку: |
|
Font |
курсив |
|
Етикетка (Label) |
Name |
lblNamе |
Caption |
П І Б |
|
Етикетка (Label) |
Name |
lblN |
Caption |
Нараховано |
|
Етикетка (Label) |
Name |
lblRez |
Caption |
“_” |
|
Масив текстових полів (TextBox) |
Name |
txtName(04) |
Text |
“_” |
|
Index |
04 |
|
Масив текстових полів (TextBox) |
Name |
txtN(04) |
Text |
“_” |
|
Index |
04 |
Далі слід розчинити вікно редактору меню командою Tools – Menu Editor, створити таке меню програми:
Caption |
Name |
Структура меню |
Вікно |
mnuWind |
Вікно |
Очистка |
mnuClear |
. . . .Очистка |
таблиця |
mnuTabl |
. . . . . . . . таблиця |
підсумок |
mnuPid |
. . . . . . . . підсумок |
таблиця та підсумок |
mnuTablPid |
. . . . . . . . таблиця та підсумок |
Вихід |
mnuExit |
. . . .Вихід |
Розрахунок |
mnuRoz |
Розрахунок |
Пенсійний фонд |
mnuPF |
. . . .Пенсійний фонд |
Фонд соціального страхування |
mnuSS |
. . . .Фонд соціального страхування |
Фонд зайнятості |
mnuFZ |
. . . .Фонд зайнятості |
Щоб накопичити дані в масиві, організувати перевірку даних, що вводяться, на невід’ємність, масив слід оголосити, створити таку процедуру.
Дані в рядку коду |
Коментар |
Dim Z(5) |
Оголошення в розділі General Declaration масиву Z, у якому 5 елементів. |
Private Sub txtN_Change(Index As Integer) |
Заголовок процедури, яка виконується коли зміниться вміст будь-якого елементу масиву txtN, відбудеться подія Change. Процедура приймає значення 1-го параметра – значення властивості Index конкретного елементу, що змінився. |
If Val(txtN(Index).Text) < 0 Then |
Якщо властивість Text елементу масиву txtN з індексом Index менш ніж 0, то |
Povid Index |
виконується процедура Povid, яка приймає значення змінної Index як фактичний параметр |
Else |
інакше |
Z(Index) = Val(txtN(Index).Text) |
у відповідний елемент масиву змінних Z записується значення нарахованої заробітної плати співробітникові, яке попередньо перетворюється функцією Val на числове |
End If |
Кінець оператору If |
End Sub |
Кінець процедури |
Для створення нової процедури Povid, яка повинна виводити повідомлення у випадку, якщо в полі нарахувань введено від’ємне число, слід перебуваючи у вікні коду виконати команду меню Tools – Add Procedure. У вікні діалогу треба ввести ім’я процедури, обрати перемикачі Sub, Public. До коду програми буде добавлено заголовок і останній рядок процедури, далі слід визначити параметри процедури і її вміст як у таблиці:
Дані в рядку коду |
Коментар |
Public Sub Povid(I As Integer) |
Параметром процедури є змінна I типу Integer |
MsgBox "У чарунку введено від’ємне значення!", 0 + 64, "Увага!" |
Оператором MsgBox виводиться таке вікно повідомлення: |
|
|
txtN(I).Text = " " |
Після натиснення на кнопці Ок буде знищено вміст елементу масиву тестових полів txtN з індексом, який буде прийнято як фактичний параметр процедури |
End Sub |
Кінець процедури |
Наступним кроком створення програми може бути створення процедур, які пов’язані з командами режиму меню Вікно – Очистити: таблицю, підсумок або таблицю і підсумок, Вихід.
Дані в рядку коду |
Коментар |
Private Sub mnuExit_Click() |
Процедура завершує роботу програми, якщо в меню обрано команду Вихід. |
End |
|
End Sub |
|
Public Sub ClearTabl() |
Заголовок процедури ClearTabl, яку слід створити для знищення вмісту елементів масивів текстових полів командою Tools – Add Procedure. |
For I = 0 To 4 |
Для і, що змінюється від 0 до 4 |
Z(I) = 0 |
елементу масиву змінних Z привласнюється значення 0 |
txtName(I).Text = " " |
уміст і-го елементу текстових полів txtName для введення ПІП знищується |
txtN(I).Text = " " |
уміст і-го елементу текстових полів txtN для введення нарахованих сум заробітної плати знищується |
Next |
Кінець циклу |
End Sub |
Кінець процедури |
Public Sub ClearlPid() |
Заголовок процедури ClearlPid, яку слід створити для знищення вмісту етикетки для виведення результатів командою Tools – Add Procedure. |
lblRez.Caption = " " |
Знищення вмісту етикетки lblRez. |
End Sub |
Кінець процедури |
Private Sub mnuTabl_Click() |
Процедура, яку буде виконано, якщо в меню обрано команду Вікно – Очистити – таблицю. |
ClearTabl |
Виклик процедури ClearTabl для знищення вмісту таблиці. |
End Sub |
Кінець процедури |
Private Sub mnuPid_Click() |
Процедура, яку буде виконано, якщо в меню обрано команду Вікно – Очистити – підсумок. |
ClealPid |
Виклик процедури ClealPid для знищення вмісту етикетки з підсумком. |
End Sub |
Кінець процедури |
Private Sub mnuTablPid_Click() |
Процедура, яку буде виконано, якщо в меню обрано команду Вікно – Очистити – таблицю і підсумок. |
ClearTabl |
Виклик процедури ClearTabl для знищення вмісту таблиці. |
ClealPid |
Виклик процедури ClealPid для знищення вмісту етикетки з підсумком. |
End Sub |
Кінець процедури |
Для виконання розрахунків пропонується створити функцію RozSum командою меню Tools – Add Procedure, у вікні діалогу команди слід ввести ім’я функції, обрати перемикачі Function, Public. Далі треба створити коди процедур, які пов’язані з командами режиму Розрахунок.
Дані в рядку коду |
Коментар |
Public Function RozSum(V As Single) |
Функція RozSum приймає один параметр – число типу Single, яке буде розміщено в змінній V. Змінна V буде вміщувати відсоток для розрахунку певного виду виплат з фонду соціального страхування. |
RozSum = 0 |
Імені функції привласнюється значення 0. |
For I = 0 To 4 |
Для і, що змінюється від 0 до 4, |
RozSum = RozSum + Z(I) |
Функції RozSum привласнюється значення – RozSum + значення і-го елементу масиву змінних Z |
Next |
Кінець циклу. |
RozSum = RozSum * V |
Імені функції привласнюється значення – RozSum* V. |
End Function |
Кінець функції. |
Private Sub mnuPF_Click() |
Процедуру буде виконано, якщо в меню обрано команду Розрахунок – Пенсійний фонд. |
lblRez.Caption = "Нараховано в пенсійний фонд " + Str(RozSum(0.32)) + " грн." |
Властивості Caption етикетки для виведення результату lblRez привласнюється результат конкатенації рідка символів "Нараховано в пенсійний фонд "; результату, який повертає функція RozSum(0.32) для аргументу 0,32, що перетворено до символьного типу функцією Str(); рядка символів " грн.". |
End Sub |
Кінець процедури. |
Private Sub mnuSS_Click() |
Процедуру буде виконано, якщо в меню обрано команду Розрахунок –Фонд соціального страхування. |
lblRez.Caption = "Нараховано в фонд соціального страхування " + Str(RozSum(0.044)) + " грн." |
Властивості Caption етикетки для виведення результату lblRez привласнюється результат конкатенації рідка символів "Нараховано в фонд соціального страхування "; результату, який повертає функція RozSum(0.044) для аргументу 0,044, що перетворено до символьного типу функцією Str(); рядка символів " грн.". |
End Sub |
Кінець процедури. |
Private Sub mnuZan_Click() |
Процедуру буде виконано, якщо в меню обрано команду Розрахунок –Фонд зайнятості. |
lblRez.Caption = "Нараховано в фонд зайнятості " + Str(RozSum(0.005)) + " грн." |
Властивості Caption етикетки для виведення результату lblRez привласнюється результат конкатенації рідка символів "Нараховано в фонд зайнятості "; результату, який повертає функція RozSum(0.005) для аргументу 0,005, що перетворено до символьного типу функцією Str(); рядка символів " грн.". |
End Sub |
Кінець процедури. |