Обработка группы файлов в vba word. Создание приложений на языке VBA для MS WORD

Цель лабораторной работы

Лабораторная работа служит для получения практических навыков по использованию возможностей языка Visual Basic for Applications при создании процедур обработки текста с помощью свойств и методов объектов Microsoft Word.

Основные сведения об объектах Word , их свойствах и методах

Visual Basic for Applications поддерживает набор объектов, соответствующих элементам Word. Используя свойства и методы этих объектов можно автоматизировать все операции в Word. Однако целесообразно автоматизировать выполнение тех операций, для реализации которых нет стандартных средств в Word или их выполнение стандартными средствами является трудоемкой или рутинной работой.

Наиболее важными являются:

ОбъектDocument представляющий собой новый или созданный ранее открытый документ.

Основными свойствами объекта Document являются:

Count - количество открытых в данный момент документов;

ActiveDocument - активный документ.

Некоторые методы объекта Document и коллекции Documents :

Open - открывает файл, содержащий существующий доку­мент и автоматически добавляет его в коллекцию;

Add - добавляет новый пустой документ;

Save - сохраняет изменения в существующем документе без закрытия;

Save As (только для объекта) - сохраняет активный вновь созданный документ в текущей папке;

Item - позволяет получить доступ к элементу коллекции;

Activate (только для объекта) - активизирует открытый документ;

PrintOut (только для объекта) - печать документа;

Close - закрывает документ.

ОбъектыCharacter (символ).Word (слово).Sentence (предложение),Paragraph (абзац).Section (раздел документа), задающие структуризацию текста документа.

Все эти объекты имеют свойства:

Count - свойство возвращает количество элементов в коллекции;

First - свойство возвращает объект, являющийся первым элементом коллекции;

Last - свойство возвращает объект, являющийся последним

элементом.

КоллекцииCharacters , Words , Sentences имеют единственный метод Item (Index ) .

КоллекцияParagraphs имеет все вышеперечисленные для данной группы коллекций свойства и множество свойств, значе­ния которых определяют формат абзаца.

Формат абзаца может быть определен и с помощью методов. Приведем некоторые методы коллекции Paragraphs:

Item - определяет элемент коллекции;

Add - добавление нового пустого абзаца (параметр метода указывает точку вставки, задается объектом Range );

InsertParagraph , InsertParagraphAfter , InsertParagraphBefore - осуществляют вставку пустого абзаца вместо текста или после, или перед текстом, задаваемым объектом Selection или Range ;

Reset - удаляет форматирование, сделанное вручную, применяя к абзацу формат, заданный стилем абзаца;

Indent , Outdent - увеличивают, уменьшают отступ абзаца от края листа;

TabHangingIndent ( Count ), TabIndent ( Count ) - увеличивают (Count >0), уменьшают (Count <0) выступ или отступ абзаца от края листа на заданное количество позиций;

Space 1, Space 2, Space 15 - устанавливают межстрочный интервал (одинарный, двойной, полуторный).

ОбъектыRange (диапазон) иSelection (выделение), представляющие части документа.

Объект Range позволяет задать произвольный диапазон, представляющий собой последовательность индексированных элементов и может быть получен через метод Range или свойство Range других объектов.

Свойствами объекта Range являются:

Start - начальная символьная позиция диапазона.

End - конечная символьная позиция диапазона.

Text - позволяет получить или изменить содержимое объекта.

Объект Selection задает выделенную в документе область (фрагмент). Выделенный в документе фрагмент задает непрерывную область элементов, но не является диапазоном, заданным своим началом и концом. Выделить можно только один фрагмент, поэтому один объект Selection может быть активен в данный момент времени. Объект Selection может быть получен с помощью свойства Selection или метода Select других объектов.

Ниже приведены некоторые методы присущие объектам Selection и Range :

Move - метод перемещения точки вставки;

MoveStart , MoveEND - методы изменения значения свойств Start и End;

Collapse - сворачивает диапазон к его началу или концу.

Next - метод получения ссылки на очередной элемент коллекции объектов в диапазоне или выделенном фрагменте;

Delete - удаляет текст входящий в диапазон.

InsertAfter , InsertBefore вставляет текст до или после текста, входящего в диапазон. После вставки текста диапазон расширяется, включая в себя вставленный текст.

Copy - копирует объект в буфер обмена;

Cut - перемещает объект в буфер обмена;

Paste - позволяет поместить содержимое буфера в область, заданную объектом Range или Selection.

10. Программирование в Word

10.1 Зачем программировать в Word

Создание приложений VBA в Word, типичные ситуации

Word - старейшее и самое популярное приложение, входящее в состав Microsoft Office. В большинстве организаций пользователи готовят документы именно в Word.

С точки зрения программирования Word - это прежде всего средство для изготовления отчетов к базам данных. При этом отчет - это любой документ, который формируется на основе информации из базы данных, например, договор, акт приемки-передачи, приходный кассовый ордер, объявление на взнос наличными, распоряжение в бухгалтерию, накладная и т.п. Конечно же, к отчетам, которые можно формировать в Word, относятся и документы со сводными данными - отчеты за период, ведомости и т.п.

Автору приходилось создавать приложения с отчетами, разработанными в самых разных программных продуктах - Microsoft Access, Crystal Reports, Microsoft Reporting Services и т.п. Если ваше приложение генерирует отчеты к базам данных в Microsoft Word, то, скорее всего, такие отчеты будут не самыми быстрыми с точки зрения их формирования и не самыми простыми с точки зрения программирования. Зато совершенно точно они будут самыми дружелюбными по отношению к конечному пользователю. Почему?

Очень часто на предприятии возникает необходимость исправить в форме отчета всего пару строк - например, вместо "Директор" поставить "И.О. Директора". Если отчет создан в Crystal Reports или Microsoft Reporting Services, придется срочно обращаться к разработчику. А через какое-то время И.О. утвердят в должности директора, и разработчику придется править отчет снова.

Если же отчет изначально создается в документе Word, то пользователь всегда может сам внести в созданный документ необходимые изменения - подавляющее большинство пользователей на предприятии умеют работать в Word. Срочно разыскивать разработчика уже не нужно.

У изготовления отчетов в Word есть и другие преимущества. Как правило, при изготовлении отчетов в Word значения из базы данных подставляются в шаблон отчета, который хранится в базе данных или файловой системе (в файле *.dot). Если формат отчета сложный, с большим количеством специфического оформления (пример - объявление на взнос наличными), то намного проще подготовить его шаблон в Word, чем, к примеру, в Crystal Reports или Reporting Services.

Еще одно программное применение Word - работа с разными форматами документов. Word умеет работать с документами самых разных форматов. Эти его возможности вполне можно применить для массовой обработки документов.

Случай из практики: в каталоге на диске у нас собралось несколько сотен "разнокалиберных" документов разных пользователей. Часть из них создана в Word разных версий, часть - просто текстовые файлы, некоторые документы в - форматах HTML, XML или EML (сообщения электронной почты). На предприятии внедрена система документооборота на основе SharePoint Portal Server и нам необходимо привести все эти документы к единому формату (Word 2003) и загрузить их на SharePoint Portal Server. Конечно же, без автоматизации в такой ситуации возиться придется очень долго.

Третье программное применение Word - форматирование документов, например, программное применение стилей, поиск и замена участков текста сразу во многих документах, работа со структурой документа и т.п. Обычно такие задачи ставятся в издательствах, например, при подготовке рукописей.

Модуль поиска не установлен.

VBA Word, как это делается

(Окончание. Начало в №7)

События

Событие представляет собой действие, распознаваемое объектом (например, щелчок мышью по строке меню, нажатие клавиши, открытие нового документа, закрытие приложения пользователем), для которого можно запрограммировать отклик. При наступлении события происходит активизация метода, т.е. начинают выполняться связанные с объектом заранее определенные программы и функции.

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

Можно по-разному запрограммировать реакцию на щелчок мышью по полю Формы и по Командной кнопке в этой форме, процедуры обработки, казалось бы, одного события будут разными, т.к. будут принадлежать разным объектам. Также существует очередность возникновения событий, которую надо учитывать при их программировании. Например, событию Щелчок мыши (Click), предшествуют событие Нажатие клавиши мыши (MouseDown) и событие Отпускание клавиши мыши (MouseUp). Но надо заметить, что совсем не обязательно учитывать все события при написании вашей программы, нужно лишь выбрать те, которые вам действительно необходимы для работы. Обойтись без программирования обработки событий можно, но лишь только вы задумаете писать программу, где присутствуют пользовательские формы, вы сразу столкнетесь с необходимостью программирования процедур обработки событий.

Классы объектов

Другое важное понятие объектно-ориентированного программирования - это классы. Класс - это шаблон, на основе которого во время выполнения программы создается объект. Класс определяет свойства и методы объекта. Если взять пример из жизни, то в качестве класса объектов можно принять школьный класс, где объекты - это учащиеся, каждый со своими, присущими только ему свойствами. Также каждому объекту в классе присущи одно или несколько одинаковых свойств, например - возраст, по которому и определяется принадлежность объекта к классу.

Объект, который создается на основе класса, называют экземпляром класса.

Модель объектов приложения

Прежде чем приступить к созданию программ автоматизации работы с приложением, необходимо ознакомиться с моделью объектов (иерархией классов) приложения. Иерархия классов определяет связь между объектами и содержит сведения о доступе к другим объектам. Для этой цели в VBA используется окно просмотра объектов.

Окно просмотра объектов выводится следующим образом:

1. Активизируйте окно Редактор Visual Basic.

2. Выберите команду Вид\Просмотр объектов (или нажмите клавишу F2).

На экране появится окно Просмотр объектов (рис. 1).

3. Выберите требуемую библиотеку в списке библиотек, расположенном в левом верхнем углу.

В окне Классы появится список всех классов в выбранной библиотеке.

4. Выделите в списке Классы требуемый класс.

В правой части окна просмотра появится список компонент выбранного класса, т.е. его свойства, константы и методы.

5. Выделите в списке компонент нужную строку.

В окне справки, расположенном внизу, появится дополнительная информация.

Если нужна развернутая информация по компоненту класса, щелкните по значку "вопросительный знак" на панели инструментов.

ПРОГРАММИРОВАНИЕ В WORD.
Модель объектов Word

В приложении Word нам предстоит работать с его объектами. Поэтому рассмотрим их подробнее.

На рис. 2 приведена полная модель объектов Word. Главным объектом, стоящим на вершине иерархической пирамиды объектов, является сам Word, рассматриваемый как приложение (Application), на следующем уровне представлены наборы объектов (Documents, Dialogs, Windows и др.) и одиночные объекты (н-р, Selection). Каждый из них также содержит большое число объектов, свойств и методов. Например, объект Documents включает в себя объекты, которые связаны с ним, такие, как Words (слова), Paragraphs (абзацы), Bookmarks (закладки), Characters (символы), Document (документ) и т.д. Эти объекты в свою очередь содержат в себе еще объекты, свойства и методы. Те объекты, которые включают в себя схожие объекты, называют наборами или коллекциями (Collection), они отличаются именем, записанным в множественном числе (например, Documents, Windows, Words). С помощью свойств и методов, присущих объекту Коллекция, можно выделить из него один конкретный объект для обработки. Разные коллекции могут включать в себя одинаковые объекты, например, объект Words (Слова) принадлежит коллекции Documents (Документы), связан с объектом Selection (Выбор) и с объектом Range (Диапазон). Объект Words сам, в свою очередь, является коллекцией объектов. То, что объект принадлежит какой-то коллекции, не означает, что он рассматривается как часть чего-то общего.

Чтобы видеть всю модель объектов Word, воспользуемся окном Просмотр объектов в редакторе Visual Basic.

В окне редактора Visual Basic нажмите кнопку Просмотр объектов, в всплывающем меню списка Выбор библиотеки выберите Word. В правой части окна под заголовком Классы будут перечислены все наборы объектов Word, а слева - все свойства и методы выбранного объекта.

Перейдем к описанию основных объектов и коллекций объектов Word, их методов и свойств, а также примеров их использования.

Объект Application

Как было сказано выше, этот объект представляет приложение Word. Объект Application включает свойства и методы, которые возвращают объекты верхнего уровня.

Например, свойство ActiveDocument возвращает объект Document, а свойство с названием Application используется для возвращения объекта Application. Следующий пример показывает имя пользователя для Word. Это имя записывается в меню Сервис/Параметры во вкладке Пользователь. Инструкция MsgBox является функцией VBA, выводящей на экран диалоговое окно с сообщением MsgBox Application.UserName (рис. 3).

Многие из свойств и методов, которые возвращают наиболее общие объекты интерфейса пользователя - такие, как активный документ (свойство ActiveDocument) - могут использоваться без спецификатора объекта Application.

Например, вместо записи Application.ActiveDocument.PrintOut вы можете записывать просто ActiveDocument.PrintOut. Свойства и методы, которые могут использоваться без спецификатора объекта Application, рассматриваются как "глобальные". Чтобы увидеть глобальные свойства и методы в окне Просмотр Объектов, щелкните по строке <глобальные> наверху списка в блоке Классы.

Объект Application имеет более 80 свойств, отражающих все настройки приложения. Перечислим некоторые из них (табл. 1).


Как можно изменять свойства объекта Application в программе во время выполнения каких-либо действий? Существует несколько специальных процедур, с помощью которых можно это сделать. Эти процедуры имеют специальные имена и выполняются автоматически, во время некоторых операций (табл. 3).


Вставляя строки с инструкциями VBA в эти макросы, можно воздействовать на объекты, например, при создании нового документа убрать с экрана полосы прокрутки и строку состояния, записав следующий макрос в модуль Normal:

Public Sub AutoNew()

Application.DisplayScrollBars = False

Application.DisplayStatusBar = False

Вообще-то, сохранять эти макрокоманды можно в любом шаблоне или документе. Исключение составляет макрос AutoExec, который работает только из шаблона Normal.dot сохраненным в папке, указанной как папка запуска.

Подобные действия можно произвести и с помощью процедур обработки событий объекта Application.

Событий у объекта Application немного (табл. 4).

Чтобы запрограммировать отклик на события объекта Application, необходимо предварительно выполнить ряд действий:

1. Объявить объектную переменную в модуле класса.

2. Записать процедуры обработки события.

3. Инициализировать объявленный объект из другого модуля.

Как объявить Объектную переменную

Для этого необходимо создать новый модуль класса и объявить объект типа Application с событиями. Для этого выберите в меню Вставка строку Модуль класса, в окне Программа нового модуля класса введите следующий код (рис. 4):

Public WithEvents App As Word.Application

Вызовите окно свойства и измените свойство Name с Класс1 на EventClassModule.

Описание Процедур Событий

После того как новый объект был объявлен с событиями, он появится в окне Программа в раскрывающемся списке Объекты, и можно писать процедуры событий для нового объекта. (Когда вы выбираете новый объект в списке Объектов, допустимые события для него перечислены в раскрывающемся списке Процедуры.) Выбирают событие из раскрывающегося списка Процедуры, и пустая процедура добавляется к модулю класса (рис.5). Можно записывать необходимый код для обработки события.

Инициализация объявленного Объекта

До того как процедура будет выполнена, необходимо подключить объявленный в модуле класса объект (у нас он называется App) к объекту Application. Это делается следующим кодом из любого модуля.

Dim X As New EventClassModule

Sub Регистрация()

Set X.App = Word.Application

Теперь остается только выполнить процедуру Регистрация. Можно запустить ее из меню или вызвать из другой процедуры модуля. После этого объект App в модуле класса будет указывать на объект Word Application, и процедуры обработки события в модуле класса будут выполняться при возникновении событий.

Коллекция объектов Documents

Documents - это набор всех объектов Document, которые являются в настоящее время открытыми в Word.

Этому набору присущи свои свойства, методы и события.

Свойств у набора Documents немного (табл. 5).


Можно использовать свойство Documents, чтобы возвратить набор Documents. Следующий пример показывает названия открытых документов

For Each aDoc In Documents

aName = aName & aDoc.Name & vbCr "vbCr - это константа, определяющая символ возврата каретки (код 13)

Методов у набора Documents несколько больше (табл. 6).


Метод Add используется для создания нового пустого документа и добавления его к набору Documents. Следующий пример создает новый документ, основанный на шаблоне Normal.dot.

Синтаксис метода Add:

выражение.Add(Template, NewTemplate)

выражение - выражение, возвращающее объект Documents.

Template - необязательный параметр. Содержит имя шаблона, который будет использован для нового документа. Если параметр опущен, используется Normal.dot.

NewTemplate - необязательный параметр. Если параметр равен True, документ открывается как шаблон. По умолчанию значение False.

Метод Item используется для выбора конкретного элемента из набора. Элемент может быть определен по имени или по его номеру в наборе.

Синтаксис метода:

выражение.Item(Индекс)

Выражение - выражение, которое возвращает объект Documents.

Индекс - имя или индексный номер элемента набора.

Метод Item является заданным по умолчанию методом для наборов. Поэтому следующие две строки кода эквивалентны.

Application.Documents(1)

Application.Documents.Item(1)

Так же эквивалентны и следующие строки:

Application.Documents("Report.doc")

Application.Documents.Item("Report.doc")

Открывают файлы документов с помощью метода Open.

Синтаксис метода Open следующий:

выражение.Open(FileName, ConfirmConversions, ReadOnly, AddToRecentFiles, PasswordDocument, PasswordTemplate, Revert, WritePasswordDocument, WritePasswordTemplate, Format)

выражение - это выражение, возвращающее объект Documents.

FileName - обязательный параметр "имя файла". Этим параметром указывается путь к документу. Можно записать несколько файлов, отделяя имена файлов пробелами.

ConfirmConversions - необязательный параметр, может принимать значения True, если необходимо отобразить диалоговое окно Convert File, если файл записан не в формате Word.

ReadOnly - необязательный параметр. Равен True, если файл открывается только для чтения.

AddToRecentFiles - необязательный параметр, если равен True, то файл добавляется к списку файлов внизу меню Файл.

PasswordDocument - необязательный параметр. Содержит пароль для открытия документа.

PasswordTemplate - необязательный параметр. Содержит пароль для открытия шаблона.

Revert - необязательный параметр. Если FileName содержит имя файла уже открытого документа, то при равенстве параметра True документ повторно открывается без сохранения произведенных изменений. Если значение параметра False, то активизируется уже открытый документ.

WritePasswordDocument - необязательный параметр. Содержит пароль, запрашиваемый при сохранении изменений документа.

WritePasswordTemplate - необязательный параметр. Содержит пароль для сохранения изменений шаблона.

Format - необязательный параметр. Содержит конвертер для преобразования файла. Может быть записан одной из констант: wdOpenFormatAuto, wdOpenFormatDocument, wdOpenFormatRTF, wdOpenFormatTemplate, wdOpenFormatText, или wdOpenFormatUnicodeText. Значение по умолчанию - wdOpenFormatAuto.

Для определения внешнего формата файла применяется свойство OpenFormat объекта FileConverter, которое возвращает значение, записываемое в этот параметр.

Следующий код открывает файл Sales.doc. Имя файла указывается в кавычках.

Documents.Open FileName:="C:\Мои документы\Sales.doc" " открывается документ "Sales.doc"

В следующем примере документы из набора Documents перебираются, чтобы найти в наборе документ, названный "Report.doc". Если этот документ имеется в коллекции Documents, он активизируется, если нет, то документ открывается.

For Each doc In Documents

If doc.Name = "Report.doc" Then found = True

If found <> True Then

Documents.Open FileName:="C:\Documents\Report.doc"

Documents("Report.doc").Activate

Метод Close используется для закрытия документов и имеет синтаксис:

выражение.Close(SaveChanges, OriginalFormat, RouteDocument)

выражение - выражение, которое возвращает объект Document или Documents.

SaveChanges - необязательный параметр. Определяет действие при сохранении документа. Может быть одна из следующих WdSaveOptions констант:

WdDoNotSaveChanges (не сохранять изменения);

WdPromptToSaveChanges (выдавать диалоговое окно с запросом на сохранение изменений);

WdSaveChanges (сохранять без запросов).

OriginalFormat - необязательный параметр. Определяет формат для сохранения документа. Может быть одна из следующих wdOriginalFormat констант: wdOriginalDocumentFormat, wdPromptUser, wdWordDocument.

RouteDocument - необязательный параметр. True, если документ направляется следующему получателю.

Следующая строка кода закрывает документ, названный "Report.doc", без сохранения изменения. В ней указывается параметр SaveChanges, которому константой присвоено значение "не сохранять изменения".

Documents("Report.doc").Close SaveChanges: = wdDoNotSaveChanges

Метод Save применяется для сохранения одного или всех документов. Метод имеет несколько видов записи, в зависимости от ожидаемого результата.

1. Выражение.Save.

Запись в этом виде сохраняет указанный документ или шаблон. Если документ или шаблон не были сохранены прежде, диалоговое окно Save As запрашивает пользователя относительно имени файла.

Здесь выражение - выражение, возвращающее объект Document или Template.

2. Выражение.Save(NoPrompt, OriginalFormat).

Такая запись сохраняет все документы в наборе Documents. Если документ не был сохранен прежде, диалоговое окно Save As запрашивает пользователя относительно имени файла. Также в этой записи присутствуют два необязательных параметра.

Параметр NoPrompt. Если этот параметр имеет значение True, то Word автоматически сохраняет все документы. Если значение параметра False, то Word запрашивает пользователя о сохранении каждого документа, у которого были произведены изменения.

Параметр OriginalFormat определяет путь для сохранения документов. Может быть равен одной из следующих wdOriginalFormat констант: wdOriginalDocumentFormat, wdPromptUser, или wdWordDocument.

3. Выражение.Save(Comment)

Эта запись сохранит версию указанного документа с комментариями.

Следующий пример сохраняет активный документ.

ActiveDocument.Save

Следующий пример сохраняет каждый документ в наборе Documents без запроса к пользователю.

Documents.Save NoPrompt:=True, OriginalFormat:=wdOriginalDocumentFormat

Если файл Sales.doc открыт, то следующий код сохраняет версию фйла с добавленными к нему комментариями.

For Each doc in Documents

If Instr(1, doc.Name, "Sales.doc", 1) > 0 Then

doc.Versions.Save Comment:="незначительные изменения"

Объект Document

Представляет объект Document - элемент набора Documents. В отличие от набора Documents, объект Document насчитывает более сотни свойств. В основном свойства объекта Document используются для возвращения другого объекта или набора объектов, чтобы отработать уже с его свойствами и методами. В документе в основном приходится работать со словами, параграфами, символами, закладками, поэтому рассмотрим некоторые из свойств объекта Document, возвращающие эти объекты (табл. 7).


Для того чтобы отнестись к документу из набора избирательно, можно использовать свойство ActiveDocument объекта Application.

Следующий пример использует Activate-метод, чтобы инициировать документ, названный "Document 1." Пример также устанавливает горизонтальную ориентацию страницы и печатает документ.

Documents("Document 1").Activate

ActiveDocument.PageSetup.Orientation = wdOrientLandscape

ActiveDocument.PrintOut

Свойство Bookmarks возвращает набор Bookmarks, содержащий все закладки в документе.

Этот пример отыскивает стартовую и конечную позиции для первой закладки в активном документе.

With ActiveDocument.Bookmarks(1)

BookStart = .Start

Свойство Characters возвращает набор Characters, содержащий все символы в документе.

Следующий пример показывает первый символ в отборе. Если отбора нет, то возвращается первый символ после курсора.

char = Selection.Characters(1).Text

MsgBox "первый символ - ... " & char

Другой пример возвращает количество символов в первом предложении (пробелы включаются в подсчет).

numchars = ActiveDocument.Sentences(1).Characters.Count

О событиях и методах объекта Document читайте в следующей статье.

Малышев С.А.

На странице документа Word можно организовать работу с доста- точно сложной программой, даже не создавая для этого отдельных Win- dows-форм, запускающихся, например, при открытии документа или при нажатии на кнопку на странице документа, а просто разместив на нем поля ввода данных и показывая программно на той же странице результаты по- сле изменения данных.

Однако, многие математические расчеты проще выполнить в системе Excel, при хранении информации в базах данных очень большие возмож- ности обработки этой информации имеет Access. При работе с базами дан- ных в крупных информационных системах может быть предусмотрено формирование отчетов с выводом их в Word или Excel, при этом разработ- ку таких программ может выполнить лишь специалист, хорошо знакомый как с архитектурой базы данных информационной системы, так и с языком VBA.

Некоторые принципы работы с объектами Word можно освоить, если записать некоторую последовательность своих действий с помощью сред- ства Word Запись макроса, которое присутствует на вкладке ленты Разра- ботчик. Данная вкладка присутствует, если в Параметрах Word на стра- нице Основные стоит галочка у пункта Показывать вкладку Разработчик на ленте.

Выполним следующие действия:

1) нажмем на кнопку Запись макроса, ни кнопку, ни клавиши макросу можно не назначать, зададим, где будет сохраняться текст макроса: Макрос доступен для текущего документа;

2) переместимся в конец документа с текущей позиции (была не в конце), нажав клавиши Ctrl+End;

3) нажмем клавишу Enter и напишем слово «Привет!»;

4) еще раз повторим операцию пункта 3;

5) выделим последнее слово, нажав Shift+Home и нажмем клавишу Delete;

6) перейдем в начало первой строки «Привет!», нажмем Shift+End и затем клавишу Delete;

7) на вкладке Разработчик сначала нажмем кнопку Остановить запись, затем кнопку Visual Basic;

8) в открывшемся окне редактора Visual Basic слева на панели Project сделаем двойной щелчок мышкой на разделе Progect() - Modules - NewMacros и увидим справа окно с текстом программы на языке VBA, которое показано на рисунке 5.43.

При сохранении документа, в котором присутствуют программные модули, в системе Microsoft Office 2007 следует выбрать тип файла Доку- мент Word с поддержкой макросов, иначе текст программ не будет сохра- нен.

В тексте макроса на рисунке 5.43 Selection - один из основных объ- ектов, которые содержит главный объект Application - приложение Word.

Рисунок 5.43. Текст макроса на языке VBA


При написании текста программ можно использовать всплывающий список свойств и методов, который появляется для стандартных объектов в редакторе Visual Basic после написания имени объекта и нажатия после неё точки (см. рисунок 5.44), полное описание свойств и методов объектов присутствует в справочной системе.

Всплывающий список свойств и методов можно получить также, на- жав комбинацию клавиш Ctrl+пробел.


Кроме того, при написании текста программы для стандартный про- цедур и функций появляются всплывающие подсказки по их синтаксису (см. рисунок 5.45).

МsgВоА(Рrотрt [ШстеЛз VbМsgВохStуlе = vbОКОпlу], }