Semenalidery.com

IT Новости из мира ПК
3 просмотров
Рейтинг статьи
1 звезда2 звезды3 звезды4 звезды5 звезд
Загрузка...

Word object model

Объектная модель 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.):

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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 из макроса Microsoft Word, мы можем опускать вызов Application — то есть, в вышеприведенном примере можно написать так:

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

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

Читать еще:  Как убрать разрешить редактирование в word

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

Общие сведения об объектной модели Word

При разработке решений Word в Visual Studio выполняется взаимодействие с объектной моделью Word. Эта объектная модель состоит из классов и интерфейсов, которые предоставляются в основной сборке взаимодействия для Word и задаются в пространстве имен Microsoft.Office.Interop.Word.

Применение. Сведения этого раздела применяются к проектам уровня документа и уровня приложения для Word 2013 Preview и Word 2010. Дополнительные сведения см. в разделе Доступность функций по типам приложений Office и проектов.

В этом разделе представлен краткие общие сведения об объектной модели Word. Список документации для более глубокого изучения всей объектной модели Word см. в разделе Документация по использованию объектной модели Word.

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

· Работа с документами

· Работа с текстом в документах

· Работа с таблицами

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

В Word предоставляются сотни объектов, с которыми можно взаимодействовать. Эти объекты организованы в иерархию, которая точно следует за пользовательским интерфейсом. Вверху иерархии находится объект Application. Этот объект представляет текущий экземпляр Word. Объект Application содержит объекты Document, Selection, Bookmark и Range. Каждый из этих объектов имеет множество методов и свойств, которые можно получить доступ для управления и взаимодействия с объектом.

На следующем рисунке показано одно представление этих объектов в иерархии объектной модели Word:

Краткий справочник по объектной модели Word

На первый взгляд, объекты перекрываются. Например объекты Document и Selection члены объекта Application, но объект Document также член объектаSelection. Оба объекта, Document и Selection, содержат объекты Bookmark и Range. Перекрытие существует, поскольку существует множество способов доступа к одному и тому же типу объекта. Например, форматирование применяется к объекту Range; но может понадобиться получить доступ к объектам в диапазоне текущего выбора, конкретного параграфа, раздела или всего документа.

В следующих разделах дается краткое описание объектов верхнего уровня и способов их взаимодействия друг с другом. Это следующие пять объектов:

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

Объект приложения

Объект Application представляет приложение Word и является родительским для всех других объектов. Его члены обычно применяются к Word в целом. Его свойства и методы можно использовать для управления средой Word.

В проектах надстроек уровня приложения можно получать доступ к объекту Application с помощью поля Application класса ThisAddIn. Дополнительные сведения см. в разделе Программирование надстроек уровня приложения.

В проектах уровня документа можно получать доступ к объекту Application с помощью поля Application класса ThisDocument.

Объект документа

Объект Microsoft.Office.Interop.Word.Document является основой для программирования в Word. Он представляет документ и все его содержимое. При открытии документа или создании нового документа создается новый объект Microsoft.Office.Interop.Word.Document, который добавляется в коллекцию Documentsобъекта Application. Документ, в котором находится фокус, называется активным документом. Он представляется свойством ActiveDocument объекта Application.

Средства разработки Office в Visual Studio расширяют объект Microsoft.Office.Interop.Word.Document, предоставляя тип Microsoft.Office.Tools.Word.Document.Этот тип является ведущим элементом, который предоставляет пользователю доступ ко всем функциям объекта Microsoft.Office.Interop.Word.Document, содержит дополнительные события, а также позволяет добавлять управляемые элементы управления и смарт-теги.

Читать еще:  Как работать с таблицами в word

При создании проекта уровня документа разработчик может обратиться к участникам Microsoft.Office.Tools.Word.Document с помощью созданного классаThisDocument в проекте. Доступ к участникам ведущего элемента Microsoft.Office.Tools.Word.Document можно получить с помощью ключевых слов Me илиthis из кода в классе ThisDocument или с помощью Globals.ThisDocument из кода вне класса ThisDocument. Дополнительные сведения см. в разделеНастройки программирования уровня документа. Например, для выбора параграфа документа используется приведенный ниже код.

VB

В проектах уровня приложения можно создавать ведущие элементы Microsoft.Office.Tools.Word.Document во время выполнения. Можно использовать созданный ведущий элемент для добавления элементов управления в связанный документ. Дополнительные сведения см. в разделе Расширение документов Word и книг Excel в надстройках уровня приложения во время выполнения.

Объект выбора

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

Объект Range

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

· Объект диапазона может представлять собой одну точку вставки, диапазон текста или весь документ.

· Он может включать непечатные символы, например пробелы, символы табуляции и метки параграфов.

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

· Этот объект невидим в документе, в отличие от выделения, которое видимо всегда.

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

При вставке текста в конец диапазона Word автоматически расширяет диапазон на размер вставленного текста.

Объекты элементов управления содержимым

Объект Microsoft.Office.Interop.Word.ContentControl предоставляет способ управления вводом и представлением текста и содержимого других типов в документах Word. Объект Microsoft.Office.Interop.Word.ContentControl может отображать несколько разных типов элементов пользовательского интерфейса, оптимизированных для использования в документах Word, например, элемент управления текстом в формате RTF, элемент выбора даты или поле со списком.Объект Microsoft.Office.Interop.Word.ContentControl можно также использовать для предотвращения редактирования пользователем разделов документа или шаблона.

Visual Studio расширяет объект Microsoft.Office.Interop.Word.ContentControl, разделяя его на несколько различных элементов управления ведущего приложения.Поскольку объект Microsoft.Office.Interop.Word.ContentControl способен отображать любой тип элементов пользовательского интерфейса, доступных для элементов управления содержимым, Visual Studio предоставляет отдельный класс для каждого типа таких элементов управления содержимым. Например, с помощью объекта Microsoft.Office.Tools.Word.RichTextContentControl можно создать элемент управления текстом в формате RTF, а с помощью объектаMicrosoft.Office.Tools.Word.DatePickerContentControl — элемент выбора даты. Поведение этих элементов управления ведущего приложения аналогично поведению собственных элементов управления Microsoft.Office.Interop.Word.ContentControl, однако они еще имеют дополнительные возможности событий и привязки к данным. Дополнительные сведения см. в разделе Элементы управления содержимым.

Объект закладки

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

· Имена закладкам можно давать во время разработки.

· Объекты Microsoft.Office.Interop.Word.Bookmark сохраняются с документом, т.е. они не удаляются при остановке выполнения кода или при закрытии документа.

· Закладки можно скрывать или делать видимыми, устанавливая для свойства ShowBookmarks объекта View соответствующее значение false или true.

Visual Studio расширяет объект Microsoft.Office.Interop.Word.Bookmark, предоставляя элемент управления ведущего приложенияMicrosoft.Office.Tools.Word.Bookmark. Поведение элемента управления ведущего приложения Microsoft.Office.Tools.Word.Bookmark аналогично поведению собственного элемента управления Microsoft.Office.Interop.Word.Bookmark, при этом он также предоставляет возможность привязки к данным и содержит дополнительные события. Теперь в документе можно привязывать данные к элементу управления «закладка» также, как выполняется привязка данных к элементу управления «текстовое поле» в форме Windows Forms. Дополнительные сведения см. в разделе Элементы управления Bookmark.

Использование документации по объектной модели Word

Дополнительные сведения об объектной модели машинного слова можно ссылаться на ссылку на основной сборки взаимодействия машинного слова (PIA) и ссылке объектную модель Visual Basic для приложений (VBA).

Документация по основной сборке взаимодействия

В справочной документации по основной сборке взаимодействия Word описываются типы основной сборки взаимодействия для Word. Этот документ доступен по следующему адресу: Word 2010 Primary Interop Assembly Reference.

Дополнительные сведения о проектировании основных сборок взаимодействия Word, таких как различия между классами и интерфейсами в основных сборках взаимодействия и реализацией событий в этих сборках, см. в разделе Overview of Classes and Interfaces in the Office Primary Interop Assemblies.

Справка по объектной модели VBA

Ссылки объектной модели документов кода VBA объектная модель машинного слова, поскольку она предоставляется коду VBA. Дополнительные сведения см. в разделе Ссылка 2010 объектной модели машинного слова.

Введение в программирование в Word. Обзор объектной модели Word

Объектная модель Microsoft Word, объекты Application, Document, Selection, Range, Bookmark

Общая структура объектов Word выглядит так, как показано на рис. 10.1.

Рис. 10.1 Так выглядят главные объекты Word

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

· объект Document (с коллекцией Documents);

· объект Bookmark (с коллекцией Bookmarks).

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

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

Читать еще:  Страница в линейку word

Объект Word.Application, запуск нового экземпляра Word, события объекта Word.Application

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

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

Dim oWord As New Word.Application

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

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

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

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

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

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

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

Dim oWord As New Word.Application

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

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

Однако на практике, кроме очень специальных случаев (активизация объектов OLE), такой подход по сравнению с открытием нового экземпляра Word ничего нам не дает. Наоборот, появляется дополнительный риск нечаянно испортить открытый в существующем экземпляре созданный пользователем документ или закрыть существующий экземпляр Word без сохранения пользовательских документов. Поэтому лучше создавать новый экземпляр 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), для которого можно выбрать события и добавлять код в событийные процедуры точно так же, как это мы делаем для формы и элементов управления.

1. Таганов Л. С., Пимонов А. Г. Информатика: [Электронныйресурс]: учеб.пособие для студентов техн. направлений испециальностей вузов/ Л. С. Таганов, А. Г. Пимонов; ГУ КузГТУ. – Кемерово, 2010. – 330 с.

2. Информатика. Базовый курс: учеб. пособие для студентов втузов/ под ред. С. В. Симоновича. — 3-е изд. — СПб.: Питер, 2012. — 640 с.

3. Таганов, Л. С. Конспекты лекций по курсу«ИНФОРМАТИКА»: [Электронный ресурс]: для студентов всех форм обученияспециальности130400.65 «Горное дело» / Л. С. Таганов; КузГТУ. – Кемерово, 2013. – 290 с.

Дата добавления: 2018-04-04 ; просмотров: 288 ;

Объектная модель MS Word. Свойства и методы объекта Application модели MS Word. Пример;

Интеграция приложений средством Automation.

В табл.29 представлены некоторые приложения и их программ­мные идентификаторы (ProgID), используемые при программирова­нии объектов Automation. В общем случае идентификатор ProgID состоит из имени приложения, типа или класса объекта, отделенных точкой.

Для доступа к объектам Automation (объектам COM) обычно используют функцию CreateObject. Синтаксис ее следующий:

CreateObject (Class, [ServerName]),

где Class – имя объекта Automation;

ServerName используется только при создании объекта Automation в сети и указывает на имя сервера, где установлено приложение-сервер (объект COM).

Коллекции, входящие в состав объектной модели, представляют собой списки однотипных по способу создания и размещения объектов (документов, абзацев, таблиц, предложений и т.д.), доступ к которым осущ-ся по индексу (все коллекции в объектных моделях заканчиваются буквой «s»). Элемент коллекции может содержать объекты и коллекции, а отдельный объект –коллекции. Например, документом коллекции Documents является объект Document, а каждая таблица содержит коллекции строк (Rows) и столбцов (Colunms) и объект типа «ячейка»(Cell). Доступ к любому объекту или коллекции возможен через корневой объект Application. Так, например, объект Paragraph не может быть создан отдельно от содержащего его документа. Коллекции также могут содержать и элементы различные по содержанию. Например, коллекция форм может содержать текстовое поле (TextBox), OLE-объект и т.д. Используя коллекции, свойства и методы объекта Application, можно создавать, открывать, редактировать и форматировать документы. Полностью объектная модель MS Word описана в файле справки VBAWDxx.CHM, где xx–число, определяющее версию продукта.Ниже приведены фрагменты кода, которые часто используются при работе с объектами модели MS Word.-

Пример. Создать программный код, выполняющий проверку орфографии текста в приложении MS Word, а также подсчитать количество слов в тексте.

Private Sub Command1_Click()

Dim wordCount As Long

Const wdDoNotSaveChanges As Integer =0, _

wdAlertsNoneAs Integer = 0

Const wdStatisticWordsAs Integer = 0’слов

Dim vWordAs Object

Set vWord= CreateObject(«Word.Application»)

.Visible= False’Приложение Word невидимо

.DisplayAlerts= wdAlertsNone ‘Запрещаем диалоги

.Documents.Add‘Открытие нового документа

‘Копируем содержимое поля в документ

.Selection.Text= Text1

‘Запускаем проверку орфографии

.ActiveDocument.CheckSpelling

s = .Selection.Text’Копируем результат обратно

‘Для многострочного текста

Text1 = Replace(s, Chr(13), vbCrLf)

With.ActiveDocument

wordCount= .ComputeStatistics(Statistic:=wdStatisticWords)

.CloseSaveChanges:=wdDoNotSaveChanges

Ссылка на основную публикацию
Adblock
detector