Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Семестрова VBA -1140.doc
Скачиваний:
0
Добавлен:
01.07.2025
Размер:
512 Кб
Скачать

2.2 Контрольні питання

  1. Що таке процедура VBA та функція користувача? Опишіть їх структуру та правила передачі параметрів. Чим відрізняється функція від процедури?

  2. Поняття форми, властивості та методи форми. Використання командних кнопок.

  3. Елементи керування список і список, що розкривається, їхнє призначення, властивості і події, що з ними зв'язані.

  4. Елементи керування прапорець та перемикач. Властивості та події, що з ними зв'язані. Об'єднання їх у групу.

  5. Елементи керування текстове поле і лічильник, властивості і події, що з ними зв'язані. Зв'язування текстового поля з лічильником.

  6. Властивості об'єкта Range (Name, Value, Formula, Font та інші).

  7. Методи об'єкта Range (Select, Copy, PasteSpecial, AutoFill, AutoFit, Sort та інші).

  8. Діалогове вікно MsgBox, перелічіть всі його параметри і можливості.

  9. Умовний оператор. Перелічіть всі модифікації умовного оператора і поясніть, як вони працюють.

  10. Оператор вибору Select Case. Перелічіть всі можливості запису умов.

  11. Оператор циклу FOR – NEXT і його робота. Що таке параметр циклу?

  12. Оператори циклу з передумовою і з післяумовою. Навести приклади.

3 Зразок виконання роботи

3.1 Приклад завдання

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

  2. Для всіх платників підрахувати середню сплачену суму і записати її в новий стовпчик. Виділити кольором прізвища тих платників, у яких середня сплачена сума перевищує 15 грн.

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

3.2 Розв'язок задачі 1

Створимо на Листі Excel список, зображений на рисунку 1.

Рис. 1. Початкові дані

Прізвища та назви місяців вводилися вручну. Заповнення списку числовими даними здійснювалось за допомогою генератора випадко­вих чисел. Був вибраний діапазон оплати від 5 до 25 гривень та написана така програма:

Sub заповнення()

Dim r As Range, x As Single

For Each r In Range("C2:H21")

x = Rnd() * 20 + 5

r.Value = Round(x, 2)

r.NumberFormat = "###.00"

' Формат виведення даних на Лист Excel

Next

End Sub

3.3 Розв'язок задачі 2

Напишемо програму, яка підраховує середню сплачену суму для всіх платників і записує її в новий стовпчик. Прізвища тих платників, у яких середня сплачена сума перевищує 15грн, виділимо синім кольором. Текст програми наводиться нижче.

Sub середня()

Dim s As Single, k As Single, i As Integer, m as Byte

m=6 ' m – кількість місяців

i = 1

' Знаходимо заповнені рядки

Do While Cells(i, 2). Value <> "Усього:"

s = 0 ' середня оплата

i = i + 1

For k = 3 To 8

' цикл від третього до восьмого стовпчика,

' тобто від С до H

s = s + Cells(i, k).Value

Next

Cells(i, 9).Value = s / m

Cells(i, 9).NumberFormat = "###.00"

If Cells(i, 9).Value > 15 Then

' виділення кольором

Cells(i, 2).Font.ColorIndex = 5

End If

Loop

End Sub

3.4 Розв'язок задачі 3

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

Sub підсумки()

Dim max As Single, n As Integer

Dim s As Single, k As Single, i As Integer

For k = 3 To 8

' цикл від стовпчиків С до H

i = 2 ' i - номер рядка

s = 0

' Знаходимо заповнені рядки

Do While Cells(i, 2).Value <> "Усього:"

s = s + Cells(i, k).Value

i = i + 1

Loop

Cells(i, k).Value = s

Next

'Пошук найбільшого

max = 0

For k = 3 To 8

If Cells(i, k).Value > max Then

max = Cells(i, k).Value

n = k ' номер стовпчика

End If

Next

MsgBox "Найвища сплата була за " & Cells(1, n).Value

End Sub

Результати роботи програми зображені на рисунку 2.

Тексти для всіх наведених вище програм записуються до окремого модуля, тоді їх можна використати з будь-якого Листа Excel та з інших процедур.

Рис. 2. Фрагмент виводу