Главная

Популярная публикация

Научная публикация

Случайная публикация

Обратная связь

ТОР 5 статей:

Методические подходы к анализу финансового состояния предприятия

Проблема периодизации русской литературы ХХ века. Краткая характеристика второй половины ХХ века

Ценовые и неценовые факторы

Характеристика шлифовальных кругов и ее маркировка

Служебные части речи. Предлог. Союз. Частицы

КАТЕГОРИИ:






Другие объекты Word




В объектной модели Word — сотни объектов, и подробно о каждом из них в рамках этой книги рассказать невозможно. Скорее всего, большая часть из них вам никогда не потребуется, а другие можно будет легко найти при помощи макрорекордера. Ниже приведена обзорная информация по самым важным из еще не рассмотренных объектов Word. Большая часть этих объектов доступна через одноименные свойства объекта Application и уже упоминалась при рассмотрении этих свойств.

10.6.1 Коллекция AddIns и объекты AddIn

Объекты Word.AddIn, работа с шаблонами и надстройками Word из VBA

Коллекция AddIns состоит из объектов AddIn, которые представляют глобальные шаблоны Word и встраиваемые приложения Word. Важная возможность этой коллекции заключается в том, что при помощи метода Add() можно в автоматическом режиме устанавливать шаблоны и надстройки (в неавтоматическом режиме это можно сделать через меню Сервис -> Шаблоны и надстройки). Если вы активно используете эти средства в своих приложениях, то есть смысл подумать над реализацией проверки наличия нужного шаблона или надстройки.

Шаблоны — это файлы с расширением.dot, которые служат образцами для создания документов Word. Чаще всего они используются для того, чтобы защитить от пользователя сохраненные начальные "заготовки" отчетов или как хранилища стилей, макросов, параметров и т.п. для сложных документов, для которых требуется стандартизация (например, в издательствах для рукописей и оригинал-макетов). Надстройки — это откомпилированные модули Dll (WLL — Word Add-In Library). Поскольку они откомпилированы и могут быть написаны на C++ (можно использовать и любой другой COM-совместимый язык, например, Visual Basic или Delphi), то работают они намного быстрее, чем родные программы VBA — макросы. Поэтому есть смысл задуматься об использовании надстроек, если вам нужно серьезное увеличение производительности.

Объект AutoCorrect

Объект AutoCorrect, работа с параметрами автозамены в Word из VBA

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

For Each Item In AutoCorrect.Entries

Item.Delete

Next

10.6.3 Коллекция Languages и объект Language

Объект Language, работа с установленными языками в Word из VBA

Эти коллекции представляют языки, которые знает данная версия Word и умеет с ними работать (самое ценное — словари для проверки орфографии и грамматики нужно устанавливать отдельно или пользоваться локализованной версией Word). Чтобы просмотреть текущий набор языков, с которыми умеет работать Word, можно воспользоваться кодом

For Each lan In Languages

Debug.Print lan.Name

i = i + 1

Next lan

Debug.Print i

10.6.4 Объект Options

Объект Options, программная работа с настройками Word из VBA

Этот объект с огромным количеством свойств позволяет настраивать практически любые свойства самого приложения Word и текущего документа. В нем есть все, что доступно через вкладку Сервис -> Настройка плюс еще множество параметров. Дочерних объектов у этого объекта нет — все, что в нем есть, доступно через его свойства. Например, чтобы включить в Word отображение белых букв на синем фоне (мой привычный режим), можно использовать команду

Options.BlueScreen = True

10.6.5 Объекты Find и Replacement

Объекты Word.Find и Word.Replacement, программный поиск и замена текста в документе Word средствами VBA

Объекты Find и Replacement, как понятно из их названий, предназначены для выполнения операций поиска и замены. Объект Find — это условия поиска, "упакованные" в программный объект. У него множество свойств (Text, Style, Font, Forward, MathCase, LanguageID и т.п.), которые позволяют эти условия поиска определить. Чтобы запустить поиск, используется метод Execute() со множеством необязательных параметров, которые во многом дублируют свойства этого объекта (передав параметр ReplaceWith, можно выполнить даже замену текста). Для того, чтобы заменить все или просто проверить результаты поиска, используется значение, возвращаемое методом Execute(). Если значение обнаружено (поиск был успешен), то возвращается true, а если нет — false.

Как будет работать объект Find, зависит от того, из под какого объекта он был создан. Если он был создан при помощи свойства Find объекта Selection, то при обнаружении нужного фрагмента он выделяется. Если он был создан при помощи такого же свойства объекта Range, то диапазон переопределяется на найденный текст. Например, чтобы найти и выделить следующее вхождение текста "2004", можно использовать код:

Selection.Find.Text = "2004"

Selection.Find.Execute

Объект Replacement точно так же хранит настройки замены. Например, чтобы заменить везде до конца документа текст "2004" на "2005", можно использовать код

Selection.Find.Text = "2004"

Selection.Find.Replacement.Text = "2005"

Selection.Find.Execute Replace:= wdReplaceAll

Многие программисты подстраховываются на случай, если во время поиска и замены возникнет ошибка из-за разницы в форматировании и используют метод ClearFormatting(). Этот метод очищает форматирование внутри объекта Find (на сам документ это никак не влияет) и позволяет производит поиск без учета форматирования. Например, наш код при использовании этого метода может выглядеть так:

Selection.Find.Text = "2004"

Selection.Find.ClearFormatting

Selection.Find.Replacement.Text = "2005"

Selection.Find.Replacement.ClearFormatting

Selection.Find.Execute Replace:=wdReplaceAll

 

10.6.6 Объекты Font и ParagraphFormat

Объекты Word.Font и Word.ParagraphFormat, программное изменение оформления документа Word средствами VBA

Эти объекты ответственны за форматирование, соответственно, участков текста и абзацев. Свойства объекта Font позволяют определить все параметры, которые доступны через меню Формат -> Шрифт, а свойства объекта ParagraphFormat — то, что доступно через Формат -> Абзац. Объект Font можно получить через свойство Font, которое есть, в частности, у объектов Selection, Range и Find, а объект ParagraphFormat — через свойство Format, которое есть у объектов Paragraph (для одного абзаца) и коллекции Paragraphs (для нескольких абзацев). Свойство Format, которое возвращает объект ParagraphFormat, есть и объекта Find.

Свойств у объектов Font и ParagraphFormat множество, но все они очевидны. Например, чтобы назначить выделенному тексту шрифт Arial и сделать его полужирным, можно использовать код

Selection.Font.Name = "Arial"

Selection.Font.Bold = True

а чтобы назначить первому абзацу текста выравнивание по ширине, можно использовать команду

Paragraphs(1).Format.Alignment = wdAlignParagraphJustify

10.6.7 Объект PageSetup

Объект Word.PageSetup, программная настройка параметров страницы перед печатью средствами VBA

Если в вашем приложении используется печать, чаще всего без использования этого объекта не обойтись. Он позволяет программным образом настроить то, что на графическом экране настраивается через меню Файл -> Параметры страницы. Объект PageSetup является вложенным в объекты Document, Selection и Range, и обычно обращение к нему происходит через эти объекты. Например, чтобы при печати документа он был выведен в альбомной ориентации, можно воспользоваться командой

ThisDocument.PageSetup.Orientation = wdOrientLandscape

10.6.8 Объекты Table, Column, Row и Cell

Объект Word.Table, программная работа с таблицами в документе Word из VBA, автосуммирование

Если в вашем предложении нужно вывести какой-то стандартный документ по утвержденной форме (платежка, кассовый ордер, командировочный отчет и т.п.), то, скорее всего, для форматирования вы будете использовать таблицу. Таблица во многих ситуациях позволяет гарантировать правильное расположение данных в форме относительно друг друга. Многие программисты изначально используют таблицу даже форм, которые на таблицы походи мало (сетку таблицы всегда можно скрыть, а ячейки — слить между собой).

Создание таблицы начинается с того, что в коллекцию Tables (она предусмотрена для объектов Document, Selection и Range) добавляется новый объект Table (в данном случае — с тремя строками и четырьмя столбцами):

Set Range1 = ThisDocument.Range(Start:=0, End:=0)

Dim Table1 As Table

Set Table1 = ThisDocument.Tables.Add(Range1, 3, 4)

Затем можно настроить свойства таблицы, например, воспользовавшись методом AutoFormat() (возможности у него — те же, что доступны через меню Таблица -> Автоформат):

Table1.AutoFormat wdTableFormatGrid 5

Чаще всего в итоге нам нужно ввести какие-либо данные в ячейку таблицы. Мы можем добраться до нужной ячейки через объекты Columns и Rows, Selection и Range, однако удобнее всего сделать так:

Table1.Cell(1,1).Range.InsertAfter "10"

Table1.Cell(2,1).Range.InsertAfter "15"

Table1.Cell(3,1).AutoSum

Мы ввели во первую строку первого столбца значение 10, во вторую строку первого столбца — значение 15, а в третьей строке мы просуммировали значения по всему столбцу. Таблицы Word — это, конечно, не Excel, но при помощи метода Formula() для объекта Cell в таблицу можно вставлять достаточно сложные вычисляемые значения.

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

Объект System






Не нашли, что искали? Воспользуйтесь поиском:

vikidalka.ru - 2015-2024 год. Все права принадлежат их авторам! Нарушение авторских прав | Нарушение персональных данных