VBA для чайников
Шрифт:
В любом случае, главное здесь то, что задаваемое вами в свойстве Name имя будет именем объекта, которое вы используете в своем программном коде, когда захотите что-либо сделать с этим объектом. Имя формы или элемента управления должно быть допустимым в VBA именем (никаких пробелов и знаков пунктуации; см. главу 6). Кроме того, имя должно описывать функциональное назначение объекта в программе.
А заголовок формы или элемента управления - это нечто другое. Заголовок формы представляет собой текст, появляющийся в ее строке заголовка. Заголовок же элемента управления - если для
Классическим примером модальной формы является обычное диалоговое окно: пока диалоговое окно открыто, вы не можете работать с другими частями программы; чтобы работать с другим окном или с самим документом, вы должны сначала закрыть диалоговое окно. Точно так же, когда активна модальная форма, в 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 (соответствующего плоскому виду), объекту придается небольшая, но достаточно заметная глубина.