Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
ОСНОВЫ ОФИСНОГО ПРОГРАММИРОВАНИЯ И ЯЗЫК VBA - 3....doc
Скачиваний:
37
Добавлен:
17.12.2018
Размер:
1.65 Mб
Скачать

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

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

Давайте создадим диалоговое окно с процедурой инициализации.

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

  2. В окне Свойства, измените их имена (свойство Name): Label - на CurrDate, TextBox - на MyText, ListBox - на lstColors, CheckBox - на chkGood, UserForm - на frmInit. Эти изменения внутренних имен элементов и окна не скажутся на его изображении в редакторе.

Рис. 12.13.  Окно до инициализации

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

  2. Private Sub UserForm_Initialize()

  3. With frmInit

  4. .Caption = "Окно после инициализации" ' заголовок диалогового окна

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

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

  7. .MyText.Text = "Любимый цвет:" 'начальный текст в редакторе

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

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

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

  11. .AddItem "белый"

  12. .AddItem "черный"

  13. .AddItem "синий"

  14. .AddItem "красный"

  15. .AddItem "зеленый"

  16. .AddItem "желтый"

  17. .AddItem "голубой"

  18. .ListIndex = 4 'выбор 5-го элемента в списке ("зеленый")

  19. End With

  20. End With

  21. End Sub

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

  1. Запустите диалоговое окно в отладчике. На экране оно будет выглядеть так:

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

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

Использование Me в качестве имени текущего диалогового окна

Для упрощения написания кода процедур VBA позволяет в качестве имени текущего диалогового окна применять ключевое слово Me (это похоже на использование указателя текущего объекта This в С++). В частности, в предыдущем примере вместо оператора:

With frmInit

можно было использовать:

With Me