Ms word средства автоматизации создания документов

Обновлено: 07.07.2024

Пример кода

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

  • Вставка абзацев с текстом и форматированием.
  • Просмотр и изменение различных диапазонов в документе.
  • Вставка таблиц, форматирование таблиц и заполнение таблиц данными.
  • Добавление диаграммы.

Добавьте ссылку на библиотеку объектов Microsoft Word. Для этого выполните следующие действия:

  1. On the Project menu, click Add Reference.
  2. На вкладке COM найдите объект библиотека объектов Microsoft Word и нажмите кнопку Выбрать.

Note (Примечание ) В Visual Studio 2005 не нужно нажимайте кнопку выбрать.

Note (Примечание ) В состав Microsoft Office 2003 входят основные сборки взаимодействия (PIA). Microsoft Office XP не включает PIA, но их можно скачать.

В меню Вид выберите пункт Панель элементов, чтобы отобразить панель элементов, а затем добавьте кнопку в форму Form1.

Дважды щелкните элемент Button1. Откроется окно кода для формы.

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

Прокрутите окно до верхней части окна кода. Добавьте следующую строку в конец списка директив using:

Нажмите клавишу F5 для построения и запуска программы.

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

Использование шаблона

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

  • Вы можете больше управлять форматированием и размещением объектов в документах.
  • Вы можете создавать документы с меньшим количеством кода.

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

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

Еще одно преимущество использования шаблона состоит в том, что вы можете создавать и хранить стили форматирования, которые вы хотите применить во время выполнения, следующим образом:

Ссылки

Для получения дополнительных сведений ознакомьтесь со статьями базы знаний Майкрософт:

Шаблон — это файл, содержащий настройки Word. Любой документ Word создается на основе некоторого шаблона. Большинство создается на основе шаблона Normal.dot, который загружается автоматически, например, при нажатии кнопки "Создать" на стандартной панели инструментов. При открытии документа, основанного на некотором шаблоне, последний загружается автоматически.

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

Шаблоны и формы служат для автоматизации разработки типовых документов и для организации работы с ними неквалифицированных пользователей ЭВМ.

В редакторе Word имеется набор шаблонов для часто используемых документов. Как правило, эти шаблоны хранятся в папке MSOffice\Шаблоны . Однако, пользователь может создавать и свои собственные шаблоны.

В шаблоне может храниться следующая информация:

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

Стиль — это набор форматирующих команд, сохраняемых под своим именем для многократного использования. Стиль определяет внешний вид документа. Шаблон Normal.dot содержит несколько стилей, в том числе стиль "Обычный", используемый при создании большинства документов.

Создание форм

Формой может быть любой документ, содержащий поля. Существует три типа полей: для ввода текста ; флажок ; раскрывающийся список . Порядок вставки полей достаточно прост: установите курсор в позицию для ввода поля формы, обратитесь к меню Вид/Панели инструментов/Формы . На панели "Формы" выберите один из трех типов полей. Поскольку формы очень часто создаются для быстрой разработки типовых документов, на панели "Формы" имеются инструменты для вставки и редактирования таблиц и для защиты формы.

Построение формы проходит в 3 этапа:

  • создание текстовой основы (структуры) формы;
  • вставка и настройка полей формы;
  • защита и сохранение формы.

Первый этап является обычным оформлением документа. Для форматирования сложных документов часто используются таблицы.

О вставке полей формы говорилось выше, поэтому остановимся на их настройке.

Для настройки поля следует на панели "Формы" выбрать "Параметры поля формы" . В зависимости о того какое поле выделено, откроется одно из трех окон для настройки.

Окно "Параметры текстового поля" содержит следующие основные поля:

Окно "Параметры флажка" позволяет настроить размер флажка и его состояние по умолчанию: "Снят" или "Установлен" . Флажок может быть связан с макросом, текстом справки и т.д.

Окно "Параметры поля со списком" позволяет задать раскрывающийся список, содержащий до 25 значений, из которых пользователь может выбирать нужное значение при заполнении поля формы. Имеется возможность добавления, удаления и изменения порядка следования значений.

Во всех окнах для настройки параметров полей имеется кнопка "Текст справки", с помощью которой можно подготовить справку по каждому из полей (в печатных документах этой цели служат подстрочные надписи). В окне "Текст справки для поля формы" имеются две вкладки: "Строка состояния" и "Клавиша F1". Текст справки, введенный на первой вкладке будет автоматически выводиться в строке состояния при активизации соответствующего поля. Справка, введенная на второй вкладке, выводится в отдельном окне при нажатии клавиши F1.

Созданный документ можно назвать формой, если он имеет поля формы и защищен. В незащищенном документе поля не будут проявлять необходимых свойств. Кроме того, защищенная форма отличается тем, что ее нельзя редактировать, а можно только заполнять поля формы. Защитить форму можно двумя способами.

  • выбрать меню Сервис/Установить защиту. ;
  • в окне "Защита документа" установить метку "Запретить любые изменения, кроме ввода данных в поля форм" и нажать "Ok";
  • при необходимости ввести текст пароля для открытия документа.

Второй способ заключается в выборе инструмента "Защита формы" на панели "Формы".

Для редактирования структуры формы защиту следует снять повторным нажатием на инструмент "Защита формы".

Создание шаблона

Выполните Файл/Создать. . В окне "Создание документа" установите метку "Шаблон" , найдите и выделите шаблон "Обычный" , на основе которого будет создан свой шаблон. Нажмите "Ok" .

Установите требуемые параметры форматирования документа, введите тексты и другую информацию, которую следует сохранить в шаблоне.

Выберите меню Файл/Сохранить как. и папку, в которой нужно сохранить шаблон. В поле "Имя файла" введите имя шаблона и нажмите "Ok" . Расширение .dot будет добавлено к имени шаблона автоматически.

Настоящая статья посвящена теме, может быть, и не новой, но, как показывают письма читателей, по-прежнему актуальной — автоматизации приложений Microsoft Office. Многие разработчики в процессе работы над своими проектами (неважно, с помощью какого средства разработки — Delphi, C++Builder, Visual Basic…) нередко применяют сервисы, предоставляемые Microsoft Office, например построение сводных таблиц и диаграмм с помощью Microsoft Excel, генерацию и печать документов с помощью Microsoft Word и т.д. Нередко пользователи, привыкшие использовать приложения Microsoft Office в повседневной работе, сами настаивают на применении в приложениях таких сервисов либо просто на сохранении отчетов и других документов в одном из форматов Microsoft Office. Отметим, что потенциальные пожелания подобного рода компанией Microsoft учтены достаточно давно — практически все, что в состоянии сделать пользователь любого приложения Microsoft Office с помощью меню, клавиатуры и инструментальной панели, может быть произведено и автоматически, то есть либо из VBA-программы, либо из приложения, созданного с помощью одного из средств разработки. Иными словами, приложения Microsoft Office являются программируемыми. Программируемость в общем случае означает возможность управления данным приложением с помощью макроязыков либо с помощью других приложений. Все компоненты Microsoft Office поддерживают один и тот же макроязык: Visual Basic for Applications (VBA), позволяющий создавать приложения непосредственно внутри документов Office (это называется «решения на базе Microsoft Office»). Управление же компонентами Office из других приложений осуществляется с помощью автоматизации (Automation, ранее — OLE Automation) — все приложения Microsoft Office являются серверами автоматизации (или COM-серверами). Для создания таких приложений пригодны любые средства разработки, позволяющие создавать контроллеры автоматизации (COM-клиенты). Наиболее часто для этой цели используется Visual Basic, но это могут быть и Delphi, и C++Builder, и Visual C++. Однако прежде чем обсуждать возможности тех или иных средств разработки, следует разобраться, что такое автоматизация.

Коротко об автоматизации

Автоматизация — это одна из возможностей, предоставляемых технологией Microsoft COM (Component Object Model). Не вдаваясь в подробности реализации этой технологии, заметим, что она используется приложениями (называемыми COM-серверами) для предоставления доступа к их объектам, а также к свойствам и методам этих объектов другим приложениям (называемым COM-клиентами), каковыми могут быть и средства разработки. Например, текстовый процессор, будучи COM-сервером, может предоставлять другим приложениям доступ к документу, абзацу, закладке с помощью соответствующих объектов. Для именования (и опознания) COM-серверов обычно используются специальные строковые обозначения — программные идентификаторы (Programmatic Identifier, ProgID). Они нужны для того, чтобы операционная система могла с помощью этих идентификаторов определить, в каком именно каталоге (или на каком компьютере локальной сети, если используется тот или иной способ удаленного доступа к серверу) расположен исполняемый файл сервера автоматизации, и запустить его на выполнение. О том, какие именно программные идентификаторы применяются для того или иного приложения Microsoft Office, будет сказано в разделах, посвященных этим приложениям.

Объекты автоматизации с точки зрения программирования мало чем отличаются от обычных объектов, знакомых нам из теории и практики объектно-ориентированного программирования. Как и обычные объекты, они обладают свойствами и методами. Свойство — это характеристика объекта; например, свойством абзаца (объект Paragraph) может быть его стиль (Style). Методом называется действие, которое можно выполнить с объектом (например, можно сохранить документ с помощью метода SaveAs объекта Document).

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

Вся информация об объектах, необходимая контроллерам автоматизации, содержится в библиотеках типов. Библиотеки типов хранятся в специальном бинарном формате и обычно представлены в виде файлов с расширениями *.olb или *.tlb, а также могут содержаться внутри исполняемых файлов (*.exe) или динамически загружаемых библиотек (*.dll). Библиотеки типов можно просматривать с помощью утилиты OleView, входящей в состав Microsoft Platform SDK, а средства разработки фирмы Borland содержат свои собственные утилиты просмотра библиотек типов.

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

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

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

Закончив экскурс в COM и автоматизацию, вернемся к вопросу о том, какие средства разработки удобно применять для создания контроллеров автоматизации.

VBA и средства разработки контроллеров автоматизации

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

Освоение объектной модели автоматизируемого сервера можно начать с записи необходимой последовательности действий в виде макроса с помощью VBА. Создать макрос можно, выбрав из меню приложения Microsoft Office пункт Tools | Macro |Record New Macro. Просмотр полученного макроса в редакторе кода VBA обычно позволяет понять, как должен выглядеть код, реализующий эту последовательность действий.

Обсудив возможные средства разработки контроллеров автоматизации, можно наконец перейти к самим приложениям Microsoft Office, к их объектным моделям и к их использованию. В качестве средства разработки для приведенных ниже примеров используется Borland Delphi 5, но поскольку в них приводится последовательность вызова свойств и методов объектов Microsoft Office, перенос кода на другие языки программирования не должен вызвать особых затруднений. Если специально не оговорено, в данной статье во всех примерах используется раннее связывание.

Объектные модели Microsoft Office

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

В качестве иллюстрации того, как выглядит иерархия объектов Microsoft Office, приведем небольшой фрагмент объектной модели Microsoft Word (рис.1):

В объектных моделях всех приложений Microsoft Office всегда имеется самый главный объект, доступный приложению-контроллеру и представляющий само автоматизируемое приложение. Для всех приложений Microsoft Office он называется Application, и многие его свойства и методы для всех этих приложений также одинаковы. Наиболее часто мы будем использовать следующие из них:

  1. Свойство Visible (доступное для объекта Application всех приложений Microsoft Office) позволяет приложению появиться на экране и в панели задач; оно принимает значения True (пользовательский интерфейс приложения доступен) или False (пользовательский интерфейс приложения недоступен; это значение устанавливается по умолчанию). Если вам нужно сделать что-то с документом Office в фоновом режиме, не информируя об этом пользователя, можно не обращаться к этому свойству — в этом случае приложение можно будет найти только в списке процессов с помощью приложения Task Manager.
  2. Метод Quit закрывает приложение Office. В зависимости от того, какое приложение Office автоматизируется, он может иметь параметры или не иметь таковых.

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

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

  1. Проверить, запущена ли копия приложения-сервера.
  2. В зависимости от результатов проверки запустить копию автоматизируемого приложения Office либо подключиться к уже имеющейся копии.
  3. Сделать окно приложения-сервера видимым (в общем случае это не обязательно).
  4. Выполнить какие-то действия с приложением-сервером (например, создать или открыть документы, изменить их данные, сохранить документы и пр.)
  5. Закрыть приложение-сервер, если его копия была запущена данным контроллером, или отключиться от него, если контроллер подключился к уже имеющейся копии.

Соответствующий код для Delphi представлен в листинге 1.

Здесь мы воспользовались функциями GetActiveOleObject и CreateOleObject для подключения к уже запущенной копии приложения-сервера или запуска новой, если сервер не запущен, что приводит к тому, что в вариантную переменную помещается ссылка на объект Application соответствующего сервера.

Приведенная часть кода контроллера в других средствах разработки может выглядеть по-другому — она не имеет прямого отношения к методам объектов Office, так как обусловлена правилами вызова стандартных функций OLE в Delphi (за исключением вызовов методов Visible и Quit объекта Application). А вот все то, что должно быть вставлено вместо комментария «Здесь выполняются другие действия с объектами приложения Office», в разных средствах разработки должно выглядеть более или менее однотипно — используя созданную вариантную переменную, мы манипулируем методами и свойствами объекта Application.

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

несмотря на то что метод Quit объекта Application в случае некоторых приложений Microsoft Office (например, Microsoft Word) имеет параметры.

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

App.Quit(EmptyParam, EmptyParam, EmptyParam);

Исключением из этого правила является Visual Basic — это средство разработки позволяет не задумываться о числе параметров методов при написании кода.

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

Автоматизация Microsoft Word

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

Презентация на тему: " MS WORD. MS WORD.Средства автоматизации создания документов." — Транскрипт:

2 MS WORD. MS WORD.Средства автоматизации создания документов

3 Поиск и замена Правка/Найтиили Правка/Заменить Найти и заменить Найти ЗаменитьПерейти Выполняются через меню Правка/Найти. или Правка/Заменить. В обоих случаях открывается окно "Найти и заменить" с тремя вкладками: "Найти", "Заменить", и "Перейти". Пример

4 Сервис / Язык / Расстановка переносов Автоматическая расстановка переносов Выполняется через меню Сервис / Язык / Расстановка переносов. В открывшемся окне следует установить флажок "Автоматическая расстановка переносов" Перенос слов Перенос слов Пример

5 Вставка номеров страниц Вставка / Номера страниц Для вставки номеров страниц следует выполнить: Вставка / Номера страниц и в окне "Номера страниц" отрегулировать положение номеров. Пример

6 Колонтитулы Колонтитулы содержат текст, номер слайда или страницы и дату, которые должны отображаться в верхней или нижней части слайдов, заметок или раздаточных материалов. Пример

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

8 Порядок создания оглавления (Шаг 1) Выделите текст

9 Стиль Форматирование Формат / Стиль. В поле "Стиль" панели "Форматирование" выберите стиль заголовка. Более широкий набор форматов дает обращение к меню Формат / Стиль. Порядок создания оглавления (Шаг 2)

10 Порядок создания оглавления (Шаг 3) Повторите шаг 1, 2 для других заголовков, включаемых в оглавление.

11 Порядок создания оглавления (Шаг 4) Поместите курсор в то место документа, где необходимо вставить оглавление.

12 Вставка / Ссылка / Оглавление и указатели Оглавление Обратитесь к меню Вставка / Ссылка / Оглавление и указатели и откройте вкладку "Оглавление". Порядок создания оглавления (Шаг 5)

13 Порядок создания оглавления (Шаг 6) Показать номера страниц ОК Выберите формат оглавления, установите флажок "Показать номера страниц" и нажмите « ОК ».

14 Вставка указателей Указатель Указатель это список понятий и определений со ссылками на страницы, на которых эти понятия встречаются.

15 Вставка указателей Создание указателя Сборка указателя Идентификация элемента указателя Первый слайд Выход

Читайте также: