Файл: Лабораторная работа 6 Работа с формами.docx

ВУЗ: Не указан

Категория: Не указан

Дисциплина: Не указана

Добавлен: 27.03.2024

Просмотров: 30

Скачиваний: 0

ВНИМАНИЕ! Если данный файл нарушает Ваши авторские права, то обязательно сообщите нам.


Лабораторная работа №6
«
Работа с формами»

Примеры создания программ для работы с формами 2

Расположение элементов на форме 20

Самостоятельная работа 21

Задание №1 21

Задание №2 21

Задание №3 22

Задание №4 22

Состав Панели элементов:

Название элемента

Имя в программе

Назначение

Надпись

Label

используется для создания заголовков к элементам, не имеющих свойства Captoin (таких как, ListBox, TextBox)

Поле

TextBox

используется для ввода текста или для вывода результатов

Рамка

Frame

элемент предназначен для группирования элементов в форме

Кнопка

CommandButton

используется для запуска процесса выполнения некоторых действий, вызываемы нажатием кнопки

Поле со списком

ComboBox

служит для хранения списка значений, из которого пользователь может выбрать одно во время работы программы. Сочетает в себе возможности списка и текстового поля

Флажок

CheckBox

элемент, который создает поле для проставления галочки. Это поле имеет два состояния — отмечена галочка или нет

Переключатель

OptionButton

элемент предназначен для выбора одного элемента из нескольких

Список

ListBox

элемент предназначен для хранения списка значений, из которого можно выбрать один или несколько элементов

Полоса прокрутки

ScrollBar

элемент создает горизонтальную или вертикальную линейку прокрутки

Счетчик

SpinButton

регулятор счетчика (спиннер) аналогичен линейке прокрутки


Существуют и другие элементы управления.
В программе все объекты имеют номер. Например, если создать в окне диалога флажок, то его имя в программе будет CheckBox1.

Создание формы:

  1. Откройте окно Редактора Visual Basic

  2. Insert - UserForm.

Примеры создания программ для работы с формами


Пример 1. Создать окно диалога, содержащее поля для ввода фамилии и имени. Значения этих полей записать в электронную таблицу.

  1. На рабочем листе "Лист1" создайте таблицу следующего вида:



  1. Создайте форму, которая будет содержать два поля для ввода текста (имени и фамилии), две надписи и две кнопки. При нажатии кнопки ВВОД информация из текстовых полей будет записываться в ячейки рабочего листа, а при нажатии кнопки КОНЕЦ будет происходить окончание работы с формой.



P.S. Средние (неподписанные) элементы управления – это TextBox1 и TextBox2.

  1. Установите свойства объектов:

Объект

Свойство

Значение

Label1

Caption

Фамилия (см.рис. ниже)

Label2

Caption

Имя

CommandButton1

Caption

Ввод

CommandButton2

Caption

Конец



После изменения свойств элементов управления форма будет выглядеть так:



  1. Кнопке КОНЕЦ назначим процедуру (для ввода процедуры выполните двойной щелчок мышью по кнопке КОНЕЦ):

Private Sub CommandButton2_Click()

End

End Sub

  1. КнопкеВВОДназначимпроцедуру:


Private Sub CommandButton1_Click()

Dim Фамилия, Имя As String

Dim Row As Integer

Row = Application.CountA(Sheets("Лист1").Range("A:A")) + 1

With UserForm1

Фамилия = .TextBox1.Text

Имя = .TextBox2.Text

End With

With Sheets("Лист1")

.Cells(Row, 1).Value = Фамилия

.Cells(Row, 2).Value = Имя

End With

With UserForm1

.TextBox1.Text = ""

.TextBox2.Text = ""

End With

End Sub

Пояснения к программе:

В VBA диапазон "А:А" означает столбец А. Функция CountA подсчитывает число непустых ячеек в выделенном диапазоне. Такимобразом, функция

Row = Application.CountA(Sheets("Лист1").Range("A:A")) + 1

вычисляет число непустых ячеек в столбце А.

В переменную целого типа Row записывается количество непустых ячеек столбца А и значение переменной увеличивается на 1 для того, чтобы считанная из текстовых полей информация записывалась затем в пустые строки таблицы.

  1. Программа запускается клавишей F5. Для запуска программы можно также создать командную кнопку на рабочем листе Excel, назначив ей соответствующий макрос. Например, такой:

Sub Кнопка1_Щелкнуть()

UserForm1.Show

EndSub

После того, как на экран будет выведена форма, введите в поле для ввода Фамилия свою фамилию, в поле для ввода Имя – свое имя (переключаться между полями можно кнопкой Tab или щелчком мыши). Затем нажмите на форме кнопку ВВОД. Введенные фамилия и имя появятся в ячейках рабочего листа.

Введите еще раз Фамилию и Имя. Затем нажмите кнопку КОНЕЦ на форме.

Пример 2.Создайте форму, содержащую два переключателя и две кнопки. В зависимости от того, какой переключатель установлен, в ячейку Е1 будет записываться название этого переключателя.


Установите свойства объектов:

Объект

Свойство

Значение

OptionButton1

Caption

Муж

OptionButton2

Caption

Жен

CommandButton1

Caption

ВВОД

CommandButton2

Caption

КОНЕЦ


Кнопка ВВОД считывает значение переключателя, кнопка КОНЕЦ осуществляет выход из программы.

Кнопке КОНЕЦ назначим процедуру:

PrivateSubCommandButton2_Click()

End

End Sub

Кнопке ВВОД назначим процедуру:

Private Sub CommandButton1_Click()

Dim Пол As String

With UserForm2

If .OptionButton1 = True Then Пол = "Муж"

If .OptionButton2 = True Then Пол = "Жен"

End With

Sheets("Лист1").Cells(1, 5) = Пол

EndSub

После того, как на экран будет выведена форма, установите любой переключатель. Затем нажмите на форме кнопку ВВОД. Посмотрите, что будет введено в Е1.

Пример 3. Создайте форму, содержащую два флажка и две кнопки. Если флажки установлены, то в ячейках G1 и G2, соответственно, записывается слово «Да», в противном случае «Нет».

Окно формы имеет вид:



Установите свойства объектов:

Объект

Свойство

Значение

CheckBox1

Caption

Оплачено

CheckBox2

Caption

Паспорт сдан

CommandButton1

Caption

НАЧАЛО

CommandButton2

Caption

КОНЕЦ

Кнопка НАЧАЛО считывает значения флажков, кнопка КОНЕЦ – выход из программы.
Кнопке КОНЕЦ назначим процедуру:

PrivateSubCommandButton2_Click()

End

End Sub

Кнопке НАЧАЛО назначим процедуру:

Private Sub CommandButton1_Click()

Dim Паспорт As String, Оплачено As String

With UserForm3

If .CheckBox1.Value = True Then

Оплачено = "Да"

Else

Оплачено = "Нет"

End If

If .CheckBox2.Value = True Then

Паспорт = "Да"

Else

Паспорт = "Нет"

End If

End With

With Sheets("Лист1")

.Cells(1, 7) = Оплачено

.Cells(2, 7) = Паспорт

End With

EndSub

После того, как на экран будет выведена форма, установите любой из флажков
(или сразу два). Затем нажмите на форме кнопку НАЧАЛО. Посмотрите, что будет введено в G1 и G2.

Пример 4. Создайте форму, содержащую список и две кнопки. Выбранное из списка значение запишите в ячейку G4.

Окно формы имеет вид:



Установите свойства объектов:

Объект

Свойство

Значение

CommandButton1

Caption

НАЧАЛО

CommandButton2

Caption

КОНЕЦ



Вариант 1. При нажатии кнопки НАЧАЛО формируется список с помощью метода AddItem.

Кнопке КОНЕЦ назначим процедуру:

PrivateSubCommandButton2_Click()

End

EndSub

Кнопке НАЧАЛО назначим процедуру:

Private Sub CommandButton1_Click()

With ListBox1

.AddItem "Люкс"

.AddItem "Одноместный"

.AddItem "Двухместный"

EndWith

EndSub

Для считывания значения поля списка в клетку G4 назначьте элементу ListBox1 процедуру:

Private Sub ListBox1_Click()

Cells(4, 7) = ListBox1

EndSub

После того, как на экран будет выведена форма, нажмите кнопку НАЧАЛО. Выберите любой элемент списка и посмотрите, что будет введено в G4.

Вариант 2. Список формируется с помощью метода AddItem, и появляется на форме при ее выводе на экран. Тогда на форме достаточно будет одной кнопки КОНЕЦ.



Кнопке КОНЕЦ назначим процедуру:

PrivateSubCommandButton2_Click()

End

EndSub

Для считывания значения поля списка в клетку G4 назначьте элементу ListBox1 процедуру:

Private Sub ListBox1_Click()

Cells(4, 7) = ListBox1

EndSub

Чтобы список был заполнен сразу при выводе формы на экран необходимо вызов этого метода поместить в обработчик события Initialize формы, на которой расположено поле со списком.

Private Sub UserForm_Initialize()

With ListBox1

.AddItem "Люкс"

.AddItem "Одноместный"

.AddItem "Двухместный"