Заглавная страница Избранные статьи Случайная статья Познавательные статьи Новые добавления Обратная связь FAQ Написать работу КАТЕГОРИИ: АрхеологияБиология Генетика География Информатика История Логика Маркетинг Математика Менеджмент Механика Педагогика Религия Социология Технологии Физика Философия Финансы Химия Экология ТОП 10 на сайте Приготовление дезинфицирующих растворов различной концентрацииТехника нижней прямой подачи мяча. Франко-прусская война (причины и последствия) Организация работы процедурного кабинета Смысловое и механическое запоминание, их место и роль в усвоении знаний Коммуникативные барьеры и пути их преодоления Обработка изделий медицинского назначения многократного применения Образцы текста публицистического стиля Четыре типа изменения баланса Задачи с ответами для Всероссийской олимпиады по праву Мы поможем в написании ваших работ! ЗНАЕТЕ ЛИ ВЫ?
Влияние общества на человека
Приготовление дезинфицирующих растворов различной концентрации Практические работы по географии для 6 класса Организация работы процедурного кабинета Изменения в неживой природе осенью Уборка процедурного кабинета Сольфеджио. Все правила по сольфеджио Балочные системы. Определение реакций опор и моментов защемления |
События и событийные процедуры↑ Стр 1 из 4Следующая ⇒ Содержание книги
Поиск на нашем сайте
ФОРМЫ VBA
До сих пор использовались диалоговые окна, которые встроены в VBA, а именно, функции MsgBox и InputBox. Хотя MsgBox и InputBox придают программам гибкость, которой могут обладать только интерактивные программы, их возможности в известной степени ограничены. При разработке более сложных программ, может понадобиться выводить диалоговые окна, позволяющие пользователям программ задавать при помощи одного диалогового окна несколько опций, выбирать пункты из списка или вводить в одном окне несколько значений. Часто возникает необходимость вместо встроенных окон, принадлежащих Excel, использовать диалоговые окна, созданные специально для разработанной программы. VBA позволяет создавать и применять пользовательские диалоговые окна в написанных программах и процедурах при помощи добавления в проект объекта UserForm. Используя формы пользователя VBA (VBA User Forms), можно создавать диалоговые окна для вывода данных или получения значений от пользователя программы именно в том виде, который требуется программе. Например, можно вывести на экран диалоговое окно со списком различных вариантов формата даты и предоставить пользователю возможность выбрать из списка один из форматов. Диалоговые окна позволяют программе общаться с пользователем наиболее удобным образом, обеспечивая гибкую форму ввода и вывода данных. Пользовательская форма UserForm предоставляет пользователю возможность создавать диалоговые окна разрабатываемых приложений. Она служит базой пользовательского диалогового окна, на которой в зависимости от решаемой задачи размещают элементы управления. Диалоговое окно в VBA создается добавлением в проект объекта UserForm. Объект UserForm – это пустое диалоговое окно. Настройку диалогового окна можно выполнить добавлением к объекту UserForm (обычно называют просто форма) элементов управления. Каждому объекту UserForm присущи определенные свойства, методы и события, которые он наследует от класса объектов UserForm. Каждый объект UserForm включает в себя также модуль класса, в который можно добавлять собственные методы и свойства или код обработки событий формы. Первый шаг в создании пользовательского диалогового окна состоит в добавлении к проекту новой формы (объекта User Form). Форма содержит рабочую область, в которую можно поместить элементы, необходимые для выполнения некоторого диалога пользователя с приложением. Для добавления к проекту новой формы надо использовать команду VB-редактоpa Insert ® UserForm (Вставка ® UserForm). Редактор VBA добавляет к текущему проекту новую форму, присваивая ей по умолчанию имя UserFormN и используя ту же систему нумерации, что и для модулей. Редактор VBA выводит новую форму в режиме разработки, как показано на рис. 9.9. В режиме разработки можно добавлять (или удалять) элементы управления к форме, устанавливать свойства формы или ее элементов управления и выполнять другие манипуляции с внешним видом формы в интерактивном режиме. Когда форма выведена и используется как часть выполняющейся программы, она находится в режиме выполнения. На рис. 9.9 показана добавленная в проект форма UserForm1. Широкая рамка вокруг формы указывает на то, что форма выделена. Сетка из точек наповерхности формы помогает выравнивать и контролировать размеры элементов управления, помещаемых на форму, и появляется только в режиме разработки. Панель элементов является «палитрой», с помощью которой можно выбирать элементы управления и добавлять их к форме Объект UserForm можно переименовать так же, как стандартный модуль или модуль класса. Для этого в Properties Window (окно свойств) надо редактировать свойство (Name) и Caption этого объекта. Когда форма выводится на экран в режиме разработки, можно протестовать ее поведение, используя команду Run ® Run Sub/User Form (Запуск ® Запуск подпрограммы/UserForm). После этого редактор VBA выведет форму режиме запуска и все ее элементы управления будут активными.
Рис. 9.9. Новая UserForm в режиме разработки
Рис. 9.10. Новая UserForm в режиме запуска
Свойства объекта UserForm
Форма имеет некоторые встроенные свойства, и эти свойства можно устанавливать или программным образом, или в Properties Window (окне свойств) редактора VBA. Строго говоря, данные способы изменения свойств форм не являются эквивалентными. Некоторые из свойств могут быть установлены только посредством Properties Window. Программным способом свойства форм устанавливаются таким же образом, как и свойства других объектов: путем присвоения свойству нового значения. В табл. 9.7 перечислены свойства UserForm, на которые скорее всего, придется ссылаться или изменять их.
Таблица 9.7. Наиболее часто используемые свойства объектов UserForm Свойство Описание ActiveControl Возвращает объектную ссылку на элемент управления, находящийся в фокусе в данный момент. Только для чтения BackColor Целое число типа Long определяет цвет фона формы. Самый простой способ установить это свойство – использовать Properties Window; чтобы выбрать желаемый цвет (если необходимо), можно скопировать номер цвета из Properties Window в свою программу BackColor Возвращает цвет фона формы BorderStyle Устанавливает тип границы Caption Текст, выводимый в качестве заголовка формы. Запись/Чтение Caption Возвращает текст, отображаемый в строке заголовка формы Controls Возвращает коллекцию всех элементов управления формы. Только для чтения Cycle Определяет, должно ли нажатие клавиши табуляции вызывать последовательный выбор всех элементов управления во всех группах и на каждой странице многостраничных элементов управления или только в пределах текущей группы или страницы. Может содержать одну из двух встроенных констант: fmCycleAllForms или fmCycleCurrentForm. Чтение/Запись Enabled Содержит значение типа Boolean, указывающее, доступна ли форма. Если его значение равно False, ни один из элементов управления формы не доступен. Чтение/Запись Font Возвращает ссылку на объект Font, посредством которого можно выбрать параметры шрифта формы или элемента управления ForeColor То же самое, что и свойство BackColor, но устанавливает цвет используемый для переднего плана (обычно – это цвет текста) объекта формы Height И Width Возвращают высоту и ширину формы в пунктах Left И Top Возвращают местоположение верхнего левого угла формы в пунктах Name Возвращает имя пользовательской формы Picture Указывает рисунок, отображаемый как фон формы StartUpPosition Возвращает значение, определяющее расположение формы при ее первом отображении на экране. Допустимые значения: · Manual (начальное значение не устанавливается), · CenterOwner (выравнивание по центру объекта, к которому принадлежит форма) · CenterScreen (выравнивание по центру экрана) · windows Default (положение верхнего левого угла экрана)
Методы объекта UserForm
Всякий раз создавая в проекте новый объект UserForm, создается новый подкласс объекта UserForm. Любые процедуры или функции, написанные вами в разделе General (общий) модуля класса, относящегося к форме, становятся дополнительными методами для отдельного подкласса объекта. Можно также создать для формы новые свойства, добавив в ее модуль класса процедуры Property Get и Property Let. Можно также создавать экземпляры подкласса UserForm с помощью оператора Dim и ключевого слова New. Однако чаще всего манипулируют объектом формы при помощи стандартных методов и свойств класса UserForm и при помощи собственных процедур обработки событий для выбранной формы и ее элементов управления. В табл. 9.8 перечислены наиболее часто используемые методы для объектов UserForm, которыми можно воспользоваться, и кратко изложены их свойства. Эти методы будут доступны для каждой формы, которая добавляется в проект.
Таблица 9.8.Наиболее часто используемые методы объекта UserForm Метод Назначение Copy Копирует выделенный в элементе управления текст в буфер обмена Windows Cut Вырезает выделенный в элементе управления текст и помещает его в буфер обмена Windows Hide Закрывает форму. Скрывает UserForm, не выгружая ее из памяти, сохраняя значения элементов управления формы и всех переменных, объявленных в модуле класса формы Paste Вставляет содержимое буфера обмена Windows в текущий элемент управления PrintForm Выводит на используемый в Windows по умолчанию принтер изображение формы, включая все данные, введенные в элементы управления Repaint Перерисовывает форму, выведенную на экран. Метод используется, если надо перерисовать форму, не ожидая, когда она будет перерисована через обычный период времени Show Выводит форму на экран. Если форма еще не загружена в память, то данный метод сначала ее загружает
Синтаксис метода Show
FormName.Show
В данной синтаксической конструкции FormName может быть любым объектом UserForm текущего проекта. FormName – имя формы в том виде, как оно отображается в Project Explorer. Например, если имеется форма frmInsertFigure, вывести ее на экран можно с помощью оператора:
frmlnsertFigure.Show
Если форма в данный момент не загружена в память, метод Show загрузит ее и выведет на экран. Если форма уже загружена, метод Show просто выведет ее на экран. В любом случае метод Show выводит форму и затем передает ей управление. Форма будет оставаться на экране до тех пор, пока или не будет выполнен метод Hide объекта User Form, или форма не будет выгружена при помощи оператора Unload.
Событие – это что-то, что может произойти с диалоговым окном или элементом управления диалогового окна. Типичные примеры событий: щелчок на кнопке, переключателе и т.д. Другие примеры событий: изменение содержимого окна редактирования или выбор элемента списка. Щелчок мышью, нажатие клавиши и действия, внутренние для вашего компьютера, – все они запускают или иными словами влекут за собой события. Использование событий позволяет создавать действительно диалоговые приложения. В таких приложениях все действия пользователя приводят к определенной реакции приложения, если эти действия предусмотрены и не заблокированы. Если надо, чтобы пользователи чувствовали себя комфортно при работе с программами, начинать создавать диалоговые окна надо с разработки событийных процедур. Такие объекты, как формы и элементы управления приводят в действие некоторые события. Можно написать собственные VBA-процедуры, реагирующие на события. Такие процедуры, называются событийными процедурами или процедурами обработки событий. Событийные процедуры следует записывать в модуль класса, который является частью UserForm. При этом такие процедуры должны иметь имена в виде ObjectName_EventName, где ObjectName – имя формы или элемента управления, a EventName – имя события, с которым следует работать. Такой формат имени, позволяет VBA сопоставлять заданному событию требуемую процедуру. Большая часть программы, которую вы записывается в модуль класса формы, будет связана с обработкой событий. В табл. 9.9 перечислены события, для которых можно написать процедуры обработки.
Таблица 9.9. События объектов UserForm Событие Синтаксис заголовка процедуры обработки события Описание Activate Private Sub objecf_Activate() Инициируется всякий раз, когда окно формы становится активным. Это событие используется для обновления содержимого диалоговых элементов управления, чтобы отразить любые изменения, которые произошли, пока окно формы было неактивным Click Private Sub object_Click(index As Long) Инициируется всякий раз, когда по форме (любой ее части, не занятой элементами управления) щелкают мышью DblClic Private Sub object_DblClick(index As Long, ByVal Cancel As MSForms.ReturnBoolean) Инициируется всякий раз, когда по форме (любой ее части, не занятой элементами управления) дважды щелкают мышью Deactivate Private Sub object_Deactivate() Инициируется всякий раз, когда форма перестает быть активной Initialize Private Sub object_Initialize() Инициируется всякий раз, когда форма впервые загружается в память посредством выполнения оператора Load или с помощью метода Show. Это событие используется для инициализации элементов управления формы при ее появлении на экране. Resize Private Sub UserForm_ Resize() Инициируется при изменении размеров формы Terminate Private Sub object_Terminate() Инициируется всякий раз, когда форма выгружается из памяти. Событие используется для осуществления любых специальных служебных задач, которые необходимо выполнить прежде, чем переменные формы будут выгружены
|
||||
Последнее изменение этой страницы: 2024-06-17; просмотров: 5; Нарушение авторского права страницы; Мы поможем в написании вашей работы! infopedia.su Все материалы представленные на сайте исключительно с целью ознакомления читателями и не преследуют коммерческих целей или нарушение авторских прав. Обратная связь - 18.227.140.152 (0.007 с.) |