Автоматизация приложений Microsoft Office в примерах
      

Перемещение курсора по тексту


Используя метод Collapse, можно <сжать> объект Range или объект Selection, сократив его размер до нуля символов:

Rng.Collapse(wdCollapseEnd);

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

const    wdCollapseStart = $00000001;    //новый объект находится в начале фрагмента    wdCollapseEnd = $00000000;    //новый объект находится в конце фрагмента

Перемещать курсор по тексту можно с помощью метода Move объектов Range и Selection. Этот метод имеет два параметра. Первый указывает на то, в каких единицах измеряется перемещение - в символах (по умолчанию), словах, предложениях, абзацах и др. Второй параметр указывает, на сколько единиц при этом нужно переместиться (это число может быть и отрицательным; по умолчанию оно равно 1). Например, следующий фрагмент кода:

Rng.Move;

приведет к перемещению курсора на один символ вперед, а

Rng.Move(wdParagraph,3);

приведет к перемещению курсора на три абзаца вперед. Отметим, что этот метод использует следующие константы:

const          //Единицей перемещения является:    wdCharacter           = $00000001; //символ    wdWord = $00000002; //слово    wdSentence          = $00000003; //предложение    wdParagraph         = $00000004; //абзац    wdStory = $00000006; //часть документа                        //напр., колонтитул,                        //оглавление и др.)    wdSection           = $00000008; //раздел    wdColumn           = $00000009; //колонка таблицы    wdRow = $0000000A; //строка таблицы    wdCell = $0000000C; //ячейка таблицы    wdTable = $0000000F; //таблица


Нередко для перемещения по тексту используются закладки. Создать закладку в текущей позиции курсора можно путем добавления члена коллекции Bookmarks объекта Document c помощью метода Add, указав имя закладки в качестве параметра, например:

App.ActiveDocument.Bookmarks.Add('MyBookmark');

Проверить существование закладки в документе можно с помощью метода Exists, а переместиться на нее - с помощью метода Goto объектов Document, Range или Selection:

Rng := App.ActiveDocument.Goto(wdGoToBookmark,      wdGoToNext, ,'MyBookmark'); Rng.InsertAfter('Текст, вставленный после      закладки');

Значения констант для этого примера таковы:

const

wdGoToBookmark = $FFFFFFFF;    //перейти к закладке wdGoToNext = $00000002;    //искать следующий объект в тексте

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


Содержание раздела