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

Приклад виконання

1. Розроблення електронних таблиць

2. Розрахункові формули

Для встановлення зв’язку між основною таблицею і довідником використовується функція ВПР (адреса клітинки; діапазон клітинок довідника$; номер стовпця довідника).

Дані в поля “Фах” і “Розряд” уводяться за допомогою списку даних.

3. Розроблення форми користувача

4. Вікна властивостей надпису, поля

5. Текст програми

Загальна область

Dim x1, x3, x4, i As Integer

Dim x5, x6, x7, x8, x10, x12, x13, jf, jr, s1 As Double

Dim x2, x9, x11 As String

Dim x0, x20 As Variant

Кнопка “Доповнити”

Private Sub dop_Click()

i = 1

'Змінні

x1 = nom.Text

x2 = pr.Text

x3 = st.Text

x4 = vz.Text

x5 = nar.Text

x6 = pod.Text

x7 = vn.Text

x8 = dv.Text

x9 = fah.Text

x10 = koef.Text

x11 = roz.Text

x12 = tar.Text

x13 = prof.Text

'Кнопки

pop.Enabled = False

nas.Enabled = False

dop.Enabled = False

red.Enabled = False

vid.Enabled = True

zap.Enabled = True

vih.Enabled = False

'Поля

nom.Text = ""

pr.Text = ""

st.Text = ""

vz.Text = ""

nar.Text = ""

pod.Text = ""

vn.Text = ""

dv.Text = ""

fah.Text = ""

koef.Text = ""

roz.Text = ""

tar.Text = ""

prof.Text = ""

'Списки

koef.Text = ""

tar.Text = ""

'Доступ до полів

pr.Enabled = True

st.Enabled = True

vz.Enabled = True

fah.Enabled = True

roz.Enabled = True

'Курсор

pr.SetFocus

End Sub

Поле-список “Фах”

Private Sub fah_Change()

'Нова змінна

x0 = ActiveCell.Address

'Довідник фахів

Range("b3").Select

Do While ActiveCell.Value <> ""

If ActiveCell.Value = fah.Text Then

jf = ActiveCell.Offset(0, 1).Value

End If

ActiveCell.Offset(1, 0).Select

Loop

'Поле довідника

koef.Text = jf

'Наступний вибір

Range(x0).Select

End Sub

Поле “Коефіцієнт”

Private Sub koef_Change()

'Розрахунок

nar.Text = Str(Int(jf * jr * Val(vz.Text) * 100) / 100)

pod.Text = Str(Int(jf * jr * Val(vz.Text) * 13) / 100)

prof.Text = Str(Int(jf * jr * Val(vz.Text) * 1) / 100)

vn.Text = Str(Int(jf * jr * Val(vz.Text) * 5) / 100)

dv.Text=Str(Int((Val(nar.Text)-Val(pod.Text)-Val(prof.Text)-Val(vn.Text))*100)/100)

End Sub

Кнопка “Наступний”

Private Sub nas_Click()

If ActiveCell.Offset(1, 0).Value <> "" Then

ActiveCell.Offset(1, 0).Select

nom.Text = ActiveCell.Value

pr.Text = ActiveCell.Offset(0, 1).Value

st.Text = ActiveCell.Offset(0, 2).Value

vz.Text = ActiveCell.Offset(0, 5).Value

nar.Text = ActiveCell.Offset(0, 8).Value

pod.Text = ActiveCell.Offset(0, 9).Value

prof.Text = ActiveCell.Offset(0, 10).Value

vn.Text = ActiveCell.Offset(0, 11).Value

dv.Text = ActiveCell.Offset(0, 12).Value

fah.Text = ActiveCell.Offset(0, 3).Value

koef.Text = ActiveCell.Offset(0, 6).Value

roz.Text = ActiveCell.Offset(0, 4).Value

tar.Text = ActiveCell.Offset(0, 7).Value

Else

MsgBox "Останній запис"

End If

End Sub

Кнопка “Попередній”

Private Sub pop_Click()

If ActiveCell.Row > 3 Then

ActiveCell.Offset(-1, 0).Select

nom.Text = ActiveCell.Value

pr.Text = ActiveCell.Offset(0, 1).Value

st.Text = ActiveCell.Offset(0, 2).Value

vz.Text = ActiveCell.Offset(0, 5).Value

nar.Text = ActiveCell.Offset(0, 8).Value

pod.Text = ActiveCell.Offset(0, 9).Value

prof.Text = ActiveCell.Offset(0, 10).Value

vn.Text = ActiveCell.Offset(0, 11).Value

dv.Text = ActiveCell.Offset(0, 12).Value

fah.Text = ActiveCell.Offset(0, 3).Value

koef.Text = ActiveCell.Offset(0, 6).Value

roz.Text = ActiveCell.Offset(0, 4).Value

tar.Text = ActiveCell.Offset(0, 7).Value

Else

MsgBox "Перший запис"

End If

End Sub