Объект word application методы

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

В статье я не буду приводить примеров кода, так как по сути, нечего показывать, вы и сами с легкостью сможете написть небольшой скрипт на языке VBScript или JScript, или просто добавить макрос в редактор VBA, и просмотреть, как работают Word Application методы.

Объект Word Application — Методы

Activate() — Активизирует указанный объект.

BuildKeyCode(Arg1, Arg2, Arg3, Arg4) — Возвращает уникальный номер для указанной комбинации клавиш. Обязательнм является только первый параметр (Arg1). Все параметры содержат значение константы WdKey.

KeyString(KeyCode, KeyCode2) — Возвращает строку комбинаций клавиш для указанных ключей, которые содержат значения константы WdKey (например, Ctrl + Shift + A). Обязательным является только первый параметр.

ChangeFileOpenDirectory(Path) — Устанавливает каталог, к которому Word будет обращаться при работе с документами. По умолчанию таким каталогом является “Мои документы”.

CheckGrammar(Str) — Проверяет строку на предмет грамматических ошибок. Вернет True, если строка не содержит ошибок. Word Application методы.

CheckSpelling(Str) — Проверяет строку на предмет орфографических ошибок. Вернет True, если строка не содержит ошибок.

CleanString(Str) — Удаляет непечатаемые символы (коды символов 1 — 29) и специальные символы из заданной строки или заменяет их пробелами (символ кода 32). Возвращает результат в виде обработанной строки.

GoBack() — Перемещение курсора назад по последним трем позициям, в которых происходило редактирование (аналогично нажатию Shift + F5), Word Application методы

GoForward() — Перемещение курсора вперед по последним трем позициям, в которых происходило редактирование.

Help(HelpType) – Метод Word Application отображает установленную информацию справки.

HelpType – Определяет параметры показа, содержит значение константы WdHelpType:

  • WdHelp — 0 — Отображает диалоговое окно справки.
  • wdHelpAbout — 1 — Отображает диалоговое окно «О программе Microsoft Word».
  • wdHelpActiveWindow — 2 — Отображение справку, описывающую команду, связанную с активным просмотром или панелью.
  • wdHelpContents — 3 — Отображает диалоговое окно справки.
  • wdHelpExamplesAndDemos — 4 — Отображает «Примеры и демонстрации».
  • wdHelpIndex — 5 — Отображает диалоговое окно справки.
  • wdHelpKeyboard — 6 — Отображает справку по сочитаниям клавиш.
  • wdHelpPSSHelp — 7 — Отображает информацию о поддержке продукта.
  • wdHelpQuickPreview — 8 — Отображает быстрый просмотр.
  • wdHelpSearch — 9 — Отображает диалоговое окно справки.
  • wdHelpUsingHelp — 10 — Отображение список разделов справки, которые описывают, как использовать Справку.
  • wdHelpIchitaro — 11 — Открывает файл справки для пользователей Ichitaro.
  • wdHelpPE2 — 12 — Показывает справку по IBM Personal Editor 2.
  • wdHelpHWP — 13 — Открывает файл справки для пользователей AreA хангыль.

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

ListAllCommands – Параметр содержит логическое значение, true – все команды, false – только основные команды.

Move(Left, Top) – Позиция окна задач или активного документа. Параметры определяют горизонтальную и вертикальную позицию. Word Application методы

NewWindow() — Открывает новое окно для текущего документа. Возвращает объект Window.

ShowClipboard() — Отображает Буфер обмена.

SubstituteFont(UnavailableFont, SubstituteFont) — Устанавливает варианты отображения шрифта.

UnavailableFont — Название шрифта, недоступного на вашем компьютере, который вы хотите сопоставить с другим шрифтом для отображения и печати.

SubstituteFont — Название шрифта, доступного на вашем компьютере, который вы хотите заменить недоступным шрифтом.

Quit(SaveChanges, OriginalFormat, RouteDocument) — выход Microsoft Word и, возможно, сохраняет или маршруты открытые документы.

SaveChanges — Определяет, сохранять ли сделанные изменения в документе. Значение константы WdSaveOptions:

  • wdDoNotSaveChanges — 0 — Не сохранять сделанные изменения.
  • wdPromptToSaveChanges — 2 — Запросить у пользователя, чтобы сохранить внесенные изменения.
  • wdSaveChanges — 1 — Сохранить сделанные изменения автоматически без запроса пользователя.

OriginalFormat – Определяет параметры сохранения. Значения константы WdOriginalFormat:

  • wdOriginalDocumentFormat — 1 — Оригинальный формат документа.
  • wdPromptUser — 2 – Пользователю будет предложено выбрать формат документа.
  • wdWordDocument — 0 – Формат документа Microsoft Word.

RouteDocument — True, чтобы направить документ на следующего получателя. Если документ не имеет маршрутизации, то аргумент игнорируется, Word Application методы.

ResetIgnoreAll() – снимает метку со всех фрагментов текста, которые помечены как «без проверки» в процессе проверки орфографии.

Resize(Width, Height) — Размеры окна приложения Word или указанного окна задач. Параметры определяют ширину и высоту окна.

Run(MacroName, varg1, … , varg30) – запуск указанного макроса Visual Basic. Обязательный только первый параметр.

MacroName — Имя макроса.

varg1 … varg30 – До 30 параметров, передаваемых макросу.

ScreenRefresh() – Метод включает обновление экрана в течении одной команды

KeyBoard(code) – Переключение раскладки клавиатуры, в качестве параметра (code) передается целое значение (например, 1033 – для русского языка, 1049 – для английского языка). Если вызвать метод без параметров, то будет возвращено текущее значение раскладки клавиатуры. Word Application метод.

OnTime(When, Name, Tolerance) – Устанавливает таймер для запуска макроса в указанное время.

When — Время, в которое нужно запустить макрос. Можно прописать строкой (“15:30”) или использовать функции работы со временем.

Name — Имя макроса.

Tolerance – Дополнительный параметр. Задает максимальное время в секундах, которое может пройти, прежде чем мкрос, который не успел запуститься будет отменен.

Следующие Word Application методы отвечают за преобразование измерительных величин.

CentimetersToPoints(Centimeters) — Преобразует сантиметры в пункты (1 см = 28,35 пункта).

InchesToPoints(Inches) — Преобразует дюймы в пункты (1 дюйм = 72 пункта).

LinesToPoints(Lines) — Преобразует линии в пункты (1 линия = 12 пунктов).

MillimetersToPoints(Millimeters) — Преобразует миллиметры в пункты (1 мм = 2,85 пункта).

PicasToPoints(Picas) — Преобразует пики в пункты (1 пик = 12 пунктов).

PixelsToPoints(Pixels, fVertical) — Преобразует пиксели в пункты.

fVertical – Дополнительный параметр, True – по вертикали, False – по горизонтали.

PointsToCentimeters(Points) — Преобразует пункты в сантиметры.

PointsToInches(Points) — Преобразует пункты в дюймы.

PointsToLines(Points) — Преобразует пункты в линии.

PointsToMillimeters(Points) — Преобразует пункты в миллиметры.

PointsToPicas(Points) — Преобразует пункты в пики.

PointsToPixels(Points, fVertical) — Преобразует пункты в пиксели.

События для Word Application — VBA

Объект Word Application предоставляет в распоряжение довольно много событий, но… изначально к ним нет доступа в редакторе VBA. Второй проблемой является то, что события Word Application VBA нельзя использовать в сценариях Windows Script Host, ну я такой лазейки не нашел.

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

  • Создаем новый модуль класса, для этого в меню Insert выберите пункт Class Module.
  • В окне редактора для созданного модуля пишем код:
    Public WithEvents App As Word.Application
  • Меняем в окне свойств значение свойства Name на EventClassModule

Все, теперь в редакторе кода в окне объектов появится объект App, который и предоставляет возможность работать с событиями Word Application в VBA.

:(

Аннотация: Лекция посвящена описанию объектной модели MS Word и подробному описанию методов, свойств и событий Application.

9.1. Объектная модель MS Word

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

В частности, это следующие:

  • Word (Microsoft Word) — чтобы вызывать объекты Microsoft Office Word из других приложений используется объект Word.
  • Application (Приложение) — объект, который включает в себя все остальные объекты и коллекции. Сам объект Application включается в объект Word.
  • Documents (Документы) — коллекция, которая включает в себя объекты Document (Документ). Объект Document представляет собой документ, с которым вы работаете в редакторе.
  • Bookmarks (Закладки) — c помощью объектов этой коллекции можно задавать места в документе, в которые, при автоматическом создании, можно вставлять изменяемые части.
  • Paragraphs (Абзацы), Sentences (Предложения), Words (Слова), Characters (Символы), Tables (Таблицы), OMath (Математические формулы), Эти коллекции, содержащие объекты, соответствующие их названиям, могут использоваться для обработки слов документа ( Words ), предложений ( Sentences ), отдельных символов ( Characters ) и т.д.
  • Selection (Выделенная область) — представляет собой выделенную область документа или позицию, в которую будет осуществляться вставка очередного символа. Этот объект часто используют при создании простых документов. Однако у него есть существенные недостатки, что делает предпочтительнее использование объекта Range в большинстве случаев.
  • Range (Диапазон) — входит в Document и другие объекты, представляет собой диапазон документа, ограниченный начальным и конечным символом.

Работая с объектной моделью MS Word следует понимать, что, например, объекты Document и Selection могут содержать одинаковые коллекции объектов, например, и там и там есть коллекция Characters, в которую входят объекты Character — то есть — символы. Однако в случае с объектом Document мы можем работать с любым символом документа, а в случае с Selection — лишь с символами в пределах выделенной области. Однако, несмотря на различия, и там и там коллекция Characters имеет одинаковые свойства и методы. То же самое касается и других коллекций и объектов.

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

9.2. Работа с объектными переменными

Объектные переменные — это переменные, которые хранят ссылки на объекты. Чтобы инициализировать объектную переменную, нужно использовать ключевое слово Set. Например, так (листинг 9.1.):

Set obj_NewWord = Word.Application


Листинг
9.1.
Связывание объекта с объектной переменной

Здесь вы можете видеть присваивание переменной ссылки на объект Word.Application. Код, подобный этому, нужен в других приложениях Microsoft Office для запуска нового экземпляра MS Word.

Для того чтобы вы могли работать с Microsoft Word из других приложений — подключите библиотеку Microsoft Word 12.0 Object Library. Сделать это можно, открыв в редакторе окно References командой Tools o References.

Немного ниже мы поговорим о том, что можно делать с объектными переменными, а пока сосредоточимся на их объявлении и инициализации.

Как видите, в листинге 9.1 мы не объявляли переменную — мы сразу присвоили ей ссылку на объект. При последующей работе с такой необъявленной объектной переменной, мы не сможем пользоваться подсказкой по свойствам и методам. Вспомните — когда вы набираете в редакторе имя элемента управления и ставите после него точку — вы видите подсказку. Это очень удобно, так как позволяет избежать ошибок и излишних «походов» в справочную систему VBA.

Для того чтобы справка по свойствам и методам работала, объектную переменную надо сначала объявить, а потом присвоить ей ссылку на объект. Например, так (листинг 9.2.):

Dim obj_NewWord As Word.Application
Set obj_NewWord = Word.Application


Листинг
9.2.
Предварительное объявление объектной переменной

Ссылку на объект можно присвоить в процессе объявления переменной. Для этого нужно воспользоваться ключевым словом New (листинг 9.3.):

Dim obj_NewWord As New Word.Application


Листинг
9.3.
Ключевое слово New при объявлении переменной

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

О том, как же пользоваться объектными переменными, скорее даже не ими, а объектами, на которые они ссылаются, мы поговорим ниже.

9.3. Объект Application — приложение

09-01-With For Each.docm — пример к п. 9.3.

Объект Application можно представить в виде приложения Microsoft Word.

Такой код позволит вывести в окно сообщения информацию об имени приложения:

Как видите, здесь мы обратились к свойству Name (Имя) объекта Application. Вот, что будет выведено при его исполнении (рис. 9.1.).

Свойство Name объекта Application

Рис.
9.1.
Свойство Name объекта Application

Здесь мы обходимся без объектных переменных, работая с уже существующим объектом. Ведь если этот код исполняется в Microsoft Word, это значит, что сам Microsoft Word уже запущен.

Чтобы упростить обращение к нескольким свойствам объекта, можно воспользоваться оператором With-End With. Этот оператор позволяет обращаться к нескольким свойствам или методам объекта в упрощенной форме. Например, чтобы вывести имя приложения и узнать номер сборки программы нужно воспользоваться таким построением (листинг 9.4.):

With Application
        MsgBox .Name
        MsgBox .Build
    End With


Листинг
9.4.
Оператор With — End With

Здесь мы использовали объект Application — вместо него может быть любой другой объект или объектная переменная.

Еще один оператор, которым удобно пользоваться при работе с объектами и коллекциями — это For Each…Next.

Например, для вывода в окнах сообщений имен всех открытых документов, можно написать такой код (листинг 9.5.):

Dim var_Doc
    For Each var_Doc In Application.Documents
       MsgBox var_Doc.Name
    Next var_Doc


Листинг
9.5.
Оператор For Each — Next

Var_Doc — это переменная типа Variant. Коллекция Application.Documents содержит все открытые документы. При каждом проходе цикла в переменную var_Doc записывается ссылка на очередной объект в коллекции.

Чтобы выйти из цикла, можно воспользоваться оператором Exit For.

Сейчас мы кратко опишем важнейшие методы, свойства и события объекта Application.

9.4. Методы объекта Application

9.4.1. BuildKeyCode, KeyString — горячие клавиши

BuildKeyCode возвращает уникальный цифровой код для заданной комбинации клавиш. Используется при назначении «горячих клавиш» для выполнения различных операций.

KeyString возвращает комбинацию клавиш для переданного кода.

Ниже мы рассмотрим пример программного назначения клавиатурной комбинации для вызова макроса.

9.4.2. ChangeFileOpenDirectorу — путь для работы с файлами

ChangeFileOpenDirectory позволяет установить директорию, в которой Microsoft Word ищет файлы для открытия. В установленной папке программа будет искать файлы при программном открытии файлов и при вызове окна открытия файлов.

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

Например, чтобы установить папку » C:Новые документы » в качестве папки по умолчанию, можно использовать такой код (листинг 9.6.):

Application.ChangeFileOpenDirectory ("C:Новые документы")


Листинг
9.6.
Установка новой папки по умолчанию

Следует отметить, что если мы вызываем метод или свойство объекта Application из макроса Microsoft Word, мы можем опускать вызов Application — то есть, в вышеприведенном примере можно написать так:

ChangeFileOpenDirectory ("C:Новые документы")

9.4.3. CleanString — очистка строк

CleanString очищает переданную строку от непечатаемых и специальных символов, превратив ее в обычный текст. Такой же текст можно получить, если скопировать текст из Microsoft Word в Блокнот, а потом — обратно. Например, с помощью такого кода можно получить очищенную строку из выделенной области документа (листинг 9.7.).

str_Clean = Application.CleanString(Selection.Text)


Листинг
9.7.
Очистка строки

9.4.4. Keyboard — программное переключение раскладки

Keyboard позволяет программно переключать раскладку клавиатуры. При переключении используется идентификатор языковых и клавиатурных установок. Чтобы включить русскую раскладку, можно воспользоваться таким кодом (листинг 9.8.):

Application.Keyboard 1049


Листинг
9.8.
Переключение на русскую раскладку клавиатуры

Очевидно, что 1049 — это код русского языка. Для включения английской раскладки используйте этот метод с идентификатором 1033.

9.4.5. ListCommands — справка по горячим клавишам

ListCommands это необычный метод — если вызвать его с параметром True (листинг 9.9.) — он создаст новый документ, содержащий таблицу со списком клавиатурных сочетаний, назначенных командам MS Word. Таблица содержит несколько десятков страниц.

Application.ListCommands True


Листинг
9.9.
Вывод информации о горячих клавишах

9.4.6. NewWindow — копия окна активного документа

09-02-New Window.docm — пример к п. 9.4.6.

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

Application.NewWindow


Листинг
9.10.
Создание копии окна активного документа

При необходимости можно задать, для какого именно документа вы хотите создать копию окна. Однако, это потребует использования других объектов. Например — коллекции Windows, содержащей окна документов. Такой код (листинг 9.11.) создаст одну копию для каждого открытого окна:

For i = Application.Windows.Count To 1 Step -1
    Application.Windows.Item(i).NewWindow
Next i


Листинг
9.11.
Создание копии для каждого открытого окна

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

В этом примере вам встретились неизвестные ранее свойства Count и Item. Первое обычно содержит количество элементов в коллекции, второе позволяет обращаться к элементам по индексам или именам.

При создании копии после имени документа появляется двоеточие с номером окна, например, «:1» для первого, «:2» для второго и т.д.

9.4.7. OnTime — запуск макросов по расписанию

09-03-OnTime.docm — пример к п. 9.4.7.

OnTime позволяет устанавливать таймер, по которому можно запустить макрос в определенное время. Например, чтобы выполнить макрос MyMacros, который хранится в том же документе, что и исполняемый макрос, достаточно выполнить такой код (листинг 9.12.).

Application.OnTime When:="08:37:00", Name:="MyMacros"


Листинг
9.12.
Установка таймера запуска макроса

Параметр When указывает на время запуска, параметр Name — на имя макроса. Важно, чтобы макрос был доступен как в момент запуска таймера, так и в момент запуска самого макроса. Для того чтобы это условие соблюдалось, желательно хранить макросы, запускаемые по таймеру, в Normal.dotm, в другом глобальном шаблоне, или в том же документе, в котором произошел запуск таймера.

Как видите, мы привели пример лишь для запуска макроса в строго определенное время. А как же быть, если нужно запустить макрос, например, через пятнадцать секунд после выполнения какой-либо процедуры? Ответ прост (листинг 9.13.)

Application.OnTime _ 
When:=Now + TimeValue("00:00:15"), _ 
Name:="MyMacros"


Листинг
9.13.
Запуск макроса по расписанию

Здесь мы запускаем тот же самый макрос, но уже через 15 секунд после установки таймера. Функция Now имеет тип Date и возвращает текущую дату и время, а функция TimeValue преобразует переданное ей время в формат Date.

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

Permalink

main

Switch branches/tags

Could not load branches
Nothing to show

{{ refName }}
default

Name already in use

A tag already exists with the provided branch name. Many Git commands accept both tag and branch names, so creating this branch may cause unexpected behavior. Are you sure you want to create this branch?

Go to file

  • Go to file

  • Copy path


  • Copy permalink

Cannot retrieve contributors at this time

Application object (Word)
Remarks
Events
Methods
Properties
See also

274 lines (254 sloc)

13.8 KB


Raw


Blame

Open in GitHub Desktop

  • Open with Desktop

  • View raw


  • Copy raw contents

  • View blame

title keywords f1_keywords ms.prod api_name ms.assetid ms.date ms.localizationpriority description

Application object (Word)

vbawd10.chm2416

vbawd10.chm2416

word

Word.Application

d1cf6f8f-4e88-bf01-93b4-90a83f79cb44

06/08/2017

medium

Application object (Word)

Application object (Word)

Represents the Microsoft Word application. The Application object includes properties and methods that return top-level objects. For example, the ActiveDocument property returns a Document object.

Remarks

Use the Application property to return the Application object. The following example displays the user name for Word.

MsgBox Application.UserName

Many of the properties and methods that return the most common user-interface objects—such as the active document (ActiveDocument property)—can be used without the Application object qualifier. For example, instead of writing Application.ActiveDocument.PrintOut, you can write ActiveDocument.PrintOut. Properties and methods that can be used without the Application object qualifier are considered «global.» To view the global properties and methods in the Object Browser, click <globals> at the top of the list in the Classes box. (Also see the Global object.)

Remarks

To use Automation (formerly OLE Automation) to control Word from another application, use the Microsoft Visual Basic CreateObject or GetObject function to return a Word Application object. The following Microsoft Excel example starts Word (if it is not already running) and opens an existing document.

Set wrd = GetObject(, "Word.Application")
wrd.Visible = True
wrd.Documents.Open "C:My DocumentsTemp.doc"
Set wrd = Nothing

Events

  • DocumentBeforeClose
  • DocumentBeforePrint
  • DocumentBeforeSave
  • DocumentChange
  • DocumentOpen
  • DocumentSync
  • EPostageInsert
  • EPostageInsertEx
  • EPostagePropertyDialog
  • MailMergeAfterMerge
  • MailMergeAfterRecordMerge
  • MailMergeBeforeMerge
  • MailMergeBeforeRecordMerge
  • MailMergeDataSourceLoad
  • MailMergeDataSourceValidate
  • MailMergeDataSourceValidate2
  • MailMergeWizardSendToCustom
  • MailMergeWizardStateChange
  • NewDocument
  • ProtectedViewWindowActivate
  • ProtectedViewWindowBeforeClose
  • ProtectedViewWindowBeforeEdit
  • ProtectedViewWindowDeactivate
  • ProtectedViewWindowOpen
  • ProtectedViewWindowSize
  • Quit
  • WindowActivate
  • WindowBeforeDoubleClick
  • WindowBeforeRightClick
  • WindowDeactivate
  • WindowSelectionChange
  • WindowSize
  • XMLSelectionChange
  • XMLValidationError

Methods

  • Activate
  • AddAddress
  • AutomaticChange
  • BuildKeyCode
  • CentimetersToPoints
  • ChangeFileOpenDirectory
  • CheckGrammar
  • CheckSpelling
  • CleanString
  • CompareDocuments
  • DDEExecute
  • DDEInitiate
  • DDEPoke
  • DDERequest
  • DDETerminate
  • DDETerminateAll
  • DefaultWebOptions
  • GetAddress
  • GetDefaultTheme
  • GetSpellingSuggestions
  • GoBack
  • GoForward
  • Help
  • HelpTool
  • InchesToPoints
  • Keyboard
  • KeyboardBidi
  • KeyboardLatin
  • KeyString
  • LinesToPoints
  • ListCommands
  • LoadMasterList
  • LookupNameProperties
  • MergeDocuments
  • MillimetersToPoints
  • Move
  • NewWindow
  • NextLetter
  • OnTime
  • OrganizerCopy
  • OrganizerDelete
  • OrganizerRename
  • PicasToPoints
  • PixelsToPoints
  • PointsToCentimeters
  • PointsToInches
  • PointsToLines
  • PointsToMillimeters
  • PointsToPicas
  • PointsToPixels
  • PrintOut
  • ProductCode
  • PutFocusInMailHeader
  • Quit
  • Repeat
  • ResetIgnoreAll
  • Resize
  • Run
  • ScreenRefresh
  • SetDefaultTheme
  • ShowClipboard
  • ShowMe
  • SubstituteFont
  • ToggleKeyboard

Properties

  • ActiveDocument
  • ActiveEncryptionSession
  • ActivePrinter
  • ActiveProtectedViewWindow
  • ActiveWindow
  • AddIns
  • Application
  • ArbitraryXMLSupportAvailable
  • Assistance
  • AutoCaptions
  • AutoCorrect
  • AutoCorrectEmail
  • AutomationSecurity
  • BackgroundPrintingStatus
  • BackgroundSavingStatus
  • Bibliography
  • BrowseExtraFileTypes
  • Browser
  • Build
  • CapsLock
  • Caption
  • CaptionLabels
  • ChartDataPointTrack
  • CheckLanguage
  • COMAddIns
  • CommandBars
  • Creator
  • CustomDictionaries
  • CustomizationContext
  • DefaultLegalBlackline
  • DefaultSaveFormat
  • DefaultTableSeparator
  • Dialogs
  • DisplayAlerts
  • DisplayAutoCompleteTips
  • DisplayDocumentInformationPanel
  • DisplayRecentFiles
  • DisplayScreenTips
  • DisplayScrollBars
  • Documents
  • DontResetInsertionPointProperties
  • EmailOptions
  • EmailTemplate
  • EnableCancelKey
  • FeatureInstall
  • FileConverters
  • FileDialog
  • FileValidation
  • FindKey
  • FocusInMailHeader
  • FontNames
  • HangulHanjaDictionaries
  • Height
  • International
  • IsObjectValid
  • IsSandboxed
  • KeyBindings
  • KeysBoundTo
  • LandscapeFontNames
  • Language
  • Languages
  • LanguageSettings
  • Left
  • ListGalleries
  • MacroContainer
  • MailingLabel
  • MailMessage
  • MailSystem
  • MAPIAvailable
  • MathCoprocessorAvailable
  • MouseAvailable
  • Name
  • NewDocument
  • NormalTemplate
  • NumLock
  • OMathAutoCorrect
  • OpenAttachmentsInFullScreen
  • Options
  • Parent
  • Path
  • PathSeparator
  • PickerDialog
  • PortraitFontNames
  • PrintPreview
  • ProtectedViewWindows
  • RecentFiles
  • RestrictLinkedStyles
  • ScreenUpdating
  • Selection
  • SensitivityLabelPolicy
  • ShowAnimation
  • ShowStartupDialog
  • ShowStylePreviews
  • ShowVisualBasicEditor
  • SmartArtColors
  • SmartArtLayouts
  • SmartArtQuickStyles
  • SpecialMode
  • StartupPath
  • StatusBar
  • SynonymInfo
  • System
  • TaskPanes
  • Tasks
  • Templates
  • Top
  • UndoRecord
  • UsableHeight
  • UsableWidth
  • UserAddress
  • UserControl
  • UserInitials
  • UserName
  • VBE
  • Version
  • Visible
  • Width
  • Windows
  • WindowState
  • WordBasic
  • XMLNamespaces

See also

  • Word Object Model Reference

[!includeSupport and feedback]

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

197

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

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

Рис. 10.1. Главные объекты Word

10.3.1. Как работать с объектом Application

Объект Application — это само приложение Microsoft Word. Все остальные объекты Word «вложены» в него. Создать этот объект — значит, запустить

Word на вашем компьютере. Как правило, это нам и необходимо (если мы создаем документ в формате Word из другого приложения, например из Access). Но не забудьте — если вы запускаете Word из другого приложения Office, то необходимо добавить в ваш проект ссылку на библиотеку Microsoft Word 11.0 Object Library.

Код запуска Word очень прост:

Dim oWord As New Word.Application

Однако, выполнив его из другого приложения, вы, скорее всего, даже не заметите, что у вас что-то произошло. Причины просты:

1.По умолчанию Word запускается в скрытом окне.

2.Если в нем не открыт ни один документ, он тут же закрывается (после того, как завершается создавшая его процедура).

Сделать Word видимым очень просто:

oWord.Visible = True

Однако может возникнуть вопрос: а нужно ли его делать видимым? Некоторые разработчики утверждают, что не нужно. Пусть Word работает в скрытом окне, создавая требуемый документ. Когда пользователю потребуется, он этот документ откроет. Как поступать в конкретном случае, решать вам, но я предпочитаю, чтобы Word все-таки был видимым: во-первых, сразу видны все проблемы при создании документа, а во-вторых, пользователям почемуто очень нравится, когда у них на глазах открывается Word и начинает печатать строки, которые в противном случае пришлось бы печатать им самим.

Если вы работаете с Word в скрытом окне, не забудьте после выполнения необходимых действий его закрыть (иначе он так и останется в оперативной памяти, видимый только через Task Manager). Для закрытия Word нужно вызвать его метод Quit().

Чтобы Word не закрывался сам собой, в нем достаточно создать новый документ. Подробно об этом будет рассказано в следующем разделе, но самый простой вариант создания нового документа Word выглядит так:

Dim oWord As New Word.Application oWord.Visible = True oWord.Documents.Add

Если Word уже был открыт на компьютере, то можно получить на него ссылку, например, при помощи такого кода:

Set oWord = GetObject(, «Word.Application»)

Однако на практике, кроме очень специальных случаев (активизация объектов OLE), такой подход по сравнению с открытием нового экземпляра Word

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

199

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

Если же ваш код VBA выполняется в Word (т. е. Word уже запущен), объект Application создавать не надо. В этой ситуации он будет автоматически доступен в любой момент (чтобы в этом убедиться, достаточно впечатать в окне редактора кода Application и добавить точку). Более того, если не указано, к какому объекту относится то или иное свойство или метод, компилятор VBA в Word автоматически считает, что это свойство или метод принадлежит объекту Application. Поэтому следующие два фрагмента кода функционально одинаковые:

Application.Selection.TypeText «Мой текст»

и

Selection.TypeText «Мой текст»

Еще один важный момент, который связан с объектом Application в Word. Для него предусмотрено большое количество удобных в использовании событий (открытие документа, выход из Word, щелчок правой кнопкой мыши, изменение документа, печать документа, сохранение документа и т. п.) Однако по умолчанию все эти события не видны. Чтобы они появились, необходимо в разделе Declarations кода формы (а не модуля!) объявить объект Application с ключевым словом WithEvents, например так:

Public WithEvents App As Word.Application

В списке объектов у вас появится новый объект App (т. е. Application), для которого можно выбрать события и добавлять код в событийные процедуры точно так же, как мы это делали для формы и элементов управления.

10.3.2. Свойства, методы и события объекта Application

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

ActiveDocument — возвращает объект активного документа в данном экземпляре Word. Это свойство используется очень активно, обычно без упоминания объекта Application, например:

ActiveDocument.Save

Свойство доступно только для чтения, поэтому чтобы сделать какойнибудь документ активным, придется вызывать для его объекта метод

Activate().

ActivePrinter — позволяет получить или настроить активный принтер в ходе работы программы. Также используется очень активно, например, если результаты работы вашего приложения необходимо печатать на определенном сетевом принтере. Свойство доступно как для чтения, так и для записи.

AutomationSecurity — определяет уровень безопасности при программном открытии файлов. По умолчанию установлено значение msoAutomationSecurityLow — открывать с включенными макросами. Мож-

но также использовать значения msoAutomationSecurityForceDisable (от-

ключить макросы) и msoAutomationSecurityByUI (то, что настроено на графическом интерфейсе).

BackgroundPrintingStatus — определяет, сколько заданий Word стоит в очереди на печать.

Browser — свойство, которое возвращает объект Browser (малозаметный набор из трех кнопок, который прячется под вертикальной полосой прокрутки). С программной точки зрения интересно его свойство Target, которое может принимать одно из 12 значений (комментарий, сноска, таблица, рисунок, заголовок, страница и т. п.). Затем при помощи методов Next() и Previous() для этого объекта мы можем перемещаться между этими элементами.

Build — возвращает версию и номер сборки Word. Очень полезно для проверки на совместимость, если ваше приложение работает только под определенными версиями Word.

CapsLock — позволяет проверить, включен ли режим CapsLock на клавиатуре. Изменить этот режим при помощи данного свойства нельзя (только для чтения), для этого есть другие средства (связанные с использованием Windows API). Аналогично работает свойство NumLock.

Caption — позволяет заменить текст «Microsoft Word» в заголовке окна на другой, например «Мое приложение».

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

COMAdIns — позволяет получить ссылку на коллекцию загруженных COM Ad ins — встраиваемых в Word приложений, построенных по технологии COM. Очень удобно использовать перед обращением к данному встраиваемому приложению.

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

201

CustomizationContext — свойство, которое позволяет указать шаблон или документ, на который будут распространяться внесенные вами изменения в меню, панели инструментов и клавиатурные комбинации. Например, код:

CustomizationContext = NormalTemplate

говорит о том, что все изменения, которые вы будете вносить, начиная с этого момента, будут сохраняться в шаблоне Normal.dot (и, таким образом, будут применяться ко всем документам).

Dialogs — возвращает коллекцию Dialogs, представляющую из себя все возможные диалоговые окна Word. При помощи этой «ветви» объектной модели Word вы можете открыть любое из сотен диалоговых окон Word и определить действия, которые будут предприняты при выборе пользователем тех или иных параметров в данном диалоговом окне. К сожалению, эта «ветвь» очень плохо документирована, и при использовании объектов диалоговых окон приходится заниматься самостоятельными исследованиями (при помощи макрорекордера и окна Locals), чтобы определить нужные свойства и их значения. По моему опыту, обычно бывает проще создать свою форму VBA, которая будет выполнять необходимые действия, чем заниматься такой исследовательской работой. Пример использования диалогового окна открытия файла может выглядеть так:

Dim oDlg As Dialog

Set oDlg = Application.Dialogs(wdDialogFileOpen) If oDlg.Display = -1 Then

MsgBox «Вы выбрали файл: » & _ Application.Options.DefaultFilePath(wdCurrentFolderPath) & _ «» & oDlg.Name

End If

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

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

ста TXT, текста Unicode, RTF и т. п.

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

DisplayAutoCompleteTips — включает или отключает подсказки для автозавершения текста. Чаще всего необходимо отключить.

Documents — самое важное свойство. Возвращает коллекцию документов. Подробнее про эту коллекцию и работу с документами читайте в

разд. 10.4.

EmailOptions — возвращает очень сложный и насыщенный свойствами объект EmailOptions, который используется для настройки Word как редактора почтовых сообщений Outlook.

EnableCancelKey — это свойство определяет, сможет ли пользователь прервать выполнение любого макроса при нажатии клавиш <Ctrl>+<Break>. Если установить для этого свойства значение wdCancelDisabled, то это приведет к тому, что макрос, вошедший в бесконечный цикл, можно будет закрыть только вместе с Word — через Task Manager.

FeatureInstall — еще одно свойство, которое позволяет не раздражать пользователя попытками Office доустановить еще не установленные компоненты. Для этого нужно установить это свойство в значение

msoFeatureInstallNone.

FileDialog — возвращает объект FileDialog, т. е. окно выбора файла, каталога, открытия файла или сохранения. Для открытия этого окна необходимо воспользоваться методом Show() этого объекта.

FileSearch — возвращает объект FileSearch, который может использоваться для поиска файлов по определенным параметрам.

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

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

KeyBindings — очень удобное во многих ситуациях свойство. Оно возвращает коллекцию KeyBindings — привязок клавиатурных комбинаций. Проще говоря, при помощи этого объекта и его подобъектов вы можете назначить любую команду Word или любой макрос любому сочетанию клавиш (в том числе и тем, которые уже заняты служебными командами, например <Alt>+<F4>). Общая последовательность действий при этом выглядит так:

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

203

определяем свойство CustomizationContext объекта Application, т. е.

где будут сохраняться наши изменения: в шаблоне Normal.dot, в текущем документе или в шаблоне, прикрепленном к текущему документу;

при помощи метода Application.BuildKeyCode() определяем цифровой код для нашей клавиатурной комбинации;

при помощи метода KeyBindings.Add() добавляем новое назначение, при этом определяем все необходимые параметры.

Например, чтобы по нажатию клавиш <Alt>+<D> у нас запускался макрос DataLoad() во всех документах, можно выполнить следующий код:

CustomizationContext = NormalTemplate Application.KeyBindings.Add wdKeyCategoryMacro, _

«Normal.NewMacros.DataLoad», BuildKeyCode(wdKeyAlt, wdKeyD)

Language — еще одно свойство, которое позволяет определить, установлена ли на компьютере пользователя локализованная версия Word (точнее, это свойство определяет язык пользовательского интерфейса). Для русского языка будет возвращаться значение 1049, для английского — 1033. Более подробную информацию (о языке помощи, языке программы установки и т. п.) можно получить при помощи свойства LanguageSettings.

MacroContainer — очень полезное свойство для программистов. Позволяет в ходе выполнения макроса определить, откуда был запущен текущий программный код (обычно проверяются два варианта — Normal.dot или текущий документ).

NewDocument — одна из возможностей создать новый документ Word. Возвращает объект NewDocument. Для создания нового документа используется

метод Application.NewDocument.Add().

NormalTemplate — это свойство позволяет получить ссылку на объект Template, представляющий Normal.dot, для внесения в него изменений.

Option — возвращает объект Option с огромным количеством свойств. Через этот объект программным способом можно настроить значения на всех вкладках окна Параметры (меню Сервис | Параметры).

Path — возвращает путь к программным файлам Word на диске.

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

ScreenUpdating — свойство, которое позволяет запретить перерисовку экрана (если установить его значение в False). Обычно используется для ускорения работы процедур, которые выводят что-то на экран.

Selection — еще одно важнейшее свойство. Возвращает объект Selection — то место, в котором находится указатель вставки. Подробнее о нем — в разд. 10.5.

ShowStartupDialog — определяет, показывать или нет Task Panel (панель задач в правой части документа) при запуске Word. Чаще всего используется для отключения показа. Есть еще несколько свойств с префиксом Show…, значения которых очевидны.

SpecialMode — позволяет проверить, не находится ли Word в специальном режиме копирования и вставки (для перехода в этот режим нужно выделить текст и нажать <F2> или <Shift>+<F2>, а потом переместить курсор и нажать <Enter>).

StartUpPath — предоставляет возможность просмотреть/определить путь к каталогу автозапуска. Те шаблоны и встраиваемые приложения, которые находятся в этом каталоге, Word при запуске открывает автоматически. По умолчанию каталог автозапуска находится в профиле пользователя. Путь к нему выглядит как application datamicrosoftwordstartup.

StatusBar — еще одно очень полезное свойство. Позволяет вывести текст в Status Bar (строка состояния), т. е. в строке в нижней части окна приложения, где выводится информация о страницах, столбцах, языке, режимах работы и т. п.

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

Microsoft System Information.

Tasks — возвращает одноименную коллекцию Tasks с объектами Task, представляющими все работающие в системе процессы. При помощи этих объектов можно программным способом найти работающее в системе приложение и что-нибудь с ним сделать (сделать видимым или невидимым, активизировать, закрыть, передать в его окно сообщение Windows, как при работе с Windows API и т. п.). Опытные разработчики активно используют этот набор объектов для работы с внешними приложениями. Запускать внешние приложения лучше всего при помощи специального объекта Shell, о котором будет рассказано в разд. 10.6.10.

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

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

205

UserInitials и UserName — позволяет получить или определить информацию об инициалах или имени пользователя. Инициалы используются в исправлениях, а имя пользователя — в свойствах документа.

VBE — это свойство возвращает недокументированный, но очень интересный объект VBE, представляющий редактор Visual Basic. Обычно используется для программного внесения изменений в проекты VBA, например, добавление ссылок.

Version — свойство возвращает версию Word (менее подробную, чем свойство Build). Для Word 2003 значение этого свойства равно 11.0.

Visible — позволяет спрятать окно Microsoft Word очень качественно — Word исчезает и c рабочего стола, и из панели задач.

Windows — возвращает информацию об одноименной коллекции Windows, содержащей объекты Window. Эти объекты представляют окна документов

Word.

WindowsState — позволяет свернуть, развернуть или восстановить окно

Word.

Самые важные методы объекта Application приведены далее.

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

BuildKeyCode() — позволяет узнать уникальный номер для клавиатурной комбинации в Word. Пример использования этого метода был приведен ранее при рассмотрении свойства Application.KeyBindings.

ChangeFileOpenDirectory() — этот метод позволяет изменить каталог, который по умолчанию открывает Word при работе с документами (по умолчанию задан, конечно, каталог Мои документы);

CheckGrammar() и CheckSpelling() — позволяют проверить грамматику и орфографию для передаваемых символьных значений. Чаще всего используются аналогичные методы для объектов Document и Range.

CleanString() — очень полезный метод. Позволяет «чистить» передаваемое символьное значение (полученное, например, от объектов Selection или Range) от специальных символов Word и превращает их в обычный текст, как будто он был набран в блокноте.

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

GoBack() — этот метод обеспечивает переход на последнее место редактирования в документе. Word сохраняет с документом три последние точки редактирования, так что открыть последний документ в Word и перейти на точку, где вы остановились, можно очень просто:

RecentFiles(1).Open

Application.GoBack

GoForward() — обеспечивает переход вперед по точкам сохранения.

KeyBoard() — очень полезный метод. Позволяет программным способом переключать раскладку клавиатуры в Word, уберегая таким образом пользователей от ошибок. Переключение на русский язык выглядит так:

Application.Keyboard 1049

а на английский:

Application.Keyboard 1033

Если этому методу ничего не передавать, он вернет текущую раскладку клавиатуры.

KeyString() — метод, обратный BuildKeyCode(). Если BuildKeyCode() воз-

вращает уникальный идентификатор клавиатурной комбинации, то этот метод возвращает клавиатурную комбинацию для данного уникального идентификатора.

ListCommands() — метод, не похожий на другие. Он создает новый документ и выводит в нем в виде таблицы справочник по методам и клавиатурным комбинациям Word, как стандартным, так и назначенным вами.

OnTime() — очень интересный метод. Он позволяет выполнить макрос Word либо в указанное вами время, либо по прошествии какого-то времени. В Word одновременно может работать только один таймер. При помощи этого метода можно выполнять ресурсоемкие операции в автоматическом режиме.

OrganizerCopy() — еще один полезный метод. Позволяет скопировать макрос, панель инструментов, запись автотекста или стиль из одного документа в другой. Для удаления и переименования этих элементов преду-

смотрены методы OrganizerDelete() и OrganizerRename().

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

Quit() — метод, который используется, видимо, чаще всех. Позволяет закрыть Word с сохранением или без сохранения документов.

Соседние файлы в предмете [НЕСОРТИРОВАННОЕ]

  • #
  • #
  • #
  • #
  • #
  • #
  • #
  • #
  • #
  • #
  • #

2006 г.

Word и его объекты
Лекция из курса «Основы офисного программирования и документы Word»

Биллиг Владимир Арнольдович
Интернет-Университет Информационных Технологий, INTUIT.ru

Назад Оглавление Вперёд

Свойства объекта Word.Application

Свойства любого объекта делятся на две группы: свойства-участники (объекты) и терминальные свойства (обычные переменные Visual Basic). Свойства-участники Word.Application приведены в таблицах 1.1 и 1.2. Там они были перечислены, сейчас мы рассмотрим их чуть более подробно. Но вначале несколько слов о более простой группе терминальных свойств.

Терминальные свойства

Терминальные свойства просты для понимания, и я не буду долго на них останавливаться. Большинство из них являются общими для всех объектов Application. Попытаюсь сейчас дать небольшой обзор терминальных свойств, объединяя их в группы:

  • Свойства Top, Left, Heihgt, Width, Caption определяют размеры и заголовок окна приложения.
  • Свойства, начинающиеся с префикса User, — UserAddress, UserName и другие задают характеристики пользователя.
  • Группа булевых свойств, начинающихся с префикса Display, — DisplayScreenTips, DisplayStatusBar и другие позволяют включать или выключать отображение на экране тех или иных элементов интерфейса.
  • Группа свойств, начинающихся префиксом Default — DefaultSaveFormat, DefaultTableSeparator позволяет устанавливать некоторые характеристики, используемые приложением по умолчанию.
  • Группа булевых свойств, использующих суффикс Available — MAPIAvailable, MouseAvailable, MathCoprocessorAvailable устанавливают доступность некоторых устройств.
  • Другие свойства — булевы и не булевы задают другие многочисленные характеристики, например, CapsLock и NumLock позволяют определить, нажаты ли на клавиатуре соответствующие клавиши, Path — путь к каталогу, содержащему Word, ActivePrinter — активный принтер и так далее.

Я приведу лишь один простой пример на использование терминальных свойств, полагая, что и так все понятно.

Public Sub WorkWithTerm()
   'Работа с терминальными свойствами
   'Выключаю опции
   Application. DisplayStatusBar = False
   Application. DisplayRecentFiles = False
   
End Sub

Листинг 1: html, txt

Изменяя терминальные свойства DisplayStatusBar и DisplayRecentFiles, я выключил панель статуса и показ в меню File файлов последнего использования. Убедившись в том, что они действительно выключились, я немедленно включил их уже руками, взведя соответствующие флажки в меню Tools|Options.

Рассмотрю подробнее лишь одно терминальное свойство, не столь тривиальное и отличающееся по своему духу от других свойств. Свойство IsObjectValid(obj As Object) и свойством назвать нельзя. Скорее это метод, аргументом которого является некоторый объект произвольного класса, а возвращаемое значение булевого типа показывает, существует ли объект, заданный аргументом метода (свойства). Это свойство полезно применять при работе, например, с коллекциями. Прежде чем начинать работу с тем или иным элементом коллекции, полезно проверить, а существует ли такой элемент, или, возможно, он уже был удален. Вот пример работы с этим свойством:

Public Sub IsObjectProp()
   'В этом примере используется свойство IsObjectValid
   Dim MyPath As String
   Dim SecondDoc As Document
   MyPath = ActiveDocument.Path
   'Определяем объект
   Set SecondDoc = Documents.Open(MyPath & "DocTwo.doc")
   'Удаляем объект, возможно, по ошибке
   Documents(1).Close
   'Теперь нам объект понадобился
   If Not IsObjectValid(SecondDoc) Then
      'Добавляем элемент в коллекцию
      Set SecondDoc = Documents.Open(MyPath & "DocTwo.doc")
   End If
   'Работа с документом DocTwo
   Debug.Print SecondDoc.Name
   
End Sub	

Листинг 1: html, txt

Заметьте, при работе с этим свойством я использую созданный мной объект SecondDoc, поскольку не могу написать IsObjectValid(Documents(«DocTwo»)). Написать то, конечно, могу, но при выполнении возникнет ошибка. Ошибка не связана с самой функцией IsObject, — она возникнет раньше при вычислении значения аргумента — Documents(«DocTwo»), поскольку в коллекции Documents этот элемент

Свойства — участники

Конечно, центральные объекты мира Word — это объекты, входящие в коллекции Documents и Templates, документы и шаблоны, открытые в приложении. Им-то и посвящена большая часть этой лекции. Но пока давайте хотя бы кратко коснемся объектов «второго плана».

Заголовки (CaptionLabels)

Коллекция объектов CaptionLabels (CaptionLabel) представляет заголовки, которые вставляются в документ одновременно со вставкой таблиц, рисунков, диаграмм и других подобных элементов документа. Следует отметить, что при вставке в документ каждого нового элемента определенного типа и его заголовка происходит автоматическая нумерация заголовков, (например, Рисунок 1, Рисунок 2 и т.д.).

В коллекцию разрешается добавлять новые заголовки и удалять существующие. При работе вручную следует выбрать в пункте Insert (Вставка) главного меню Word команду Caption (Название). В открывающемся диалоговом окне есть раскрывающийся список заголовков, из которого можно выбрать подходящий элемент и вставить его в документ. Кнопка New Label (Создать) позволяет добавить новый заголовок к уже имеющемуся списку. Кнопка Delete (Удалить) позволяет удалить заголовок. Вот как выглядит это окно:

Окно заголовков
Рис. 1.4.  Окно заголовков

Работа руками нас интересует в малой степени, хотя, конечно, программист должен уметь это делать. Но давайте посмотрим, как это делается программно. Вначале добавим к существующей коллекции заголовков три своих заголовка:

Public Sub AddCaptions()
 'Работа с коллекцией заголовков
 
   Dim Item  As CaptionLabel
   With CaptionLabels
      Debug.Print .Count
      'Добавление трех заголовков
      .Add "Мой Рисунок"
      .Add "Диаграмма Excel"
      .Add "Мой Пример"
      Debug.Print .Count
      For Each Item  In CaptionLabels
         Debug.Print Item .Name
      Next Item 
      'Удаление последнего заголовка
      .item(.Count).Delete
   
   End With
End Sub

Листинг 1: html, txt

Вот результаты отладочной печати, появляющиеся в окне отладки (Immediate):

Листинг 1: html, txt

Этот пример типичен для работы с коллекциями. Здесь добавляются и удаляются элементы коллекции, определяется их число, организуется цикл по всем элементам. Покажем теперь, как, используя эту коллекцию, можно программно вставлять в текст документа в нужном месте те или иные заголовки:

Public Sub InsertLabelInDoc()
   'Вставка заголовка в текст документа
      'Вставка заголовков
      With ActiveDocument
         .Paragraphs.Add
         .Paragraphs.Last.Range.Select
         Selection.InsertCaption Label:="Диаграмма Excel"
         .Paragraphs.Add
         .Paragraphs.Last.Range.Select
         Selection.InsertCaption Label:=CaptionLabels(CaptionLabels.Count)
      End With
End Sub

Листинг 1: html, txt

В данном примере дважды будет вставлен заголовок «Диаграмма Excel». Конечно, реально этот заголовок следует вставлять после (перед) соответствующей диаграммой, но в примере заголовки вставляются в конец документа, в последний его абзац. Заметьте, при вставке происходит автоматическая нумерация заголовков, так что в тексте документа появятся два таких заголовка:

Листинг 1: html, txt

Автозаголовки (AutoCaptions)

Коллекция объектов AutoCaptions (AutoCaption) представляет заголовки, которые могут быть автоматически добавлены при вставке в документ OLE-объектов. В эту коллекцию, конечно же, ни добавлять, ни удалять элементы не разрешается, но можно включить или отключить автоматическое добавление заголовка при вставке того или иного OLE-объекта. Работа вручную идет в уже упомянутом диалоговом окне, открываемом по команде Caption. Программно это можно делать так:

Public Sub >WorkWithAutoLabels()
 'Работа с коллекцией автозаголовков
    Dim Item  As AutoCaption
 
      Debug.Print AutoCaptions.Count
      For Each Item  In AutoCaptions
         'Включение автоматической вставки заголовка
         item.AutoInsert = True
         Debug.Print Item .Name
      Next Item
      
   End Sub

Листинг 1: html, txt

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

Листинг 1: html, txt

Автокоррекция (AutoCorrect)

Объект AutoCorrect поддерживает работу по автоматической коррекции набираемых текстов. Я широко использую возможности автокоррекции в своей работе. Чтобы не переключаться с русского на английский при печатании различных терминов, я ввел таблицу соответствующих замен. Теперь я печатаю «Ап», а получаю Application, печатаю «Во», а получаю Word и так далее. Возможности объекта AutoCorrect во многом совпадают с возможностями команды AutoCorrect (Автозамена) меню Tools. В следующем примере включаются все флажки, регулирующие процесс замены, и в коллекцию Entries, вложенную в объект, добавляются два элемента. Каждый элемент задается парой строк, первая из которых задает исходную строку, а вторая строку, заменяющую ее при автокоррекции печатаемого текста:

Public Sub WorkWithAutoCorrect()
   'Работа с объектом AutoCorrect
   'Включаются все флажки
    With AutoCorrect
      .CorrectInitialCaps = True
      .CorrectSentenceCaps = True
      .CorrectDays = True
      .CorrectCapsLock = True
      .ReplaceText = True
      .ReplaceTextFromSpellingChecker = True
      .CorrectKeyboardSetting = True
      
      'В коллекцию Entries, задающую замены при автокоррекции,
      'добавляются два элемента.
      .Entries.AddName:="ДЕ", Value:="Диаграмма Excel"
      .Entries.AddName:="ГЕ", Value:="График Excel"

   End With
End Sub

Листинг 1: html, txt

Перемещение по тексту. Объект Browser

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

Листинг 1: html, txt

Назад Оглавление Вперёд

Понравилась статья? Поделить с друзьями:
  • Объект windows в word
  • Объект window excel vba
  • Объект visio в word
  • Объект smartart microsoft word
  • Объект selection vba excel