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

Отчет по продажам

 

Код продукции Продавец Имя клиента Вид оплаты
Поле со списком   Поле Поле со списком   Группа флажков