Програмное формирование документа Word

Автор работы: Пользователь скрыл имя, 13 Февраля 2013 в 18:18, курсовая работа

Описание работы

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

Файлы: 1 файл

мой курсач.docx

— 48.65 Кб (Скачать файл)

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

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

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

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

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

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

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

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

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

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

4 Объекты  Selection, Range и Bookmark

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

4.1 Работа с объектом Selection

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

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

Как настроить выделение в документе  Word:

    • самый простой способ — просто положиться на выделение нужного текста пользователем. Обычно такой способ применяется для сложного редактирования/форматирования участков текста и для ввода информации в указанное пользователем место документа, когда в автоматическом режиме нужное место не найти;
    • воспользоваться методом Select(), который предусмотрен для огромного числа объектов (Document, Range, Bookmark, Table со всеми подобъектами типа столбцов и строк, PageNumber, Field и т.п.). Этот метод просто выделяет весь документ, закладку, таблицу и т.п.
    • воспользоваться многочисленными методами объекта Selection, чтобы преобразовать уже существующее выделение;
    • воспользоваться объектом Find для поиска нужного участка текста. Подробнее об этом объекте — в специальном разделе.
    • если вам нужно вводить информацию в самое начало документа, можно вообще ничего не делать. По умолчанию указатель вставки устанавливается на начало документа. Только не забудьте сделать этот документ активным.

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

    • работать со скрытым (то есть невидимым) документом или, возможно, со скрытым экземпляром Word. Для включения/отключения невидимости можно использовать свойство Visible для объектов Document и Application;
    • более удобный способ — вместо объекта Selection использовать объекты Range и Bookmark.

4.2 Свойства и методы объекта Selection

Свойства объекта Selection:

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

Start и End — свойства, которые определяют номер первого и последнего символа в выделении (по отношению к document story — то есть текста документа, или другого story — например, сносок). Первая позиция в document story — всегда 0. если вы создаете документ из неизменяемого шаблона, вполне можно использовать эти свойства, чтобы найти нужное место в документе для ввода текста (однако этот способ не очень рекомендуется — по причине того, что при правке шаблона вам придется править много программного кода).

Font — возвращает объект Font, при помощи которого можно управлять оформлением текста в выделении. Доступны все возможности, которые есть на графическом интерфейсе в меню Формат->Шрифт.

Range — возможность создать из выделения объект Range

Text — позволяет ввести текст на месте выделения (или в месте, где стоит указатель).

Type — еще одно проверочное свойство, которое позволяет предупредить ошибку, если пользователь выделил что-то неположенное

Методы  объекта Selection:

Calculate() — возможность посчитать математическое выражение прямо в процессе ввода текста и вернуть его результат (только используя тип данных Single).

ClearFormatting() — очистить форматирование (и на уровне текста, и на уровне параграфа). Свойство можно применять не только для объекта Selection, но и для объектов Find и Replace.

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

Expand() — расширить выделение на слово, предложение, абзац и т.п. — в зависимости от переданного параметра. Метод Extend() позволяет расширить выделение (вместо слова — предложение, вместо предложения — абзац и т.п.).

GotoNext() — перейти на следующую строку, страницу, закладку и т.п. Аналогично работает метод GotoPrevious() (переход на предыдущий элемент).

Next() — перейти вперед на определенное количество символов, слов, предложений, абзацев, разделов, столбцов и строк в таблице и т.п. Перейти назад позволяет метод Previous().

NextField() — перейти на следующее поле в форме (или проверить, не кончились ли поля (в этом случае этот метод вместо объекта Field возвратит Nothing). Есть также метод PreviousField().

SelectColumn(), SelectRow(), SelectCell() — очень удобные методы для выполнения различных операций в таблице Word.

SetRange() — самый простой способ настроить выделение. Передаются номер первого и последнего символа того участка текста, который нужно выделить. Нумерация начинается с 0, скрытые служебные символы также считаются. Такой же метод существует для объекта Range

TypeText() — самый простой, надежный и часто используемый метод ввода текста. Принимает единственный параметр — текст, который нужно ввести. Будет ли перезаписан текущий текст выделения, зависит от свойства ReplaceSelection объекта Options.

WholeStory() — выделить текущую часть документа (document story). Обычно используется, чтобы выделить текст документа без сносок, редакторской правки, колонтитулов и т.п.

4.3 Работа с объектом  Range, его свойства и методы

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

Формальное  определение объекта Range выглядит так: это программный объект, который представляет непрерывный участок текста в документе. Этот объект не зависит от объекта Selection — вы можете работать с объектом Range, не изменяя текущего выделения. Он может не включать в себя ни одного символа (представлять курсор ввода текста).

Как создается объект Range:

    • первый способ — воспользоваться методом Range() объекта Document. В этом случае вам потребуется передать номера начального и конечного символа диапазона, а также document story, в который будут отсчитываться эти символы.
    • второй способ — воспользоваться свойством Range, которое предусмотрено для огромного количества объектов ( Bookmark, Selection, Table-Row-Cell, Paragraph и т.п.). В этом случае при помощи этого свойства мы получаем объект Range, представляющий данный объект;
    • третий способ — воспользоваться большим количеством вспомогательных свойств (Characters, Words, Sentences и т.п.), которые делят текст на отрезки — объекты Range. Эти свойства возвращают коллекции объектов Range. Конечно, если вы создаете коллекцию объектов Range, представляющих каждый символ большого документа, с точки зрения производительности такое решение может быть не самым лучшим;
    • четвертый способ — переопределить существующий объект Range. Обычно для этой цели используется метод Range.SetRange();
    • пятый способ - заключается в том, что вы вначале создаете шаблон нужного вам документа (договора, приходного ордера, отчета и т.п.), в который при создании помещаете закладки в тем места, в которые потом потребуется произвести вставку данных. Затем программным способом для каждой закладки создается объект Range, и уже с его помощью производится ввод информации (данные о заказчике, сумма в кассовом ордере и т.п.)

Методы объекта Range:

IsEqual() — возможность сравнить два объекта Range (или объект Selection и объект Range). Если совпадают начальная позиция в документе, конечная позиция и document story, возвращается True.

FoneticGuide() — возможность вставить транскрипцию над текстом в документе.

Relocate() — возможность переставить местами абзацы в диапазоне.

Select() — возможность создать объект Selection на основе объекта Range (то есть просто выделить весь текст в этом объекте). Очень удобно для отладочных целей.

SetRange() — один из самых важных методов объекта Range. Позволяет изменять этот объект.

4.4 Объект Bookmark

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

Функциональность  объекта Bookmark невелика. Свойств и методов у этого объекта намного меньше, чем у объектов Selection и Range. Однако обычно никто и пытается использовать объект Bookmark для работы с текстом напрямую. Из объекта Bookmark очень просто получить объект Selection (при помощи метода Select()) или объект Range (при помощи свойства Range()) — и дальше можно пользоваться уже свойствами и методами этих объектов

Создавать объекты Bookmark программным способом необязательно, но если есть необходимость, то можно использовать метод Add() коллекции Bookmark.

Важные свойства объекта Bookmark:

Empty — если это свойство возвращает True, то это значит, что закладка указывает на точку вставки, а не та текст;

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

Range — возвращает объект Range на месте этой закладки.

Методов у объекта Bookmark всего три — Copy(), Delete() и Select(). Copy() — создает закладку на основе существующей, Delete() — удаляет ее, а Select() — выделяет то, на что ссылается закладка.

 

 

 


Информация о работе Програмное формирование документа Word