430 likes | 740 Views
пользовательские формы. Свойства пользовательской формы. Методы пользовательской формы. UserFormNewStudent . Show UserFormNewStudent . Hide Unload UserFormNewStudent Unload Me. События пользовательской формы. Управляющие элементы. Общие свойства управляющих элементов. Метка.
E N D
Методы пользовательской формы UserFormNewStudent.Show UserFormNewStudent.Hide Unload UserFormNewStudent Unload Me
Общие свойства управляющих элементов
Метка Одним из самых простых элементов является метка (Label). Этот элемент позволяет отобразить текст на форме.
Текстовое поле Текстовое поле (TextBox) позволяет пользователю вводить текст.
Кнопка Кнопки (CommandButton) используются для инициализации пользователем каких-либо действий.
Кнопка-флажок Кнопка-флажок (CheckBox) позволяет пользователю делать выбор из двух возможностей.
Кнопка-переключатель Кнопки-переключатели (OptionButton) позволяют пользователю выбирать одну и только одну из нескольких возможностей.
Выпадающий список Выпадающий список (ComboBox) позволяет пользователю выбрать одну из нескольких возможностей или ввести свой вариант.
Рамка Рамка (Frame) позволяет объединить несколько элементов в группу.
Поле выбора диапазона Поле выбора диапазона (RefEdit) предоставляет возможность выбора диапазона ячеек рабочего листа с помощью мыши.
Примеры разработки пользовательских форм
Поиск в диапазоне ячейки с заданным значением
'Процедура обработки события '«нажатие на кнопку» 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])
Примеры использования метода 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])
Функция VBA MsgBox MsgBox("Сообщение", vbOKOnly + vbInformation, _"Заголовок") ans = MsgBox("Сообщение", vbOKCancel + vbQuestion, _"Заголовок") ans = MsgBox("Сообщение", vbRetryCancel + vbCritical, _"Заголовок") if MsgBox("Сообщение", vbYesNo + vbExclamation + _vbDefaultButton2, "Заголовок") = vbYes Then ... Else ... End If