VBA в Word Объект Word.Bookmark

          Назад



11.5.4 Объект Bookmark


Объект Word.Bookmark, применение закладок в шаблоне, получение из объектов Bookmark объектов Selection и Range

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

Создать закладку (меню Вставка -> Закладка) намного проще, чем считать количество символов для объекта Range от начала документа/абзаца/предложения, или выполнять операции Move() (MoveDown(), MoveRight(), MoveNext()) для объекта Selection. Кроме того, если вы будете исправлять шаблон (а делать это на практике приходится очень часто), вам, скорее всего, не придется править код для определения объектов Selection и Range.

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

ThisDocument.Bookmarks("Bookmark1").Select

MsgBox Selection.Text

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

ThisDocument.Bookmarks.Add Name:="temp", Range:=Selection.Range

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

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

  • Empty — если это свойство возвращает True, то это значит, что закладка указывает на точку вставки, а не та текст;
  • Name — имя закладки. Очень удобно, что найти нужную закладку в коллекции закладок можно не только при помощи индекса (номера) закладки, но и по ее имени.
  • Range — возвращает объект Range на месте этой закладки.
  • Start, End, StoryType — аналогично таким же свойствам у объекта Selection.

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




Далее