Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Практические и лабораторные работы.doc
Скачиваний:
8
Добавлен:
05.03.2016
Размер:
9.92 Mб
Скачать

Малюнок 2

Вказівки до виконання (приклад № 2):

Розроблено таблицю (див. малюнок 2), на робочому просторі якої розташовано чо­тири кноп­ки:

CommandButton

Name = FillRND_ CommandButton

BackColor = &H00FFC0C0&

Caption = Заповнення таблиці

ForeColor = &H000000FF&

CommandButton

Name = MinMaxProfit_CommandButton

BackColor = &H00FFC0C0&

Caption = Пошук максимальних: збитку і прибутку

Enabled = False

ForeColor = &H000000FF&

CommandButton

Name = SortGoods_CommandButton

BackColor = &H00FFC0C0&

Caption = Сортування товарів за зменшенням прибутку

Enabled = False

ForeColor = &H000000FF&

CommandButton

Name = CloseBook_CommandButton

BackColor = &H00FFC0C0&

Caption = Закриття книги

ForeColor = &H000000FF&

Для спроектованого прикладення розроблено програмний код, який наве­де­но далі. Всі пояснення щодо розробленої програми слід шукати у самому тексті програмного коду.

Малюнок 3

Private Sub Workbook_Open()

Dim Name As String

Name = Application.InputBox("Як Вас називати?", "Запит", "Франко", Type:=2)

Name = "Добродію " + Name + _

". Вас вітає прикладення <Облік прибутку фірми від продажу товарів>!"

MsgBox Name

End Sub

Малюнок 4

' вимога обов'язкового описування всіх наданих програми

Option Explicit

Dim Cell As Object ' об'ява об'єкту "комірка" (Cell)

Dim i As Integer ' об'ява глобальної цілої змінної i

Private Sub FillRND_CommandButton_Click()

' ***************************************

' Заповнення наданих таблиці

' ***************************************

Application.StatusBar = "Заповнення наданих таблиці"

' іменування діапазонів комірок таблиці

Range("A4:F13").Name = "WorkSpace"

Range("A4:A13").Name = "Goods"

Range("B4:B13").Name = "BuyCost"

Range("C4:C13").Name = "BuyAmount"

Range("D4:D13").Name = "SellCost"

Range("E4:E13").Name = "SellAmount"

Range("F4:F13").Name = "Profit"

Range("B14:F14").Name = "Results"

i = 0

For Each Cell In Range("Goods")

Cell.Activate ' активізація комірки

i = i + 1

Cell.Value = Format(i, "Товар00") ' задання значення за форматом

Next Cell

For Each Cell In Range("Goods")

Cell.Activate ' активізація комірки

Cell.Font.Color = RGB(0, 0, 255) ' задання синього кольору тексту

Cell.Font.Underline = xlUnderlineStyleNone ' прибрати підкреслення

Next Cell

For Each Cell In Range("Profit")

Cell.Activate ' активізація комірки

Cell.Value = Format(0, "##0,00") ' задання значення за форматом

Cell.Font.Color = RGB(200, 100, 0) ' задання кольору тексту

Cell.Font.Underline = xlUnderlineStyleNone ' прибрати підкреслення

Next Cell

For Each Cell In Range("Results")

Cell.Activate ' активізація комірки

Cell.Value = Format(0, "##0,00") ' задання значення за форматом

Cell.Font.Color = RGB(200, 100, 0) ' задання кольору тексту

Cell.Font.Underline = xlUnderlineStyleNone ' прибрати підкреслення

Next Cell

' ******************************************************

' Заповнення стовпця "Покупка/Ціна" випадковими числами

' з діапазону [0;100]

' ******************************************************

For Each Cell In Range("BuyCost")

Cell.Value = Format(Rnd * 100, "##0,00")

Next Cell

' ***********************************************************

' Заповнення стовпця "Покупка/Кількість" випадковими числами

' з діапазону [0;50]

' ***********************************************************

For Each Cell In Range("BuyAmount")

Cell.Value = Format(Rnd * 50, "##0")

Next Cell

' ******************************************************

' Заповнення ствпця "Продаж/Ціна" випадковими числами,

' не меншими ніж ціна покупки

' ******************************************************

For i = 1 To Range("SellCost").Rows.Count

Range("SellCost").Cells(i, 1) = _

Format((1 + Rnd) * Range("BuyCost").Cells(i, 1), "##0,00")

Next i

' ***********************************************************

' Заповнення стовпця "Продаж/Кількість" випадковими числами,

' не більшими ніж кількість товаров, які куплено

' ***********************************************************

For i = 1 To Range("SellAmount").Rows.Count

Range("SellAmount").Cells(i, 1) = _

Format((1 - Rnd) * Range("BuyAmount").Cells(i, 1), "##0")

Next i

' **********************************************

' Облік прибутку від продажу товарів (по рядках)

' **********************************************

' занесення формул обліку сум у комірки 1...10

' діапазону "Profit"

For i = 1 To 10

Range("Profit").Cells(i).Formula = _

"=SUM(B" + Format$(i + 3, "0") + ":E" + Format$(i + 3, "0") + ")"

Next i

' ******************************************

' Облік середніх значень і сум по стовпцям

' ******************************************

' занесення формул обліку у комірки 1...5

' діапазону "Profit"

With Range("Results")

For i = 1 To 5

If i Mod 2 = 0 Then ' занесення формул обліку сум

.Cells(i).FormulaR1C1 = _

"=SUM(R4C" + Format$(i + 1, "0") + ":R13C" + Format$(i + 1, "0") + ")"

Else ' занесення формул обліку середніх значень

.Cells(i).FormulaR1C1 = _

"=AVERAGE(R4C" + Format$(i + 1, "0") + ":R13C" + Format$(i + 1, "0") + ")"

End If

Next i

End With

' формування доступності кнопок

MinMaxProfit_CommandButton.Enabled = True

SortGoods_CommandButton.Enabled = True

End Sub

Private Sub MinMaxProfit_CommandButton_Click()

' ****************************************************************

' Облік мінімального і максимального прибутку від продажу товарів

' ****************************************************************

Dim i, MinProfit, MinProfitIndex As Integer

Application.StatusBar = _

"Облік мінімального і максимального прибутку від продажу товарів"

' пошук мінімального прибутку

' із використання функції "Min" Excel

MinProfit = _

Application.WorksheetFunction.Min(Range("Profit"))

' пошук адреси рядка з мінімальним прибутком

' із використанням функції "Match" Excel

MinProfitIndex = _

Application.WorksheetFunction.Match(MinProfit, Range("Profit"), 0)

' виділення товару, який надає мінімальний прибуток,

' кольором і підкресленням

With Range("Goods").Cells(MinProfitIndex)

.Activate

.Font.Color = RGB(0, 0, 0)

.Font.Underline = xlUnderlineStyleDouble

End With

' виділення мінімального прибутку кольором і підкресленням

With Range("Profit").Cells(MinProfitIndex)

.Activate

.Font.Color = RGB(0, 0, 0)

.Font.Underline = xlUnderlineStyleDouble

End With

' *************************************************

' Облік максимального прибутку від продажу товарів

' *************************************************

Dim MaxProfit, MaxProfitIndex As Integer

' пошук мінімального прибутку

' із використанням функції "Min" Excel

MaxProfit = _

Application.WorksheetFunction.Max(Range("Profit"))

' пошук адреси рядка з максимальним прибутком

' із використанням функції "Match" Excel

MaxProfitIndex = _

Application.WorksheetFunction.Match(MaxProfit, Range("Profit"), 0)

' виділення товару, який надає максимальний прибуток,

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

With Range("Goods").Cells(MaxProfitIndex)

.Activate

.Font.Color = RGB(255, 0, 0)

.Font.Underline = xlUnderlineStyleDouble

End With

' виділення максимального прибутку

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

With Range("Profit").Cells(MaxProfitIndex)

.Activate

.Font.Color = RGB(255, 0, 0)

.Font.Underline = xlUnderlineStyleDouble

End With

End Sub

Private Sub SortGoods_CommandButton_Click()

' *******************************************

' Сортування таблиці за зменшенням прибутку

' *******************************************

Application.StatusBar = "Сортування таблиці за зменшенням прибутку"

' виділення діапазону комірок, які сортуються

Range("WorkSpace").Select

' сортування наданих за зростанням по ключовому стовпцю "F"

Range("WorkSpace").Sort key1:=Columns("F")

' встановлення помітки комірки з мінімальним прибутком

Range("Profit").Cells(1).Select

End Sub

Private Sub CloseBook_CommandButton_Click()

' ***************************************

' Закриття книги

' ***************************************

Application.ThisWorkbook.Close

End Sub

Для створення ння вищенаведеного коду треба активізуватияплик аркушу книги, клацнути по ньому правою кнопкою «миші», у контекстному меню обрати команду Исход­ный текст, у віконці проеку активізувати мишею вузел ThisWorkbook, ввести програмний код.

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

Перевірте прадездатність створеного прикладення таотрамайте на екрані вікна, показані на малюнках 56.