Введите код
Использование оператора Beep означает, что если будет нажата неправильная клавиша, система издает звуковой сигнал.
Сохраните файл Адреса.xls
6. Добавление кодов, проверяющих корректность вводимых данных.
Необходимо добавить коды, которые при нажатии клавиш Далее и Готово проверяют корректность вводимых данных. При этом должно проверяться, что:
заполнены поля Имя, Фамилия, Город и Адрес;
выбрана область;
в поле почтового индекса содержится шесть символов.
После проверки, если все корректно, данные вводятся в ячейки рабочего листа, поля формы очищаются и она отображается для ввода следующего набора данных.
Процедуру можно вызывать из процедур обработки события Click кнопок Далее и Готово.
Порядок создания процедуры
Откройте окно редактора кодов формы.
Выберите команду Вставить Процедуру.
Наберите название процедуры Проверка_Данных, в окне Type выберите вариант Function.
OK.
Код процедуры приведен ниже. Добавьте к своей программе представленный код и сохраните файл Адреса.xls.
Public Function Проверка_Данных() As Boolean
If txtName.Value = "" Then
MsgBox "Введите имя."
Проверка_Данных = False
Exit Function
End If
Далее используя аналогичный алгоритм, введите операторы проверки ввода данных в поля:
Фамилия
Город
Адрес
If Region.Value = "" Then
MsgBox "Вы должны выбрать область."
Проверка_Данных = False
Exit Function
End If
If txtIndex.TextLength <> 6 Then
MsgBox "Вы должны ввести 6 символов индекса."
Проверка_Данных = False
Exit Function
End If
Проверка_Данных = True
End Function
Окончание проекта.
Для завершения необходимо написать процедуры обработки событий Click для трех элементов управления командных клавиш Отмена, Готово и Далее.
Необходимо создать процедуру, которая сохраняет набранные в полях данные в ячейках рабочего листа. Назовем процедуру EnterData. Добавьте эту процедуру к кодам экранной формы
Следует также написать код для очистки полей экранной формы. Такие действия должны выполняться после щелчка по любой из командных клавиш. Код для удаления набранных данных в полях формы будет помещен в процедуру ClearForm.
Добавьте эту процедуру к своему проекту.
Таким образом, на этом этапе необходимо написать пять процедур.
Пояснения к создаваемым процедурам:
С помощью свойства CurrentRegion объекта Range определяется диапазон r, в котором размещена вся таблица, размер которой заранее может быть неизвестен.
Set r1 = r.Offset(r.Rows.Count, 0) – диапазон r1 смещен вниз относительно диапазона r на величину равную количеству строк (r.Rows.Count) в диапазоне r.
Процедура EnterData
Public Sub EnterData ()
' Копирует данные из UserForm
' в следующую строку списка на рабочем листе.
Dim r As Range, r1 As Range
Set r = Worksheets("Адреса").Range("A2").CurrentRegion
Set r1 = r.Offset(r.Rows.Count, 0)
r1.Cells(1,1).Value = txtName.Value
r1.Cells(1,2).Value = txtFIO.Value
r1.Cells(1,4).Value = txtTown.Value
r1.Cells(1,5).Value = txtAdres.Value
r1.Cells(1,3).Value = Region.Value
r1.Cells(1,6).Value = txtIndex.Value
End Sub
Процедура ClearForm
Public Sub ClearForm()
' Clears all data from the form.
txtName.Value = ""
txtFIO.Value = ""
txtTown.Value = ""
txtAdres.Value = ""
txtIndex.Value = ""
Region.Value = ""
End Sub
Сохраните файл Адреса.xls
Процедуры обработки события Click для командных кнопок.
Коды этих процедур, показанные ниже добавьте к кодам экранной формы и проект будет готов к работе.
Private Sub cmdCancel_Click()
ClearForm
Me.Hide
End Sub
Private Sub cmdDone_Click()
If Проверка_Данных = True Then
EnterData
ClearForm
Me.Hide
End If
End Sub
Private Sub cmdNext_Click()
If Проверка_Данных = True Then
EnterData
ClearForm
End If
End Sub
Сохраните файл Адреса.xls
