Заглавная страница Избранные статьи Случайная статья Познавательные статьи Новые добавления Обратная связь FAQ Написать работу КАТЕГОРИИ: АрхеологияБиология Генетика География Информатика История Логика Маркетинг Математика Менеджмент Механика Педагогика Религия Социология Технологии Физика Философия Финансы Химия Экология ТОП 10 на сайте Приготовление дезинфицирующих растворов различной концентрацииТехника нижней прямой подачи мяча. Франко-прусская война (причины и последствия) Организация работы процедурного кабинета Смысловое и механическое запоминание, их место и роль в усвоении знаний Коммуникативные барьеры и пути их преодоления Обработка изделий медицинского назначения многократного применения Образцы текста публицистического стиля Четыре типа изменения баланса Задачи с ответами для Всероссийской олимпиады по праву Мы поможем в написании ваших работ! ЗНАЕТЕ ЛИ ВЫ?
Влияние общества на человека
Приготовление дезинфицирующих растворов различной концентрации Практические работы по географии для 6 класса Организация работы процедурного кабинета Изменения в неживой природе осенью Уборка процедурного кабинета Сольфеджио. Все правила по сольфеджио Балочные системы. Определение реакций опор и моментов защемления |
Создание формы с элементами Label и TextBoxСодержание книги Похожие статьи вашей тематики
Поиск на нашем сайте
Откроем новую рабочую книгу Excel и перейдем в редактор Visual Basic (Alt+F11). Выберем из меню Вставка (Insert) команду UserForm. На экране появится заготовка диалоговой формы. Вызовем панель инструментов ToolBox ( меню View или соответствующая кнопка на панели управления Standart).
Поместим в поле формы объект Label (надпись), под надписью поместим текстовое поле (TextBox), а справа добавим две кнопки (CommandButton), взяв все это с панели инструментов ToolBox. Сменим надписи на кнопках на «OK» и «Cancel»,дляэтого выберем в контекстном меню команду Properties и изменим в свойстве Caption имена кнопок на соответствующие. Измените название формы и надпись (рис 5.1). Нажав на клавишу F5, запустим форму на выполнение. Так как кнопкам, расположенным на форме, не присвоено никаких процедур, то при щелчке по ним ничего происходить не будет. Создадим новый модуль, для этого в меню Вставка выберем команду Модуль. Создадим макрос с помощью команды Insert | Procedure. В открывшемся диалоговом окне укажем: имя макроса DisplayDialog,тип макроса Подпрограмма(Sub), область определения Общая (Public).
Затем в окне редактирования кода модуля запишем код активизации формы:
Public Sub DisplayDialog() UserForm1.Show If UserForm1.Tag = vbOK Then
MsgBox "OK clicked" Else MsgBox "Cancel clicked"
End If End Sub
Свойство Tag (англ. ярлык), использованное в макросе, сохраняет дополнительную информацию о каждом элементе управления на UserForm. Синтаксис его применения:
объект. Tag [=строка]
Строка идентифицирует объект (не обязательное). Создадим процедуры отклика на нажатие кнопок диалоговой формы. В процедурах поместим метод сокрытия формы Hide
и установим код завершения выполнения формы в свойстве Tag. Для этого в окошке Project — VBAProject два раза щелкнем по UserForm1. Затем в появившемся окошке UserForm1 два разащелкнем по кнопке OK, тем самым перейдем в окно редактирования кода процедуры отклика кнопки OK на щелчок по ней. В теле процедуры запишем следующее:
Private Sub CommandButton1_Click() 'Занести в ячейку А1 значение, набранное в текстовом поле ActiveSheet.Cells(1, 1).Value = TextBox1.Value 'Скрыть форму Me.Hide 'Свойству Tag зададим значение vbOK
Me.Tag = vbOK
End Sub
В теле процедуры отклика кнопки Cancel на щелчок по ней запишем следующее:
Private Sub CommandButton 2_ Click () 'Удалить из ячейки А1 значение ActiveSheet.Cells(1, 1).Value ="" 'Скрыть форму
Me.Hide 'Свойству Tag зададим значение vbCancel Me.Tag = vbCancel End Sub
Здесь ключевое слово Me VBA заменяет объект UserForm1, который требуется спрятать (убрать с экрана), но не удалить (метод Hide). Оно обозначает тот объект, в котором находится другой объект, код которого сейчас исполняется (кнопка находится в форме).
Затем организуем запуск макроса на выполнение. Сделать это можно разными способами, например создав на листе Excel кнопку как элемент управления и назначить ей макрос DisplayDialog. Теперь при нажатии на кнопку Запуск формы будет запускаться этот макрос (Рисунок 5.2).
Рисунок 5.2 — Вызов пользовательской формы
Протестируем работу кнопок. Введем в текстовое поле значение «Привет!» и нажмем на кнопку OK. В ячейке А1 появится введенный текст, а на листе — окно с надписью «ОК clicked» (Рисунок 5.3).
При нажатии на кнопку Cancel текст в ячейке А1 исчезает и появляется окно с надписью «Cancel clicked».
Рисунок 5.3 — Тестирование кнопки ОК
Примечание. Щелчок по крестику в правом верхнем углуформы приводит к появлению информационного сообщения об ошибке несовпадения типов в строке кода If UserForm1.Tag = vbOK Then Если нажатие на крестик считать аналогом работы кнопки Cancel, то имея в виду числовые значения формы, избежать ошибки можно, заменив эту строку на: If UserForm1.Tag = "1" Then
Создание формы с RefEdit
Откроем редактор Visual Basic и выберем из меню Вставка команду UserForm. На экране появится заготовка диалоговой формы и панель инструментов ToolBox.
В диалоговой форме поместим элементы управления RefEdit (редактирование ссылок)и TextBox (текстовое поле). Если на панели ToolBox отсутствует кнопка RefEdit, то ее следует вызвать, выполнив команду Tools | Additional Controls | RefEdit.Ctrl. Добавим к размещенным элементам управления надписи (Label) «Выбор диапазона ячеек» и «Значение для заполнения» соответственно. Как и в предыдущем пункте создадим две кнопки OK и Cancel (Рисунок 5.4)и назначим им те же процедуры отклика.
Рисунок 5.4 — Форма UserForm2 с размещенными
на ней элементами управления
Создадим новый модуль, для этого в меню Вставка выберем команду Модуль. Создадим макрос с помощью команды Insert/ Procedure. В открывшемся диалоговом окне укажем:имямакроса ShowRefEdit, тип макроса Подпрограмма (Sub), область определения Общая (Public).
Затем в окне редактирования кода модуля запишем код активизации формы:
Public Sub ShowRefEdit()
With UserForm2 .RefEdit1.Text = Selection.Address Show
If.Tag = vbOK Then Range(.RefEdit1.Text) =.TextBox1.Text End If End With End Sub
Первая инструкция передает элементу RefEdit адрес выбранного диапазона на рабочем листе. Затем запускается форма UsesForm2 с помощью метода Show. После того как форма завершит работу, проверяется возвращаемое значение. Если завершение было успешным, то выбранный диапазон заполняется указанным значением, если завершение было неуспешным, то выбранный диапазон не заполняется.
Для запуска макроса на выполнение так же, как и в предыдущем задании, создадим кнопку Работа с RefEdit и протестируем работу макроса (Рисунок 5.5). В поле Выбор диапазона ячеек задаем массив ячеек на листе, а в поле Значение для заполнения вводим какой либо текст. При нажатии на кнопку ОК выделенный массив ячеек (А1:А10) заполнится текстом, при нажатии на кнопку Cancel заполнения происходить не будет.
Рисунок 5.5 — Тестирование формы UserForm2
|
||||||||
Последнее изменение этой страницы: 2020-11-11; просмотров: 647; Нарушение авторского права страницы; Мы поможем в написании вашей работы! infopedia.su Все материалы представленные на сайте исключительно с целью ознакомления читателями и не преследуют коммерческих целей или нарушение авторских прав. Обратная связь - 3.144.6.9 (0.007 с.) |