Свойства пользовательской формы СвойствоОписание NameПозволяет задать имя объекта, которое должно отражать назначение пользовательской формы. CaptionПозволяет задать заголовок пользовательской формы. FontПозволяет задать шрифт, который будет использоваться в управляющих элементах формы. StartUpPositionПозволяет задать исходную позицию формы (по умолчанию установлено удобное значение CenterOwner). ShowModalОпределяет, будет ли форма модальной или нет.
Методы пользовательской формы UserFormNewStudent.Show UserFormNewStudent.Hide Unload UserFormNewStudent Unload Me
События пользовательской формы СобытиеСобытие происходит InitializeПеред загрузкой пользовательской формы. ActivateПри активации пользовательской формы. DeactivateПри деактивации пользовательской формы. QueryCloseПеред закрытием пользовательской формы. Параметры процедуры для этого события позволяют отменить закрытие формы. TerminateПосле закрытия пользовательской формы.
Общие свойства управляющих элементов СвойствоОписание NameИмя элемента. Как любое уважающее себя имя должно отражать смысл элемента. EnabledОпределяет активность элемента. Если это свойство имеет значение false, то элемент неактивен – он становится «тусклым» и не реагирует на мышь и клавиатуру. VisibleОпределяет видимость элемента. Если это свойство имеет значение false, то элемент становится невидимым. FontШрифт для отображения текста надписи или содержимого управляющего элемента.
Метка Одним из самых простых элементов является метка (Label). Этот элемент позволяет отобразить текст на форме. СвойствоОписание CaptionОтображаемый текст.
Текстовое поле Текстовое поле (TextBox) позволяет пользователю вводить текст. СвойствоОписание MaxLengthМаксимальное количество символов, которые может ввести пользователь. ValueТекст элемента.
Кнопка Кнопки (CommandButton) используются для инициализации пользователем каких-либо действий. СвойствоОписание CaptionНадпись на кнопке.
Кнопка-флажок Кнопка-флажок (CheckBox) позволяет пользователю делать выбор из двух возможностей. СвойствоОписание CaptionНадпись. ValueЕсли свойство имеет значение true, то элемент отмечен галочкой.
Кнопка-переключатель Кнопки-переключатели (OptionButton) позволяют пользователю выбирать одну и только одну из нескольких возможностей. СвойствоОписание CaptionНадпись. ValueСвойство имеет значение true, если элемент выбран. GroupNameПозволяет разделить кнопки-переключатели формы на несколько групп.
Выпадающий список Выпадающий список (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
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]) КонстантаЗначениеНазначение vbOKOnly0Отображается только кнопка ОК (по умолчанию) vbOKCancle1Отображаются кнопки OK и Отмена vbAbortRetryIgnore2Отображаются кнопки Прервать, Повтор и Пропустить vbYesNoCancel3Отображаются кнопки Да, Нет и Отмена vbYesNo4Отображаются кнопки Да и Нет vbRetryCancel5Отображаются кнопки Повтор и Отмена
Функция VBA MsgBox КонстантаЗначениеНазначение vbCritical16Отображается значок важного сообщения vbQuestion32Отображается значок запроса vbExclamation48Отображается значок предупреждающего сообщения vbInformation64Отображается значок информационного сообщения vbDefaultButton10По умолчанию выделена первая кнопка vbDefaultButton2256По умолчанию выделена вторая кнопка vbDefaultButton3512По умолчанию выделена третья кнопка
Функция VBA MsgBox КонстантаЗначениеНажатая кнопка vbOK1ОК vbCancel2Отмена vbAbort3Прервать vbRetry4Повтор vbIgnore5Пропустить vbYes6Да vbNo7Нет
Функция 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