Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
1888.DOC
Скачиваний:
2
Добавлен:
01.05.2025
Размер:
5.52 Mб
Скачать

6.2.9. Установка начальных значений свойств элементов управления

Начальное значение (или значение по умолчанию) свойства элемента управления можно установить в процедуре, обрабатывающей событие Initialize (Инициализация) диалогового окна, содержащего данный элемент. Это событие возникает всякий раз при выводе диалогового окна на экран и запускает на выполнение процедуру без аргументов с именем ИмяОкна_Initialize. Поэтому установленные в ней значения свойств всегда будут начальными. Это не значит, что они должны быть постоянными. Значения могут зависеть от данных в ячейках рабочего листа Excel, от их форматов и т. п.

Для формирования диалогового окна с процедурой инициализации нужно выполнить следующие действия:

1. Создать новое диалоговое окно и разместить в нем статический текст Label (Метка), поле ввода TextBox, окно списка ListBox и кнопку независимого выбора CheckBox (флажок).

2. Последовательно вызывая для каждого из этих элементов окно Properties, изменить их имена: свойство Name метки Label – на CurrDate, поля ввода TextBox – на Mytxt, списка List Box – на LstColors и флажка CheckBox – на chkGood. Вызвать список свойств для всего диалогового окна UserForm и задать в качестве имени окна frmInit. Эти изменения внутренних имен элементов и окна не скажутся на его изображении в интегрированной среде.

3. Дважды щелкнуть кнопкой мыши в диалоговом окне, чтобы вызвать окно Code. Установить в списке объектов слева вверху UserForm (по умолчанию этот объект и будет выбран при вызове окна кода) и выбрать команду Initialize в списке процедур справа вверху. На экране появится шаблон процедуры инициализации диалогового окна UserForm_Initialize. Ввести текст следующей процедуры:

Private Sub UserForm_Initialize()

With frmInit

'заголовок диалогового окна

.Caption = "Окно после инициализации"

'метка - текущая дата

.CurrDate.Value = "Сегодня " & Format (Date, "dd/mm/yy")

'начальный текст в поле ввода

.Mytxt.Text = "Любимый цвет-"

.chkGood.Value = True 'включение флажка

.chkGood.Caption = " Хороший день" ' заголовок флажка

With .LstColors 'задание элементов списка:

.AddItem "белый"

.AddItem "черный"

.AddItem "синий"

.AddItem "красный"

.AddItem "зеленый"

.AddItem "желтый"

.AddItem "голубой"

'выбор 7-го элемента в списке ("голубой")

.ListIndex = 6

End With

End With

End Sub

Нумерация элементов массивов и коллекций, связанных с формами, начинается с 0. Поэтому, чтобы выделить при выводе окна последний (седьмой) элемент в списке цветов, свойству ListIndex присвоено значение 6.

4. Запустить диалоговое окно в отладчике. Его вид приведен на рис. 6.19.

5. Щелкнув кнопку Close (Закрыть) на строке заголовка окна, нужно возвратиться в режим проектирования.

Для упрощения написания кода процедур VBA позволяет в качестве имени текущего диалогового окна применять ключевое слово Me. В частности, в предыдущем примере вместо оператора With frmInit можно было использовать With Me.

Рис. 6.19. Окно после инициализации

6.2.10. Модификация управляющих элементов во время работы

Устанавливать новые значения свойств элементов управления можно не только при инициализации диалогового окна, но и во время работы пользователя (и программы) в нем. В любой процедуре обработки события, связанного со всем диалоговым окном или его отдельным элементом, можно присвоить значение свойству или вызвать метод любого управляющего элемента. Например, эти команды изменяют текст в поле ввода и снимают флажок в окне предыдущего примера (см. п. 6.2.9):

'новый текст в поле

With Me

.Mytxt.Text = "Нелюбимый цвет:"

'отключение флажка

.chkGood.Value = False

End With

Благодаря таким изменениям, программа может гибко реагировать на действия пользователя в диалоговом окне и использовать одно диалоговое окно для решения нескольких связанных или однотипных задач.