Dim Паспорт, Оплачено As String
With UserForm1
If CheckBox1.Value = True Then
Оплачено = "Да"
Else
Оплачено = "Нет"
End If
If CheckBox2.Value = True Then
Паспорт = "Да"
Else
Паспорт = "Нет"
End If
End With
With Sheets("Лист1")
.Cells(1, 1) = Оплачено
.Cells(2, 1) = Паспорт
End With
End Sub
Пример4. Создать окно диалога, содержащее список и две кнопки. Выбранное значение записать в клетку А1 ЭТ.
Окно формы имеет вид:
CommandButton1 |
ListBox1 |
CommandButton2 |
Установим свойства объектов:
Объект | Свойство | Значение |
CommandButton1 | Caption | Начало |
CommandButton2 | Caption | Конец |
Кнопке Конец назначим процедуру :
Private Sub CommandButton2_Click()
End
End Sub
Для кнопки Начало назначим процедуру:
Option Explicit
Private Sub CommandButton1_Click()
ListBox1.Clear
ListBox1.AddItem "Люкс"
ListBox1.AddItem "Одноместный"
ListBox1.AddItem "Двухместный"
End Sub
При нажатии кнопки Начало поле списка очищается командой ListBox1.Clear,а затем формируется поле списка с помощью метода AddItem.
Считывание значения поля списка в клетку А1 осуществляется с помощью процедуры:
Private Sub ListBox1_Click()
Cells(1, 1) = ListBox1
End Sub
Пример5. Создайте окно диалога, содержащее поле со списком и две кнопки. Выбранное значение запишите в клетку А1 ЭТ.
Окно формы имеет вид:
ComboBox1 |
CommandButton1 |
CommandButton2 |
Установим свойства объектов:
Объект | Свойство | Значение |
CommandButton1 | Caption | Ввод |
CommandButton2 | Caption | Конец ввода |
Для кнопки Конец ввода назначим процедуру:
Private Sub CommandButton2_Click()
End
End Sub
Для кнопки Ввод назначим процедуру:
Private Sub CommandButton1_Click()
Dim Список As String
With UserForm1
Список = .ComboBox1
End With
With Sheets("Лист1")
.Cells(1, 1) = Список
End With
End Sub
Для инициализации поля со списком создадим процедуру:
Option Explicit
Private Sub UserForm_Initialize()
ComboBox1.AddItem "Люкс"
ComboBox1.AddItem "Одноместный"
ComboBox1.AddItem "Двухместный"
ComboBox1.Style = fmStyleDropDownList
End Sub
Пример6. Создайте окно диалога, содержащее поле ввода текста две кнопки и счетчик, значение которого будет считываться в это поле, а затем записываться в клетку А1.
Окно формы имеет вид:
TextBox1 |
CommandButton2 |
SpinButton1 |
Установим свойства объектов:
Объект | Свойство | Значение |
CommandButton1 | Caption | Запись |
CommandButton2 | Caption | Конец |
Для кнопки Конец назначим процедуру:
Private Sub CommandButton2_Click()
End
End Sub
Для кнопки Запись назначим процедуру записи значения текстового поля в клетку А1:
Private Sub CommandButton3_Click()
Cells(1, 1) = TextBox1
End Sub
Со счетчиком свяжем процедуру:
Private Sub SpinButton1_Change()
TextBox1.Text = CStr(SpinButton1.Value)
End Sub
Данная процедура выводит в текстовое поле текущее значение счетчика, преобразуя числовое значение счетчика в строковую переменную с помощью функции CStr.
Текстовому полю назначим процедуру:
Private Sub TextBox1_Change()
SpinButton1.Value = Cint(TextBox1.Text)
End Sub
Эта процедура используется для синхронизации значения счетчика с содержимым текстового поля, преобразуя текстовое значение поля в числовое с помощью функции Cint.
Рассмотренные примеры дают возможность создавать различные диалоговые формы для заполнения электронных таблиц и баз данных.
На рис.14 и 15 приведен один из вариантов построения диалогового окна и
ЭТ для заполнения базы данных.
Рис.14
Электронная таблица имеет вид:
Рис.15
На рабочем листе ЭТ создана командная кнопка Вычислить, которой назначен макрос:
Sub Вычислить()
UserForm1.Show
End Sub
Варианты для самостоятельных работ:
В таблицах приведены имена полей и соответствующие им названия объектов. Каждый объект должен иметь надпись.
Вариант 1
Продажа аппаратуры
Аппаратура | Город | Фирма | Месяц |
Поле | Список | Поле со списком | Группа флажков |
Вариант 2
Приемо-сдаточная накладная
№ | Код детали | Наименование детали | Номер операции | Количество деталей |
Поле и счетчик | Поле | Поле | Поле со списком | Поле со списком |
Вариант 3
Товаро - транспортная накладная
Номер | Код | Наимено-вание материала | Ед. измере-ния | Цена за ед. | Кол-во | |
Постав-щик | Получатель | |||||
Поле и счетчик | Поле | Поле | Поле | Поле со списком | Поле | Поле |
Вариант 4
Прием на работу
Ф И О | Вид работы | Форма оплаты | Продолжительность рабочего дня, час |
Поле | Группа флажков | Группа переключателей | Поле со списком |
Вариант 5
Предоставление отпуска
Фамилия, имя, отчество | Должность | Вид отпуска | Кол-во дней |
Поле | Список | Поле со списком | Поле и счетчик |
Вариант 6
Карточка студента
Фамилия | Группа | Факультет | Возраст, лет |
Поле | Поле со списком | Список | Поле и счетчик |
Вариант 7
Архив школы
Фамилия | Класс | Год окончания школы | Медаль |
Поле | Поле со списком | Поле со списком | Группа переключателей |
Вариант 8
Экзаменационная ведомость
Группа | Ф и о | № зачетной книжки | Дисциплина | Оценка |
Поле со списком | Поле | Поле | Поле со списком | Поле со списком |
Вариант 9
Лотерея
Фамилия | Город | Выигрыш | Отправлен |
Поле | Поле со списком | Поле со списком | Группа переключателей |
Вариант 10
Карточка студента
Фамилия | Спортивная секция | Факультативы для посещения | Предметы по выбору |
Поле | Поле со списком | Группа флажков | Список |
Вариант 11
Карточка сотрудника
Фамилия, имя, отчество | Национальность | Место рождения | Семейное положение |
Поле | Поле со списком | Поле со списком | Группа переключателей |
Вариант 12
Ведомость задолжностей в библиотеке
Фамилия | Название книги | Кол-во дней | Оплата штрафа |
Поле | Поле со списком | Поле и счетчик | Группа переключателей |
Вариант 13
Отчет по продажам
Код продукции | Продавец | Имя клиента | Вид оплаты |
Поле со списком | Поле | Поле со списком | Группа флажков |