Главная Случайная страница Контакты | Мы поможем в написании вашей работы! | ||
|
5.1 Интерфейс программы предусматривается для удобства ввода исходных данных и вывода результатов расчета. Реальная расчетная таблица может быть очень большой, данные и результаты могут быть не видны на одном экране, разбросаны по таблице. Для редактирования данных, их ввода, удаления и просмотра результатов расчета будет требоваться перемещение по большой таблице, что не очень удобно. Разработка интерфейса программы включает проектирование форм для ввода исходных данных и вывода результатов. Написания кода для процедур отклика элементов управления: кнопок, кнопок выбора, счетчиков и т.д.
5.2 Начнем разрабатывать интерфейс. Для этого, перейдем на вкладку Разработчик – Вставить – CommandButton, рисуем ее внизу таблицы, переименовываем ее в «Работа с исходными данными» и жмем на кнопку Visual Basic for Applications.
5.3 Появится окно редактора кода. Нажимаем на Insert – UserForm, тем самым, создаем окно интерфейса. Берем из панели ToolBox (Панель инструментов) инструмент Label, рисуем место на форме, где будет пояснение что вводим в поле ввода, рядом рисуем само поле ввода – TextBox. Для каждого инструмента Label на форме в окне свойств Properties в значение Caption вводим пояснение поля ввода.Забегая вперед, сделаем еще кнопки инструментом CommandButton – «Закрыть форму», «Подвести итоги», а также двойную кнопку SpinButton.
Чистая форма и панель инструментов.
5.4 Аналогично рисуем инструменты для остальных столбцов, кроме столбца «Соотношение количества в ремонте единиц оборудования к величине потерь от простоя каждой единицы оборудования», так как его высчитывает сама программа.
Форма с вставленными инструментами.
5.5 Теперь необходимо сделать так, чтобы интерфейс работал. Для этого, сначала нам надо написать код для кнопки на таблице, чтобы при ее нажатии открывалась наша форма. Создаем модуль – Insert – Module, пишем в него это код:
Sub Кнопка1_Щелчок()
frmMain.Show
5.6 Нажимаем на форму в редакторе, изменяем значение Name в окне Properties (Свойства) с стандартного UserForm1 на frmMain. Теперь при нажатии на кнопку в таблице будет ввыводиться на экран наша форма.
5.7 Теперь работаем с формой. В созданном нами модуле прописываем новые переменные Rec и Main. Они упрощают работу формы. Их код:
Public Rec As Integer
Public Const Sh = "Main"
Sh – это константа, обозначающая наш лист Main в таблице, Rec – это переменная строка.
5.8 Дальше свяжем поля ввода – TextBox со значениями ячеек в таблице. Для этого, переходим к части кода формы относящейся к полю ввода двойным щелчком по полю на форме. Откроется редактор кода и курсор остановится на коде данного поля. Изменяем TextBox_Click на TextBox_ Change. Вводим код, где Rec – переменная строка. Учитывайте, что номер TextBox для разных инструментов на форме разный:
Пример кода для инструмента TextBox.
5.9 Программируем кнопку SpinButton. Поскольку она имеет два положения – «Вверх» и «Вниз» - прописываем для них условия:
Private Sub SpinButton1_SpinDown()
If Rec >= 9 Then Rec = 9 Else Rec = Rec + 1
frmMain.TextBox5.Text = Sheets(Sh).Cells(Rec, 2)
frmMain.TextBox1.Text = Sheets(Sh).Cells(Rec, 3)
frmMain.TextBox4.Text = Sheets(Sh).Cells(Rec, 4)
frmMain.TextBox3.Text = Sheets(Sh).Cells(Rec, 5)
End Sub
Private Sub SpinButton1_SpinUp()
If Rec <= 5 Then Rec = 5 Else Rec = Rec - 1
frmMain.TextBox5.Text = Sheets(Sh).Cells(Rec, 2)
frmMain.TextBox1.Text = Sheets(Sh).Cells(Rec, 3)
frmMain.TextBox4.Text = Sheets(Sh).Cells(Rec, 4)
frmMain.TextBox3.Text = Sheets(Sh).Cells(Rec, 5)
End Sub
6.0 Теперь нам необходимо сделать так, чтобы при открытии формы в полях ввода появлялись значения ячеек из таблицы. Для этого пишем код на открытие формы:
Private Sub UserForm_Activate()
Rec = 5
frmMain.TextBox5.Text = Sheets(Sh).Cells(Rec, 2)
frmMain.TextBox1.Text = Sheets(Sh).Cells(Rec, 3)
frmMain.TextBox4.Text = Sheets(Sh).Cells(Rec, 4)
frmMain.TextBox3.Text = Sheets(Sh).Cells(Rec, 5)
End Sub
6.1 Программируем кнопку «Закрыть форму». Вводим довольно простой код:
Private Sub CommandButton1_Click()
frmMain.Hide
End Sub
Дата публикования: 2014-12-28; Прочитано: 137 | Нарушение авторского права страницы | Мы поможем в написании вашей работы!