Выражения в VBA

Каждая из двух следующих строк является выражением:

Selection.Font.Bold = wdToggle

Selection.Font.Size = 14

Каждое отдельное действие, которое выполняется VBA, — выражение. Выражения можно сравнить с кирпичиками в здании большой программы, поэтому, чтобы преуспеть в построении программ на VBA, необходимо иметь четкое представление о выражениях. А поэтому вы должны уяснить для себя еще одно важнейшее свойство VBA, чем он существенно и отличается от множества традиционных языков программирования: VBA широко использует объекты.

Объекты, свойства и методы. В VBA практически все можно отнести к объектам. Многие VBA-программы состоят из простой последовательности действий: программа получает доступ к объектам, придает им определенные свойства, а затем производит с этими объектами некоторые действия. Каждый документ является объектом. Абзацы — тоже объекты. Через несколько секунд вы сможете убедиться в том, что выделенная область является объектом с именем Selection (Выделенная область). Даже сам Word — это объект, который называется Application (Приложение).

Замечание Все эти объекты составляют Word Object Model, иерархическую взаимосвязанную систему, на самом верху которой находится главный объект Application, а все остальные объекты хранятся внутри него. Для того чтобы начать работать с VBA, вам совершенно необязательно иметь абсолютно всю информацию о каждом элементе структуры Word Object Model; код записанного макроса автоматически учитывает все необходимые взаимосвязи между этими объектами. На данном же этапе вам достаточно знать, что Word Object Model представляет собой логически упорядоченную структуру, с помощью которой VBA создает и управляет всеми возможностями Word.

Каждый объект имеет свои характеристики, которые в VBA называются свойствами. Например, объект Paragraph (Абзац) может содержать в себе объект Alignment (Выравнивание), который указывает на свойство — будет ли абзац выровнен вправо, по центру, влево или же по ширине. Далее, объект Word Application (Приложение Word) содержит свойства, влияющие на поведение Word как единой большой системы, например, свойство, определяющее формат по умолчанию, в котором Word будет сохранять файлы.

Многие объекты выполняют определенные действия. Такие действия в VBA называются методами. Например, объект ActiveDocument (Активный Документ) содержит метод Close (Закрыть), который при выполнении макрокоманды закрывает любой активный документ. Если записать такую макрокоманду, которая закрывает документ, получите следующее выражение:

ActiveDocument.Close

В выражении первым указывается имя объекта и имя метода, разделенные точкой. Это основной формат записи большинства VBA-выражений: сначала объект, после него точка, затем либо метод, либо свойство, а в некоторых случаях и то, и другое.

Анализируем выражения. Теперь вы готовы воспринять следующие два выражения из записанного вами макроса Bold 1. Еще разок посмотрим на них: Selection.Font.Bold = wdToggle Selection.Font.Size =14

В макросе вы записали действия, которые изменяют вид выделенного текстового фрагмента, поэтому в обоих выражениях VBA использует объект Selection. Вероятно, вы обнаружите, что многие (если не абсолютное большинство) записанные вами макрокоманды используют объект Selection, поскольку многие макросы предназначены для изменения формата или содержимого в выделенных текстовых фрагментов. Каждое из этих двух выражений изменяет формат шрифта (Font), именно поэтому они используют свойство Font объекта Selection. Однако для определения свойства Font этого недостаточно: вы должны точно указать VBA, что именно вы хотите изменить, а также каким образом это нужно сделать. Поэтому здесь. присутствует запись Bold = wdToggle.

Эта инструкция указывает Word, что при выполнении макрокоманды необходимо щелкнуть на кнопке Полужирный. Если начертание выделенного фрагмента текста не было выделено полужирным, данное выражение сделает его таким. Если же выделенный текст уже был полужирным, в этом случае выражение снимет полужирное форматирование и приведет текст к нормальному начертанию — то же самое произошло, если бы вы щелкнули на кнопке Полужирный на панели инструментов Форматирование.

Довольно часто вы щелкаете на кнопке Полужирный для того, чтобы сделать свой текст полужирным, но не "неполужирным", т.е. чаще всего вам нужно применить данное форматирование к тексту, а не отменить его. Можно ли быть уверенным, что это выражение всегда будет работать именно таким образом и что для этого нужно сделать? Да, конечно же, но вам придется отредактировать его. Следующее выражение всегда будет выделять ваш текст полужирным, несмотря на то, каким был текст до запуска макрокоманды:

Selection.Font.Bold = True

Это один из простейших примеров, которые доказывают необходимость использования Редактора Visual Basic: работая в нем, вы имеете возможность еще раз проверить свой макрос, даже если, на первый взгляд, кажется, что он работает вполне нормально. Здесь вы можете исправить незначительные мелочи, усовершенствовать тем самым макрокоманду, сделать ее более "умной" и убедиться в правильности ее работы даже в тех случаях, когда начальные условия запуска макрокоманды немного отличаются от тех, при которых она была записана.

Существует множество способов изменить выражение и, следовательно, результат его работы.

Замечание Например, если вы решили вместо полужирного начертания использовать наклонное, достаточно изменить выражение следующим образом:

Selection.Font.Italic = True

И, конечно же, теперь вы можете изменить имя макрокоманды.


Понравилась статья? Добавь ее в закладку (CTRL+D) и не забудь поделиться с друзьями:  



double arrow
Сейчас читают про: