
- •1. Основные принципы работы компьютера (принципы фон Неймана) 4
- •2. Браузеры 8
- •3. Расчет локальной сметы 12
- •Введение
- •1.Основные принципы работы компьютера (принципы фон Неймана)
- •1.1. Основные принципы архитектуры Джона фон Неймана
- •1.2.Структура эвм
- •1.3.Машина Джона фон Неймана
- •2.Браузеры
- •3.Расчет локальной сметы
- •3.1. Постановка задачи
- •3.2.Порядок расчета локальной сметы, смета с отображением зависимых ячеек
- •3.4.2.. Листинг процедур формы «Изменение исходных данных»
- •Результаты работы формы
- •3.5.Общий вид формы 2 “Параметры диаграммы”
- •3.5.1.Описание элементов управления, представленных на форме, их назначение и уникальные имена, используемые в процедурах
- •3.5.2. Листинг процедур формы «Параметры диаграммы»
- •3.5.3.Результаты работы формы
- •3.5.4.Построенные диаграммы
- •ЗаКлючение
- •Список используемых источников
3.4.2.. Листинг процедур формы «Изменение исходных данных»
Код программы:
‘Объявляется переменная для всех Sub’
Option Explicit
Dim i As Integer
‘Кнопка выхода, скрывающая Userform1 по нажатию на нее’
Private Sub CommandButton4_Click()
UserForm1.Hide
End Sub
‘Обрабатываются специальные команды SpinUp и SpinDown для каждого SpinButton, увеличивающие или уменьшающие значения в соответствующих TextBox по нажатию на них’
Private Sub SpinButton1_SpinUp()
T1.Value = CStr(CDbl(1.Value) + 0.5)
End Sub
Private Sub SpinButton1_SpinDown()
T1.Value = CStr(CDbl(T1.Value) - 0.5)
End Sub
Private Sub SpinButton2_SpinUp()
T2.Value = CStr(CDbl(T2.Value) + 0.5)
End Sub
Private Sub SpinButton2_SpinDown()
T2.Value = CStr(CDbl(T2.Value) - 0.5)
End Sub
Private Sub SpinButton3_SpinUp()
T3.Value = CStr(CDbl(T3.Value) + 0.5)
End Sub
Private Sub SpinButton3_SpinDown()
T3.Value = CStr(CDbl(T3.Value) - 0.5)
End Sub
‘Очистка заголовков по вертикали L’
Public Sub clear()
L1.Caption = ""
L2.Caption = ""
L3.Caption = ""
L4.Caption = ""
L5.Caption = ""
L6.Caption = ""
L7.Caption = ""
For i = 27 To 33
Worksheets(1).Range("I" & i) = ""
Next i
End Sub
‘По нажатию на T1… T3 они очищаются, для ввода новых данных’
Private Sub T1_Change()
clear
End Sub
Private Sub T2_Change()
clear
End Sub
Private Sub T3_Change()
clear
End Sub
‘Инициализация формы, при которой происходит занесение исходных данных, очистка заголовков для L1.. L7 и выключение кнопки CommandButton3 (для того, чтобы нельзя было построить диаграмму без подсчета налогов)’
Private Sub UserForm_Initialize()
T1.Value = Worksheets(1).Cells(8, 6)
T2.Value = CStr(Worksheets(1).Cells(14, 6))
T3.Value = CStr(Worksheets(1).Cells(17, 6))
L1.Caption = ""
L2.Caption = ""
L3.Caption = ""
L4.Caption = ""
L5.Caption = ""
L6.Caption = ""
L7.Caption = ""
CommandButton3.Enabled = False
End Sub
‘Процедура подтверждения изменения данных, при подтверждении которой происходит изменение данных на листе Exel’
Private Sub CommandButton1_Click()
If MsgBox("Вы уверены,что хотите изменить значения?", vbYesNo + vbQuestion, "Коректировка данных") = vbYes Then
Worksheets(1).Cells(8, 6) = T1.Value
Worksheets(1).Cells(14, 6) = T2.Value
Worksheets(1).Cells(17, 6) = T3.Value
Else
Exit Sub
End If
End Sub
‘Процедура расчета налогов по нажатию на соответствующую кнопку. Перед изменением даннах на листе Exel появъляется окно с подтверждением внесения изменений в итоги, при положительном ответе на который происходит их расчет по соответствующим формулам на листе Exel и внесение их в заголовки для L1.. L7’
Private Sub CommandButton2_Click()
Dim a1 As Single, a2 As Single, a3 As Single
Dim a4 As Single, a5 As Single, a6 As Single, a7 As Single
CommandButton3.Enabled = True
If CDbl(T1.Value) <> Worksheets(1).Cells(8, 6) Or CDbl(T2.Value) <> Worksheets(1).Cells(14, 6) Or CDbl(T3.Value) <> Worksheets(1).Cells(17, 6) Then
If MsgBox("Данные были изменены принять изменения?", vbYesNo + vbQuestion, "Корректировка данных") = vbYes Then
Worksheets(1).Cells(8, 6) = Val(T1.Value)
Worksheets(1).Cells(14, 6) = Val(T2.Value)
Worksheets(1).Cells(17, 6) = Val(T3.Value)
Else
T1.Value = Worksheets(1).Cells(8, 6)
T2.Value = Worksheets(1).Cells(14, 6)
T3.Value = Worksheets(1).Cells(17, 6)
End If
End If
a1 = Worksheets(1).Cells(8, 10) + Worksheets(1).Cells(14, 10) + Worksheets(1).Cells(17, 10) + Worksheets(1).Cells(20, 10)
a2 = Worksheets(1).Cells(8, 11) + Worksheets(1).Cells(14, 11) + Worksheets(1).Cells(17, 11) + Worksheets(1).Cells(20, 11)
a3 = Worksheets(1).Cells(27, 8) * 0.15
a4 = (Worksheets(1).Cells(27, 8) - Worksheets(1).Cells(28, 8)) * 0.5
a5 = (Worksheets(1).Cells(27, 8) - Worksheets(1).Cells(28, 8)) * 0.3
a6 = Worksheets(1).Cells(27, 8) + Worksheets(1).Cells(29, 8) + Worksheets(1).Cells(30, 8) + Worksheets(1).Cells(31, 8)
a7 = Worksheets(1).Cells(32, 8) / 1.18 * 0.18
L1.Caption = Format(a1, "##,###.00")
L2.Caption = Format(a2, "##,###.00")
L3.Caption = Format(a3, "##,###.00")
L4.Caption = Format(a4, "##,###.00")
L5.Caption = Format(a5, "##,###.00")
L6.Caption = Format(a6, "##,###.00")
L7.Caption = Format(a7, "##,###.00")
End Sub
‘По нажатию на кнопку построения диаграммы происходит проверка на то, чтобы были просчитаны налоги, в случае если графы налогов пусты, то на экран выводится ошибка.’
Private Sub CommandButton3_Click()
If L1.Caption <> "" Then
UserForm2.Show
Else
MsgBox "Подсчитайте итоги", vbCritical + vbOKOnly
End If
End Sub