ubSub OKButton_Click () ctl As Control, DayIndex As Integer
'Перевіряє введені значення. Якщо знайдені помилкові
'дані, то вікно НЕ вивантажується, а процедура завершується
For Each ctl In Me.ControlsTypeName (ctl) = "TextBox" Thenctl.Text = "" Or Not IsNumeric (ctl.Text) Then "Введіть числове значення", _ p>
vbInformation, "Некоректні дані"
ctl.SetFocus Sub Left (ctl.Name, 3) = "Day" And _. Text <0 Then
MsgBox "В поля вводяться цілі" _
& "позитивні числа", _
vbInformation, "Некоректні дані"
ctl.SetFocus Sub Left (ctl.Name, 4) = "Week" And _. Text <= 0 Then
MsgBox "Ставка зарплати представляється" _
& "позитивним числом", _
vbInformation, "Некоректні дані"
ctl.SetFocus Sub Left (ctl.Name, 3) = "Max" And _
(ctl.Text <0 Or ctl.Text> 1) Then "Відсоток співробітників, що мають" _
& "несуміжні вихідні, вводиться в", _
& "вигляді десяткового дробу", _
vblnformation, "Некоректні дані"
ctl.SetFocus Sub
End If
'Якщо дані коректні, то вони зберігаються в діапазоні
'Required або MaxPct аркуша Модель. Текстове поле
'повертає рядок; функція Val конвертує її в число
If Left (ctl.Name, 3) = "Day" Then = Mid (ctl.Name, 4, 1) ("Required"). Cells (DayIndex) = Val (ctl. Text) ctl.Name = "WeekdayBox" Then ("WeekdayRate") = Val (ctl.Text) ctl.Name = "WeekendBox" Then ("WeekendRate") = Val (ctl.Text) ("MaxPct" ;) = Val (ctl.Text) If If
'Вивантаження діалогового окнаMe SubSub CancelButton_Click ()
'Вивантаження вікна і вихід
Unload Me
End Sub
8.4 Алгоритм процедури обробки подій (InputsForm)
В
Малюнок 8.4 - Алгоритм процедури обробки подій
9. VBA-код модуля
Велика частина VBA-коду розташована в модулі. Сам код наводиться нижче. Код має модульну структуру, що завжди вважалося гарним тоном в програмуванні. Після оголошення змінної Choice з областю дії Public мінлива Main послідовно викликає інші процедури. br/>
9.1 Оголошення змінних з областю дії Public
Option Explicit
'Мінлива Choice приймає значення 1 або 2 в
'залежності від встановленого перемикача в першому