Объект Word.Document, программная работа со свойствами и методами документа в VBA




После того, как мы при помощи объекта Application запустили Word, при помощи коллекции Documents создали (или открыли, или нашли среди уже открытых) — в общем, получили ссылку на нужный нам документ, можно выполнять с этим документом различные действия, реализованные при помощи свойств, методов и событий объекта Document. У этого объекта десятки свойств и методов, и здесь мы рассмотрим только наиболее важные и часто используемые из них. Для самостоятельного рассмотрения будут оставлены очевидные и редкоиспользуемые свойства.

Обратите внимание, что к объекту Document можно обращаться и не создавая специальную объектную переменную. Существует еще по крайней мере три способа получения доступа к объекту Document:

· работать с документом как с элементов коллекции Documents. Формате обращения может выглядеть, например, так: Documents.Item(1);

· использовать специальное ключевое слово ThisDocument. При помощи него можно получить ссылку на объект документа, которому принадлежит исполняемый программный модуль, например:

MsgBox ThisDocument.Name

· использовать свойство объекта Application ActiveDocument. Это свойство возвращает нам объект активного документа:

MsgBox Application.ActiveDocument.Name

или просто

MsgBox ActiveDocument.Name

Самые важные свойства объекта Document представлены ниже:

· ActiveWritingStyle — текущий активный стиль (заголовок определенного уровня, обычный текст, гиперссылка и т.п.). Рекомендуется проверить перед вводом текста.

· AttachedTemplate — возможность подключить шаблон (со всеми макросами, стилями, записями автотекста и т.п.) или проверить, какой шаблон подключен (вручную это можно сделать через меню Сервис -> Шаблоны и надстройки).

· Background — возвращает объект Shape, представляющий фоновый рисунок (фоновые рисунки видны только в режиме Web-документ);

· BuiltInDocumentProperties — возможность получить ссылку на коллекцию DocumentProperties с одноименными объектами, представляющими встроенные свойства документа (название, автор, категория, комментарии и т.п.);

· Characters — возвращает коллекцию объектов Range, каждый из которых представляет один символ. Это свойство есть не только у объектов Document, но и у объектов Selection и Range. Может использоваться, например, для выполнения операция поиска и замены или статистических подсчетов (например, для если переводчику платят за количество символов);

· Content — свойство, возвращающее объект Range, представляющий главную цепочку документа (main document story). Если говорить проще — просто текст документа, без колонтитулов, сносок, комментариев и т.п.

· CustomDocumentsProperty — свойство, возвращающее коллекцию объектов DocumentProperties, представляющих пользовательские свойства документа. Можно использовать для сохранения вместе с документом любых значений переменных. Очень удобно, например, для подсчета количества открытий документов, флажков печатался/не печатался, сколько раз вызывалась та или иная функция, на каких компьютерах и каким пользователем открывался и т.п.

· DefaultTabStop — определить отступ по умолчанию при использовании символа табуляции. По умолчанию — 35 пунктов, что примерно равно 1,25 см;

· DisableFeatures — отключить возможности, которые понимают только последние версии Word (для совместимости с пользователями, у которых на компьютерах стоят старые версии). Обычно само свойство DisableFeatures просто включает этот режим, а конкретный уровень совместимости задается при помощи свойства DisableFeaturesIntroducedAfter.

· DoNotEmbedSystemFonts — не вставлять в документ системные шрифты (по умолчанию для русского, японского и т.п. вставляются). Позволяет сократить размер документа — но тогда пользователи в системе, где не стоит русский язык, не смогут прочесть этот документ.

· EmbedTrueTypeFonts — очень полезное свойство, если вы работаете с документом в месте, где используются экзотические шрифты (например, в издательстве). Вставка true-type шрифтов гарантирует, что получатели документа будут видеть его точно таким же, как и создатель.

· Envelope — позволяет получить ссылку на специальный объект Envelope, который используется для создания почтовых конвертов.

· Fields — возможность получить ссылку на коллекцию Fields одноименных объектов. Очень полезна при работе с полями.

· Footnotes — возможность получить коллекцию сносок.

· свойства Formatting… — что показывать в списке стилей в панели инструментов Форматирование.

· FormFields — аналогично Fields, но в этом случае мы получаем ссылку на поля в формах.

· FulName — полное имя объекта (вместе с путем к нему в файловой системе или Web). Доступно, конечно, только для чтения.

· GrammarChecked — пометить весь документ, как проверенный с точки зрения грамматики (фактически отключить проверку грамматики для данного документа). Такое же свойство существует и у объекта Range. Коллекцию ошибок, выловленных при проверке грамматики, можно получить при помощи свойства GrammaticalErrors, а выделить ошибки зеленым волнистым подчеркиванием (если они еще не выделены) — при помощи свойства ShowGrammaticalErrors. Для орфографических ошибок существует аналогичные свойства SpellingChecked, SpellingErrors и ShowSpellingErrors.

· HasPassword — проверить, назначен ли пароль для указанного документа. Password — назначить пароль. По причине крайней слабости парольной защиты пароли в Word, Excel и Access использовать не рекомендуется.

· Indexes — возвращает коллекцию индексов (то есть предметных указателей) для документа.

· Name — возвращает имя документа (без пути к нему).

· OpenEncoding — возвращает кодовую страницу, которая использовалась для открытия документа. Для русского языка по умолчанию, конечно, 1251.

· PageSetup — позволяет получить ссылку на одноименный объект. Используется, конечно, в основном при реализации печати.

· Paragraphs — возвращает ссылку на коллекцию абзацев в данном документе.

· Path — возвращает путь к документу в файловой системе (без имени). Может пригодиться, чтобы создать еще один файл по тому же пути.

· Permission — возможность получить доступ к объекту Permission, который позволяет управлять системой внутренних разрешений документа Word (не разрешений файловой системы).

· PrintRevisions — печатать или нет пометки редактора (исправления) вместе с документом. По умолчанию — печатать.

· ProtectionType — проверить защиту данного документа (разрешено все, или только комментарии, чтение, изменения в полях форм и т.п.). Сама защита устанавливается при помощи метода Protec()t.

· ReadOnly — здесь объяснений не требуется. Это свойство доступно только на чтение (поскольку соответствующий атрибут устанавливается в файловой системе).

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

· Saved — очень важное свойство. Позволяет определить, изменялся ли документ со времени последнего изменения.

· SaveEncoding — позволяет явно указать (или получить) кодировку, которая будет использоваться при сохранении документа.

· SaveFormat — позволяет получить информацию о формате документа (DOC, RTF, TXT, HTML и т.п.). Доступно только для чтения.

· Sections — возвращает коллекцию разделов документа. Sentences — то же самое для предложений. Аналогично работают свойства Shapes, Styles, Subdocuments, Tables, Windows и Words.

· Type — возвращает тип документа (обычный, шаблон или Web-страница с фреймами).

· Variables — еще одно очень удобное свойство. Можно использовать для сохранения своих служебных данных вместе с документом, как и пользовательские атрибуты (custom attributes), но в отличие от пользовательских атрибутов документа, пользователям эти свойства не видны.

Теперь — о самых важных методах объекта Document:

· Activate() — этот метод позволяет сделать указанный вами документ активным (например, для ввода текста).

· AddToFavorities() — добавить ссылку на документ в каталог "Избранное". Может быть полезным, если пользователь будет работать с ним постоянно.

· CheckSpelling() и CheckGrammar() — запустить проверку орфографии и грамматики соответственно.

· Close() — закрыть документ. Можно закрыть с сохранением (по умолчанию), а можно — без (если указать соответствующий параметр).

· Compare() — сравнить документ с другим и сгенерировать редакторские пометки в местах, где обнаружены различия.

· DataForm() — возможность редактирования форм данных — то есть данных, которые в документе разделены разделителями полей и строк. Вообще говоря, формы данных в Word рекомендуется использовать только в случае крайней необходимости — гораздо больше дл работы с упорядоченными данными приспособлены Excel и Access.

· DetectLanguage() — определить язык текста. Проверка производится по предложениям, на основе сверки слов в них со встроенными словарями. Такая проверка производится автоматически во время ввода текста или открытия нового документа. Чтобы заново провести проверку языков, свойство LanguageDetected нужно перевести в False.

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

· FollowHyperlink() — открыть указанный вами документ в соответствующем приложений (если HTML, то в Internet Explorer).

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

· Merge() — возможность произвести слияние двух документов. Метод очень сложный и мощный, основывается на применении редакторских пометок.

· PresentIt() — открывает данный документ Word в PowerPoint.

· PrintOut() — очень сложный метод, который позволяет вывести на печать весь документ или его часть. Принимает два десятка параметров (все — необязательные). Может использоваться для объектов Application, Document и Window.

· PrintPreview() — перевести документ в режим предпросмотра.

· Protect() — возможность ограничить внесения изменений в документ при помощи пароля или IRM.

· Range() — очень важный метод. Возвращает объект Range (он будет рассмотрен ниже), принимает в качестве параметров номер начального символа диапазона и номер конечного символа.

· Redo() — повторить последнее действие. В качестве параметра принимает количество последних действий, возвращает True, если повтор был произведен успешно.

· Repaginate() — переразбить документ на страницы. Обычно используется, если автоматическая разбивка была ранее отключена.

· Save() — смысл этого метода очевиден. Если документ еще не сохранялся, открывается диалоговое окно Save As.

· SaveAs() — очень мощный и сложный метод. Можно определить путь для сохраняемого документа, его формат, кодировку, пароли на открытие и изменение документа, вставку шрифтов и многое другое. Очень полезный метод, например, для автоматической конвертации документов.

· Select() — позволяет просто выделить весь документ. Этот метод существует для очень большого количества объектов, в том числе Selection и Range.

· TransformDocument() — исключительно мощный метод, но только для программистов, которые хорошо разбираются в XML и XSLT. Позволяет применить к документу таблицу преобразований стилей (Extensible Stylesheet Language Transformation, XSLT), при помощи которой можно поменять все, что угодно.

· Undo() — отменить определенное количество последних действий. По синтаксису и принципам работы — полный аналог Redo().

· UndoClear() — очистить буфер отмены изменений, чтобы пользователь не смог откатить произведенные действия.

· UnProtect() — снять защиту с документа (определенную методом Protect() или на графическом интерфейсе). Может быть очень полезным перед программным внесением изменений в защищенный документ.

Часто используемых событий у объекта Document всего три — New() (можно определить только для шаблона, срабатывает, когда на основе этого шаблона создается новый документ), Open() и Close(). Все эти свойства очевидны и изначально доступны в окне редактора кода Visual Basic.

 

Следующая группа операторов предназначена для манипулирования

данными в таблицах. В нее входят операторы выбора (SELECT)

строк из таблицы (или таблиц), уничтожения (DELETE) строк в

таблице, вставки (INSERT) строк, и изменения (UPDATE) значений

в существующих в таблице строках.

 

Оператор DELETE.

 

 

Уничтожить в таблице kadry все строки, в которых номер цеха ра-

вен 4, а фамилия кончается на буквы "ов"

---------------------------------------------------------------

DELETE FROM kadry WHERE ceh=4 AND fio MATCHES "*ов"

---------------------------------------------------------------

В результате из списков будут вычеркнуты работники 4-го цеха

"Петров", "Иванов", "Сидоров" и т.п

Как видим, INFORMIX предоставляет националистически озабоченным

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

 

А этот оператор уничтожит ВСЕ строки в таблице kadry, владель-

цем которой является moshkow, но не саму таблицу

---------------------------------------------------------------

DELETE FROM moshkow.kadry

---------------------------------------------------------------

 



Поделиться:




Поиск по сайту

©2015-2024 poisk-ru.ru
Все права принадлежать их авторам. Данный сайт не претендует на авторства, а предоставляет бесплатное использование.
Дата создания страницы: 2019-04-14 Нарушение авторских прав и Нарушение персональных данных


Поиск по сайту: