пользовательские формы

41
ПОЛЬЗОВАТЕЛЬСКИЕ ФОРМЫ

description

пользовательские формы. Свойства пользовательской формы. Методы пользовательской формы. UserFormNewStudent . Show UserFormNewStudent . Hide Unload UserFormNewStudent Unload Me. События пользовательской формы. Управляющие элементы. Общие свойства управляющих элементов. Метка. - PowerPoint PPT Presentation

Transcript of пользовательские формы

Page 1: пользовательские формы

ПОЛЬЗОВАТЕЛЬСКИЕ ФОРМЫ

Page 2: пользовательские формы
Page 3: пользовательские формы

Свойства пользовательской формы

Свойство ОписаниеName , Позволяет задать имя объекта которое

должно отражать назначение .пользовательской формы

Caption Позволяет задать заголовок .пользовательской формы

Font , Позволяет задать шрифт который будет использоваться в управляющих элементах

.формыStartUpPosition Позволяет задать исходную позицию

( формы по умолчанию установлено удобное значение CenterOwner).

ShowModal , Определяет будет ли форма модальной или.нет

Page 4: пользовательские формы

Методы пользовательской формы

UserFormNewStudent.ShowUserFormNewStudent.HideUnload UserFormNewStudentUnload Me

Page 5: пользовательские формы

События пользовательской формы

Событие Событие происходитInitialize .Перед загрузкой пользовательской формы

Activate .При активации пользовательской формы

Deactivate При деактивации пользовательской.формы

QueryClose Перед закрытием пользовательской. формы Параметры процедуры для этого

события позволяют отменить закрытие.формы

Terminate .После закрытия пользовательской формы

Page 6: пользовательские формы

Управляющие элементы

Page 7: пользовательские формы
Page 8: пользовательские формы

Общие свойства управляющих элементов

Свойство ОписаниеName . Имя элемента Как любое уважающее себя

.имя должно отражать смысл элементаEnabled . Определяет активность элемента Если это

свойство имеет значение false, то элемент – « » неактивен он становится тусклым и не .реагирует на мышь и клавиатуру

Visible . Определяет видимость элемента Если это свойство имеет значение false, то элемент

.становится невидимымFont Шрифт для отображения текста надписи

.или содержимого управляющего элемента

Page 9: пользовательские формы

Метка

Одним из самых простых элементов является

метка (Label). Этот элемент позволяет

отобразить текст .на форме

Свойство ОписаниеCaption .Отображаемый текст

Page 10: пользовательские формы

Текстовое поле

Текстовое поле(TextBox) позволяет

пользователю вводить. текст

Свойство ОписаниеMaxLength , Максимальное количество символов

.которые может ввести пользовательValue .Текст элемента

Page 11: пользовательские формы

Кнопка

Кнопки (CommandButton) используются

для инициализации пользователем

- .каких либо действий

Свойство ОписаниеCaption .Надпись на кнопке

Page 12: пользовательские формы

Кнопка-флажок

- Кнопка флажок(CheckBox) позволяет

пользователю делать выбор из двух

.возможностейСвойство ОписаниеCaption .Надпись

Value Если свойство имеет значение true, то .элемент отмечен галочкой

Page 13: пользовательские формы

Кнопка-переключатель

- Кнопки переключатели(OptionButton) позволяют

пользователю выбирать одну и только одну из

.нескольких возможностей

Свойство ОписаниеCaption .Надпись

Value Свойство имеет значение true, если .элемент выбран

GroupName -Позволяет разделить кнопки переключатели формы на несколько

.групп

Page 14: пользовательские формы

Выпадающий список

Выпадающий список(ComboBox) позволяет

пользователю выбрать одну из нескольких

возможностей или .ввести свой вариант

Свойство ОписаниеMaxLength , Максимальное количество символов

.которые может ввести пользовательRowSource , Диапазон рабочего листа из которого

.берутся элементы выпадающего спискаValue Выбранный элемент выпадающего

списка или ведённый пользователем.текст

Page 15: пользовательские формы

Рамка

Рамка (Frame) позволяет объединить несколько .элементов в группу

Свойство ОписаниеCaption .Заголовок группы

Page 16: пользовательские формы

Поле выбора диапазона

Поле выбора диапазона(RefEdit) предоставляет

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

.листа с помощьюмыши

Свойство ОписаниеValue .Текст с именем выбранного диапазона

Page 17: пользовательские формы

Примеры разработки пользовательских форм

Page 18: пользовательские формы

Поиск в диапазоне ячейки с заданным значением

Page 19: пользовательские формы

'Процедура обработки события '«нажатие на кнопку»Private Sub ButtonFind_Click() Dim userRange As Range, cell As Range Dim value As String 'Проверка и определение диапазона On Error Resume Next Set userRange = Range(RefEditRange.Text) If Err.Number <> 0 Then MsgBox "Неправильный диапазон" RefEditRange.SetFocus Exit Sub End If On Error GoTo 0

Page 20: пользовательские формы

'Проверка и задание искомого значения If TextBoxValue.value = "" Then MsgBox "Введите искомое значение" TextBoxValue.SetFocus Exit Sub Else value = TextBoxValue.value End If

Page 21: пользовательские формы

'Поиск For Each cell In userRange If cell.value = value Then cell.Select MsgBox "Найдена ячейка " & _ cell.Address(False, False) Exit Sub End If Next cell MsgBox "Ячейка не найдена"End Sub

Page 22: пользовательские формы

'Процедура обработки события'«инициализация пользовательской формы»Private Sub UserForm_Initialize() RefEditRange.Text = _ ActiveWindow.RangeSelection.AddressEnd Sub

Page 23: пользовательские формы

Поиск в диапазоне ячейки с заданным значением

с учётом регистра

Page 24: пользовательские формы

'Процедура обработки события'«нажатие на кнопку»Private Sub ButtonFind_Click() Dim userRange As Range, cell As Range Dim value As String, matchCase As Boolean 'Проверка и определение диапазона ... 'Проверка и задание искомого значения ...  'Учитывать регистр? matchCase = CheckBoxCase.value

Page 25: пользовательские формы

'Поиск For Each cell In userRange If matchCase And cell.value = value Or _

Not matchCase And _ LCase(cell.value) = LCase(value) Then cell.Select MsgBox "Найдена ячейка " & _ cell.Address(False, False) Exit Sub End If Next cell MsgBox "Ячейка не найдена"End Sub

Page 26: пользовательские формы

Добавление нового сотрудника

Page 27: пользовательские формы

'Процедуры обработки события «щелчок левой'кнопкой мыши» для элементов «переключатель»Private Sub OptionButtonStaff_Click() ComboBoxPost.value = "" ComboBoxPost.RowSource = "Лист4!B1:B5"End Sub Private Sub OptionButtonTeachers_Click() ComboBoxPost.value = "" ComboBoxPost.RowSource = "Лист4!A1:A4"End Sub

Page 28: пользовательские формы

'Процедура обработки события '«изменение текстового поля»

Private Sub TextBoxSurname_Change() If TextBoxSurname.value <> "" And _ TextBoxName.value <> "" And _

TextBoxFatherName.value <> "" Then ButtonAdd.Enabled = True Else ButtonAdd.Enabled = False End IfEnd Sub

Page 29: пользовательские формы

Использование управляющих элементов

на рабочем листе Практически все управляющие элементыможно

. -разместить непосредственно на рабочем листе Управляю щие элементы -кнопка флажок, -кнопка переключатель,

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

.программировать процедуры обработки событий

, - , В ячейке связанной с кнопкой флажком отображается значение истина или ложь.

, - , В ячейке связанной с группой кнопок переключателей .отображается номер выбранного переключателя

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

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

Page 30: пользовательские формы

Стандартные диалоговые окна

Page 31: пользовательские формы

Функция VBA InputBox

InputBox(Prompt [, Title] [, Default] [, xpos] [, ypos] [, Helpfile, Context])

Dim str As Stringstr = InputBox("Введите строку")

Page 32: пользовательские формы

Преобразование результата функции VBA InputBox

, Для ввода значений не строкового а другого типа необходимо использовать функции

– преобразования CBool, CByte, CCur, CDate, CDbl, CInt, CLng, CSng, CStr, CVar. 

Dim n As Integer, str As String

On Error Resume Nextn = CInt(InputBox("Введите n:", "Ввод", 5))If Err.Number <> 0 Then Exit Sub...On Error GoTo 0

Page 33: пользовательские формы

Метод InputBox объекта Application

InputBox(Prompt [, Title] [, Default] [, Left] [, Top] [, Helpfile, Context] [, Type])

Код Тип возвращаемого значения0 Формула

1 Число

2 Строка

4 Логическое значение

8 Диапазон

16 Ошибка

Page 34: пользовательские формы

Примеры использования метода InputBox

Range("F2").value = _Application.InputBox("Введите число", _"Ввод числа", Type:=1)

Range("F3").value = _Application.InputBox("Введите строку", _"Ввод строки", Type:=2)

Range("F4").value = _Application.InputBox("Введите логическое значение", _

"Ввод логического значения", Type:=4)

Range("F1").value = _Application.InputBox("Введите формулу", _"Ввод формулы", Type:=0)

Page 35: пользовательские формы

Примеры использования метода InputBox

Page 36: пользовательские формы

Примеры использования метода InputBox

Sub EraseRange() Dim userRange As Range On Error GoTo Canceled Set userRange = _

Application.InputBox(Prompt:="Удаляемый диапазон:", _Title:="Удаление диапазона", _Default:=Selection.Address, Type:=8)

userRange.Clear userRange.SelectCanceled:End Sub

Page 37: пользовательские формы

Функция VBA MsgBox

MsgBox(Prompt [, Buttons] [, Title] [, Helpfile, Context])

Константа Значение

Назначение

vbOKOnly 0 Отображается только кнопкаОК ( )по умолчанию

vbOKCancle 1 Отображаются кнопки OK иОтмена

vbAbortRetryIgnore 2 Отображаются кнопкиПрервать, Повтор иПропустить

vbYesNoCancel 3 Отображаются кнопкиДа, Нет иОтмена

vbYesNo 4 Отображаются кнопкиДа и Нет

vbRetryCancel 5 Отображаются кнопкиПовтор иОтмена

Page 38: пользовательские формы

Функция VBA MsgBox

Константа Значение

Назначение

vbCritical 16 Отображается значок важногосообщения

vbQuestion 32 Отображается значок запроса

vbExclamation 48 Отображается значок предупреждающего сообщения

vbInformation 64 Отображается значок информационного сообщения

vbDefaultButton1 0 По умолчанию выделена перваякнопка

vbDefaultButton2 256 По умолчанию выделена втораякнопка

vbDefaultButton3 512 По умолчанию выделена третьякнопка

Page 39: пользовательские формы

Функция VBA MsgBox

Константа Значение

Нажатая кнопка

vbOK 1 ОК

vbCancel 2 Отмена

vbAbort 3 Прервать

vbRetry 4 Повтор

vbIgnore 5 Пропустить

vbYes 6 Да

vbNo 7 Нет

Page 40: пользовательские формы

Функция VBA MsgBox

MsgBox("Сообщение", vbOKOnly + vbInformation, _ "Заголовок")

 ans = MsgBox("Сообщение", vbOKCancel + vbQuestion, _

"Заголовок")

ans = MsgBox("Сообщение", vbRetryCancel + vbCritical, _ "Заголовок")

if MsgBox("Сообщение", vbYesNo + vbExclamation + _ vbDefaultButton2, "Заголовок") = vbYes Then

...Else ...End If

Page 41: пользовательские формы

Функция VBA MsgBox