В предыдущих статьях были рассмотрены основные свойства , методы и события основных объектов семейства Application. При разработке приложения будем применять сведения, приведенные в них.
Технологию разработки приложений для рабочего листа рассмотрим на примере упражнения.
Разработка программы для выполнения операций по вкладам
Постановка задачи. Разработать простое учебное приложение для выполнения и учета операций по вкладам, сведения о которых содержатся в базе данных, создаваемой программой. В программе необходимо предусмотреть следующие функции:
· поиск нужной записи в базе данных на рабочем листе с именем “База”;
· выполнение операции по приему на счет и снятие со счета суммы денег;
· отмену операции по вкладу.
Разработка.
Разработка формы пользователя. Учитывая требования, изложенные в постановке задачи, возможный вариант формы пользователя может быть таким, как изображено на рис. 1.
Выполните следующие действия:
1. Создайте форму пользователя и разместите в ней элементы управления как показано на рис. 1.
2. Элементам управления присвойте имена и свойства в соответствии с таблицей, приведенной ниже.
3. Рабочему листу “Лист3” присвойте имя “Операции”.
4. На рабочем листе с именем “Меню” поместите Элемент управления Кнопка панели элементов Visual Basic и поместите на ней надпись “Операции”. С помощью этой кнопки будет вызываться разрабатываемое диалоговое окно.
5. Для процедуры обработки события Click этой кнопки в модуле рабочего листа запишите код:
Private Sub Операции_Click()
‘ активизируем форму с именем Опер
Опер.Show
End Sub
6. На рабочем листе “Операции” в первой строке напишите заголовки колонок таблицы в следующей последовательности: Фамилия владельца вклада, Дата операции, Фамилия получателя, Тип вклада, Выдано, Принято, Отделение, Примечание.
7. В программном модуле формы в общей области запишите код для декларации переменных:
Option Explicit
Dim Фамилия As String
Dim ТипВклада As String
Dim СуммаВклада As Double
Dim Отделение As String
Dim Примечание As String
Dim Количество As Integer
Dim Номер As Integer
8. Для процедуры обработки события UserForm_Initialize введите код:
Private Sub UserForm_Initialize()
With Опер
‘ Устанавливаем переключатель
.Сев.Value = True
‘ Количество элементов в Поле со списком
.Тип.ListRows = 3
‘Значения элементов списка
.Тип.List = Array("Срочный", "Депозит", "Текущий")
‘Устанавливаем фокус кнопке Найти
.Найти.SetFocus
‘ Активизируем рабочий лист “База”
Application.Worksheets("База").Activate
End With
End Sub
9. В процедуру обработки события Click кнопки Найти введите код:
Private Sub Найти_Click()
‘ Активизируем рабочий лист База
Worksheets("База").Activate
‘ Вычисляем количество заполненных строк
Количество = Application.CountA(ActiveSheet.Columns(1))
Фамилия = Фам.Text
ТипВклада = Тип.Value
If Сев.Value = True Then Отделение = "Северное"
If Центр.Value = True Then Отделение = "Центральное"
If Вост.Value = True Then Отделение = "Восточное"
With ActiveSheet
For Номер = 1 To Количество
‘ Поиск нужной записи по заданным параметрам
If .Cells(Номер, 1) = Фамилия And .Cells(Номер, 2) = _
ТипВклада And .Cells(Номер, 4) = Отделение Then Exit For
Next
‘ Отображаем остаток вклада в поле Остаток
Остаток.Text = .Cells(Номер, 3)
End With
If Номер = Количество + 1 Then
MsgBox "Такого счета в базе нет", vbInformation
End If
‘ Отображаем текущую дату в поле Дата
Дата.Text = Date
End Sub
10. В Процедуру обработки события Click кнопки Принять запишите код:
Private Sub Принять_Click()
‘ проверяем корректность данных
If IsNumeric(Величина.Text) = False Then
MsgBox "Ошибка в поле Суммы", vbInformation, "БАНК"
Exit Sub
End If
With ActiveSheet
‘ Записываем в ячейку новое значение остатка
.Cells(Номер, 3) = CStr(CDbl(.Cells(Номер, 3)) + _
CDbl(Величина.Text))
End With
‘ Ативируем рабочий лист Операции
Worksheets("Операции").Activate
‘ Вычисляем номер первой пустой строки
Количество = Application.CountA(ActiveSheet.Columns(1)) + 1
With ActiveSheet
‘ Записываем в ячейки данные о проведенной операции
.Cells(Количество, 1) = Получ.Text
.Cells(Количество, 2) = Дата.Text
.Cells(Количество, 3) = Фам.Text
.Cells(Количество, 4) = Тип.Text
.Cells(Количество, 6) = Величина.Text
.Cells(Количество, 7) = Отделение
.Cells(Количество, 8) = Прим.Text
End With
End Sub
11. В процедуру обработки события Click кнопки Выдать запишите код:
Private Sub Выдать_Click()
‘ Проверяем корректность введенного числа
If IsNumeric(Величина.Text) = False Then
MsgBox "Ошибка в поле Суммы", vbInformation, "БАНК"
Exit Sub
End If
With ActiveSheet
‘ Записываем в ячейку новый остаток
.Cells(Номер, 3) = CStr(CDbl(.Cells(Номер, 3)) - _
CDbl(Величина.Text))
End With
‘ Активируем рабочий лист Операции
Worksheets("Операции").Activate
‘ Вычисляем номер первой свободной строки
Количество = Application.CountA(ActiveSheet.Columns(1)) + 1
With ActiveSheet
‘ Записываем данные о проведенной операции на РЛ
.Cells(Количество, 1) = Получ.Text
.Cells(Количество, 2) = Дата.Text
.Cells(Количество, 3) = Фам.Text
.Cells(Количество, 4) = Тип.Text
.Cells(Количество, 5) = Величина.Text
.Cells(Количество, 7) = Отделение
.Cells(Количество, 8) = Прим.Text
End With
End Sub
12. В процедуру обработки события Click кнопки Отменить введите код:
Private Sub Отменить_Click()
With ActiveSheet
‘ Восстанавливаем прежний остаток в БД База
.Cells(Номер, 3) = Остаток.Text
End With
Worksheets("Операции").Activate
‘ Удаляем данные о проведенной операции
With ActiveSheet
.Cells(Количество, 1) = ""
.Cells(Количество, 2) = ""
.Cells(Количество, 3) = ""
.Cells(Количество, 4) = ""
.Cells(Количество, 6) = ""
.Cells(Количество, 7) = ""
.Cells(Количество, 8) = ""
End With
End Sub
13. В процедуру обработки события Click кнопки Выход введите код:
Private Sub Выход_Click()
‘ Активизируем рабочий лист “Меню”
Worksheets("Меню").Activate
End
End Sub
14. Перейдите в приложение Excel, активизируйте рабочий лист “Меню” и щелкните на кнопке Операции. Программа должна активизироваться и на экране появится созданное диалоговое окно.
15. Отладьте и проверьте работу программы во всех режимах.
16. Сохраните проект