Основы офисного программирования и язык VBA


Объект UserForm (диалоговое окно), коллекция UserForms (диалоговые окна) - часть 2


Debug. Print UserForms. Count Debug. Print frmMy1. Name, frmMy1. Caption

Debug. Print UserForms. Count UserForms. Add ("frmMy1")

Debug. Print UserForms. Count For Each MyForm In UserForms Debug. Print MyForm. Caption Next MyForm

UserForms. Add ("frmMy2") Debug. Print UserForms. Count

End Sub

Приведем результаты отладочной печати:

0 frmMy1 Первая 1 2

3

Заметьте, вначале счетчик числа элементов коллекции показывает, что элементов там нет. После работы с формой в операторе Debug (но не ее загрузки) счетчик увеличивается на 1, также как и при выполнении метода Add. Однако в цикле по элементам коллекции заголовки форм не распечатываются - диалоговые формы не доступны.

С коллекциями диалоговых окон приходится работать редко. Чаще всего, работа идет с элементами этих коллекций. Для объектов класса UserForm (Диалоговое окно) определено около 40 свойств. Основные группы свойств и некоторые входящие в них свойства таковы:

  • имя диалогового окна: (Name) - имя, используемое при обращении к окну в программе;
  • положение окна на экране: Height (Высота), Width (Ширина), Left и Top - координаты верхнего левого угла;
  • изображение окна: BackColor (Цвет фона), Forecolor (Цвет переднего плана), BorderColor (Цвет рамки), Caption (Заголовок) ;
  • картинка в окне: Picture - файл с изображением, PictureSizeMode - вариант размера картинки;
  • полоса прокрутки: ScrollBar - расположение полосы прокрутки в окне (0 - отсутствует, 1 - горизонтальная полоса, 2 - вертикальная, 3 - обе), ScrollHeight и ScrollWeidth - высота и ширина области прокрутки в диалоговом окне, ScrollLeft и ScrollTop - координаты верхнего левого угла области прокрутки;
  • шрифт: Font [значение этого свойства - объект типа шрифт (Font) ].

События: Activate, Deactivate, AddControl, BeforeDragOver, BeforeDropOrPaste, Click, DblClick, Error, KeyDown, KeyUp, KeyPress, Layout, MouseDown, MouseUp, MouseMove, RemoveControl, Scroll, Terminate, Zoom.

Методы: Copy, Cut, Hide, Load, Move, Paste, PrintForm, RedoAction, Repaint, Scroll, SetDefaultTabOrder, Show, UndoAction, Unload.

Выше мы описали процесс разработки диалогового окна. Заметьте, спроектированная форма определяет не один объект (экземпляр класса), а целый класс. Поэтому в программе можно объявлять несколько объектов данного класса и для каждого из них по-разному определять свойства диалогового окна. Вот простой пример:

Dim Myf1 As New frmMy1, Myf2 As New frmMy1, Myf3 As New frmMy2 Debug. Print Myf1. Name, Myf2. Caption, Myf3. Name Myf1. BackColor = vbGreen Myf2. Show Myf1. Show

Здесь определены три объекта, первые два из которых имеют один и тот же класс. Изменение цвета фона диалогового окна отражается только при показе первой формы, вторая ѕ сохраняет исходный цвет.




Начало  Назад  Вперед



Книжный магазин