Презентация к лекции № 8

Download Report

Transcript Презентация к лекции № 8

Свойства
пользовательской формы
Свойство
Name
Описание
Позволяет задать имя объекта, которое должно
отражать назначение пользовательской формы.
Caption
Позволяет задать заголовок пользовательской
формы.
Font
Позволяет задать шрифт, который будет
использоваться в управляющих элементах формы.
StartUpPosition Позволяет задать исходную позицию формы (по
умолчанию установлено удобное значение
CenterOwner).
ShowModal
Определяет, будет ли форма модальной или нет.
Методы
пользовательской формы
UserFormNewStudent.Show
UserFormNewStudent.Hide
Unload UserFormNewStudent
Unload Me
События
пользовательской формы
Событие
Initialize
Activate
Deactivate
QueryClose
Terminate
Событие происходит
Перед загрузкой пользовательской формы.
При активации пользовательской формы.
При деактивации пользовательской формы.
Перед закрытием пользовательской формы.
Параметры процедуры для этого события
позволяют отменить закрытие формы.
После закрытия пользовательской формы.
Общие свойства
управляющих элементов
Свойство
Name
Enabled
Visible
Font
Описание
Имя элемента. Как любое уважающее себя имя
должно отражать смысл элемента.
Определяет активность элемента. Если это
свойство имеет значение false, то элемент
неактивен – он становится «тусклым» и не
реагирует на мышь и клавиатуру.
Определяет видимость элемента. Если это
свойство имеет значение false, то элемент
становится невидимым.
Шрифт для отображения текста надписи или
содержимого управляющего элемента.
Метка
Одним из самых простых
элементов является метка
(Label). Этот элемент
позволяет отобразить текст
на форме.
Свойство
Caption
Описание
Отображаемый текст.
Текстовое поле
Текстовое поле (TextBox)
позволяет пользователю
вводить текст.
Свойство
MaxLength
Value
Описание
Максимальное количество символов, которые
может ввести пользователь.
Текст элемента.
Кнопка
Кнопки (CommandButton)
используются
для инициализации
пользователем
каких-либо действий.
Свойство
Caption
Описание
Надпись на кнопке.
Кнопка-флажок
Кнопка-флажок (CheckBox)
позволяет пользователю
делать выбор из двух
возможностей.
Свойство
Caption
Value
Описание
Надпись.
Если свойство имеет значение true, то элемент
отмечен галочкой.
Кнопка-переключатель
Кнопки-переключатели
(OptionButton) позволяют
пользователю выбирать
одну и только одну из
нескольких возможностей.
Свойство
Caption
Value
GroupName
Описание
Надпись.
Свойство имеет значение true, если элемент
выбран.
Позволяет разделить кнопки-переключатели
формы на несколько групп.
Выпадающий список
Выпадающий список
(ComboBox) позволяет
пользователю выбрать
одну из нескольких
возможностей или ввести
свой вариант.
Свойство
MaxLength
RowSource
Value
Описание
Максимальное количество символов, которые
может ввести пользователь.
Диапазон рабочего листа, из которого берутся
элементы выпадающего списка.
Выбранный элемент выпадающего списка или
ведённый пользователем текст.
Рамка
Рамка (Frame) позволяет
объединить несколько
элементов в группу.
Свойство
Caption
Описание
Заголовок группы.
Поле выбора диапазона
Поле выбора диапазона
(RefEdit) предоставляет
возможность выбора
диапазона ячеек рабочего
листа с помощью мыши.
Свойство
Value
Описание
Текст с именем выбранного диапазона.
Поиск в диапазоне ячейки
с заданным значением
'Процедура обработки события
'«нажатие на кнопку»
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
'Проверка и задание искомого значения
If TextBoxValue.value = "" Then
MsgBox "Введите искомое значение"
TextBoxValue.SetFocus
Exit Sub
Else
value = TextBoxValue.value
End If
'Поиск
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
'Процедура обработки события
'«инициализация пользовательской формы»
Private Sub UserForm_Initialize()
RefEditRange.Text = _
ActiveWindow.RangeSelection.Address
End Sub
Поиск в диапазоне ячейки
с заданным значением
с учётом регистра
'Процедура обработки события
'«нажатие на кнопку»
Private Sub ButtonFind_Click()
Dim userRange As Range, cell As Range
Dim value As String, matchCase As Boolean
'Проверка и определение диапазона
...
'Проверка и задание искомого значения
...
'Учитывать регистр?
matchCase = CheckBoxCase.value
'Поиск
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
Добавление
нового сотрудника
'Процедуры обработки события «щелчок левой
'кнопкой мыши» для элементов «переключатель»
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
'Процедура обработки события
'«изменение текстового поля»
Private Sub TextBoxSurname_Change()
If TextBoxSurname.value <> "" And _
TextBoxName.value <> "" And _
TextBoxFatherName.value <> "" Then
ButtonAdd.Enabled = True
Else
ButtonAdd.Enabled = False
End If
End Sub
Использование
управляющих элементов
на рабочем листе
Практически все управляющие элементы можно
разместить непосредственно на рабочем листе. Управляющие элементы кнопка-флажок, кнопка-переключатель,
список и выпадающий список могут быть легко связаны с
ячейкой рабочего листа. Это избавляет от необходимости
программировать процедуры обработки событий.
В ячейке, связанной с кнопкой-флажком, отображается
значение истина или ложь.
 В ячейке, связанной с группой кнопок-переключателей,
отображается номер выбранного переключателя.
 Список и выпадающий список можно связать с
диапазоном, из которого будут браться элементы
списка, и с ячейкой-результатом, куда будет записан
номер выбранного элемента.

Функция VBA InputBox
InputBox(Prompt [, Title] [, Default]
[, xpos] [, ypos] [, Helpfile, Context])
Dim str As String
str = InputBox("Введите строку")
Преобразование результата функции
VBA InputBox
Для ввода значений не строкового, а другого типа
необходимо использовать функции преобразования – CBool,
CByte, CCur, CDate, CDbl, CInt, CLng, CSng, CStr, CVar.
Dim n As Integer, str As String
On Error Resume Next
n = CInt(InputBox("Введите n:", "Ввод", 5))
If Err.Number <> 0 Then Exit Sub
...
On Error GoTo 0
Метод InputBox
объекта Application
InputBox(Prompt [, Title] [, Default]
[, Left] [, Top] [, Helpfile, Context]
[, Type])
Код
0
1
2
4
8
16
Тип возвращаемого значения
Формула
Число
Строка
Логическое значение
Диапазон
Ошибка
Примеры использования
метода 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)
Примеры использования
метода InputBox
Примеры использования
метода 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.Select
Canceled:
End Sub
Функция VBA MsgBox
MsgBox(Prompt [, Buttons] [, Title]
[, Helpfile, Context])
Константа
Значение Назначение
vbOKOnly
0
vbOKCancle
1
vbAbortRetryIgnore 2
Отображается только кнопка ОК (по
умолчанию)
Отображаются кнопки OK и Отмена
vbYesNoCancel
3
Отображаются кнопки Прервать,
Повтор и Пропустить
Отображаются кнопки Да, Нет и Отмена
vbYesNo
4
Отображаются кнопки Да и Нет
vbRetryCancel
5
Отображаются кнопки Повтор и Отмена
Функция VBA MsgBox
Константа
Значение Назначение
vbCritical
16
vbQuestion
32
vbExclamation
48
vbInformation
64
vbDefaultButton1
0
Отображается значок
предупреждающего сообщения
Отображается значок информационного
сообщения
По умолчанию выделена первая кнопка
vbDefaultButton2
256
По умолчанию выделена вторая кнопка
vbDefaultButton3
512
По умолчанию выделена третья кнопка
Отображается значок важного
сообщения
Отображается значок запроса
Функция VBA MsgBox
Константа
Значение Нажатая кнопка
vbOK
1
ОК
vbCancel
2
Отмена
vbAbort
3
Прервать
vbRetry
4
Повтор
vbIgnore
5
Пропустить
vbYes
6
Да
vbNo
7
Нет
Функция VBA MsgBox
MsgBox("Сообщение", vbOKOnly + vbInformation, _
"Заголовок")
ans = MsgBox("Сообщение", vbOKCancel + vbQuestion, _
"Заголовок")
ans = MsgBox("Сообщение", vbRetryCancel + vbCritical, _
"Заголовок")
if MsgBox("Сообщение", vbYesNo + vbExclamation + _
vbDefaultButton2, "Заголовок") = vbYes Then
...
Else
...
End If
Функция VBA MsgBox