Изменение заголовка формы
Caption
Свойство Caption (Заголовок) содержит текст, который будет появляться в строке заголовка формы. Для заголовка выберите текст, который будет напоминать пользователю о назначении формы
Выбор шрифта для использования по умолчанию
Font
Выбор используемого по умолчанию цвета текста для элементов управления в форме
Fore Color
Выбор цвета фона формы
Back Color
В следующих разделах эти свойства обсуждаются подробнее.
Как вы уже знаете, каждый объект в VBA-программе имеет имя, и формы и элементы управления не исключение. Имя формы не появляется на самой форме. Имя используется для ссылок на объект в программном коде, например, когда требуется активизировать в программе один из методов объекта или изменить одно из свойств объекта.
Формы и элементы управления действительно имеют свойство Name (Имя). Если задуматься, здесь есть некоторое противоречие. С одной стороны, для ссылки на объект нужно его имя. Но если для доступа к формам из коллекции Forms или к элементам управления в форме использовать цикл For Each, то программа получит ссылку на объект, и не зная его имени.
В любом случае, главное здесь то, что задаваемое вами в свойстве Name имя будет именем объекта, которое вы используете в своем программном коде, когда захотите что-либо сделать с этим объектом. Имя формы или элемента управления должно быть допустимым в VBA именем (никаких пробелов и знаков пунктуации; см. главу 6). Кроме того, имя должно описывать функциональное назначение объекта в программе.
А заголовок формы или элемента управления - это нечто другое. Заголовок формы представляет собой текст, появляющийся в ее строке заголовка. Заголовок же элемента управления - если для этого элемента управления заголовок вообще предусмотрен, - это текст надписи, появляющийся на этом элементе управления. Свойство Caption (Заголовок) можно изменить, впечатав новый текст в соответствующее поле окна свойств. В случае элементов управления можно сначала щелкнуть на элементе управления в форме, чтобы выделить его, а затем щелкнуть на нем еще раз и редактировать заголовок прямо на элементе управления. (Не используйте при этом двойной щелчок - тогда откроется окно редактирования программного кода.)
Классическим примером модальной формы является обычное диалоговое окно: пока диалоговое окно открыто, вы не можете работать с другими частями программы; чтобы работать с другим окном или с самим документом, вы должны сначала закрыть диалоговое окно. Точно так же, когда активна модальная форма, в VBA могут выполняться только те процедуры, которые принадлежат этой форме. Форма может реагировать на события, но остальная часть программы остается "замороженной", равно как и само приложение, в котором выполняется программа, остается недоступным пользователю, пока эта форма не будет закрыта.
В VBA 6.3 (точно так же, как и в VBA 6) вы можете назначить любому диалоговому окну модальное или немодальное поведение. По умолчанию для соответствующего свойства ShowModal формы установлено значение True, и это значит, что форма будет модальной.
Если нужно обеспечить пользователю возможность переключаться от этой формы к другим открытым формам и обратно, выберите для этого свойства значение False. В этом случае ваша программа- та, которая отобразит немодальную форму, - продолжит активно выполняться и тогда, когда форма будет на экране.
Пользователи программы получают возможность перемещаться от формы к форме только тогда, когда все открытые в данный момент формы определены как немодальные.
Как только программа отобразит модальную форму, выполнение остальной части программы приостановится, пока пользователь не закроет эту форму. Если перед отображением модальной формы на экране присутствовали другие отображенные программой формы, эти формы останутся на экране видимыми, но их нельзя активизировать до тех пор, пока модальная форма не будет закрыта.
Хотя эта книга посвящена преимущественно VBA 6, если вы работаете с более ранними версиями VBA, вам следует знать, что в VBA 5 все формы модальны- свойства ShowModal у них нет.
Перед тем как приступить к более или менее серьезному проектированию форм, я считаю нужным сообщить вам, что, как и любая серьезная графическая программа, редактор Visual Basic имеет координатную сетку. Эта сетка составлена из воображаемых магнитных линий - вертикальных и горизонтальных. При перемещении или изменении размеров элементов в форме их стороны автоматически размещаются вдоль ближайшей линии сетки. Здесь я должен подчеркнуть, что сетка очень поможет в работе, если правильно выбрать ее параметры для разрабатываемого проекта.
Но вернемся к нашим баранам. Менять размеры форм и элементов управления совсем просто. Можно задать значения свойств Height (Высота) и Width (Ширина) в окне свойств, но еще проще захватить и перетаскивать один из маркеров изменения размеров объекта- один из маленьких квадратиков, появляющихся вокруг изображения объекта, когда последний выделен. Я понимаю, вы знаете, как изменять размеры объектов - любая программа в Windows (от Paint до чего угодно), позволяющая менять размеры графических объектов, использует именно этот метод. Но, на всякий случай, привожу формальное описание процедуры.
* Чтобы изменить размеры формы в одном измерении, перетащите нижний или правый боковой маркер.
* Чтобы изменить размеры формы в обоих измерениях, сразу перетащите угловой маркер.
Обратите внимание на то. что для изменения размеров годятся только белые маркеры, а большинство маркеров формы - черные. Черные маркеры не делают ничего, только выделяют саму форму. Форма в своем окне всегда привязана к верхнему левому углу окна, но не беспокойтесь - позиция формы на экране от этого совершенно не зависит.
Можно непосредственно задавать размеры формы или помещенных в нее элементов управления, меняя числовые значения свойств Height и Width в окне свойств, Значения в данном случае задаются в пунктах (пункт равен 1/72 дюйма).
Управление размещением формы на экране
Вы имеете полный контроль над тем, где именно на экране должна появляться форма при отображении ее программой (или при пробном запуске самой формы из окна редактора Visual Basic). Для этого предлагается использовать свойство StartUpPosition.
По умолчанию для этого свойства устанавливается значение 1-CenterOwner. Это значит, что форма должна появиться в центре окна VBA-приложения - независимо от его размеров и положения на экране (правда, если форма при этом частично оказывается за пределами экрана, то она придвинется своим краем вплотную к краю экрана, но никак не дальше).
Если нужно, чтобы форма всегда появлялась посередине экрана, независимо от того, где размещено окно VBA-приложения, выберите для свойства Start Up Position значение 2 Center Screen. Чтобы установить свои собственные значения, выберите 0 -Manual, а после этого задайте значения свойств Left (Левый край) и Тор (Верх).
Чтобы изменить положение элемента управления в форме, просто перетащите этот элемент управления туда, куда нужно. Если же вам нужна особая точность, напечатайте подходящие числовые значения для свойств Lef t (Левый край) и Тор (Верх).
Если вы хотите придать своим формам трехмерный вид, воспользуйтесь свойством Special Effect, имеющимся у форм и некоторых элементов управления. При выборе для этого свойства значения из раскрывающегося списка, отличного от 0 (соответствующего плоскому виду), объекту придается небольшая, но достаточно заметная глубина.
Перед тем как перейти к использованию профессиональных команд форматирования для элементов управления, давайте разберемся с основами. Мы уже обсудили выше, в разделе "Ключевые свойства форм", как менять размеры элементов управления и перемешать их с помощью мыши или посредством изменения значений свойств. В этом разделе мы рассмотрим другие простые приемы редактирования форм и элементов управления в них.
Как и все другие программы для Windows, редактор Visual Basic позволяет вырезать, копировать и вставлять элементы управления и по отдельности, и группами. При этом используются стандартные команды меню и стандартные комбинации клавиш. Кроме того, в вашем распоряжении кнопки Cut (Вырезать), Сору (Копировать) и Paste (Вставить) панели инструментов Standard (Стандартная) редактора Visual Basic. (Эти кнопки выглядят точно так же, как аналогичные кнопки в Microsoft Office.)
Из этих команд дополнительных пояснений требует только команда Paste. Когда вы вставляете элемент управления из буфера обмена, VBA помещает элемент управления в центр формы, даже если эта часть формы не видна на экране. Но если перед операцией вклеивания выбрать фрейм или форму с множеством страниц, элемент управления будет размещен в центре соответствующего объекта.