Студопедия

КАТЕГОРИИ:


Архитектура-(3434)Астрономия-(809)Биология-(7483)Биотехнологии-(1457)Военное дело-(14632)Высокие технологии-(1363)География-(913)Геология-(1438)Государство-(451)Демография-(1065)Дом-(47672)Журналистика и СМИ-(912)Изобретательство-(14524)Иностранные языки-(4268)Информатика-(17799)Искусство-(1338)История-(13644)Компьютеры-(11121)Косметика-(55)Кулинария-(373)Культура-(8427)Лингвистика-(374)Литература-(1642)Маркетинг-(23702)Математика-(16968)Машиностроение-(1700)Медицина-(12668)Менеджмент-(24684)Механика-(15423)Науковедение-(506)Образование-(11852)Охрана труда-(3308)Педагогика-(5571)Полиграфия-(1312)Политика-(7869)Право-(5454)Приборостроение-(1369)Программирование-(2801)Производство-(97182)Промышленность-(8706)Психология-(18388)Религия-(3217)Связь-(10668)Сельское хозяйство-(299)Социология-(6455)Спорт-(42831)Строительство-(4793)Торговля-(5050)Транспорт-(2929)Туризм-(1568)Физика-(3942)Философия-(17015)Финансы-(26596)Химия-(22929)Экология-(12095)Экономика-(9961)Электроника-(8441)Электротехника-(4623)Энергетика-(12629)Юриспруденция-(1492)Ядерная техника-(1748)

Выделение текста. Объекты Range и Selection позволяют выполнять основные операции над текстом (и не только над текстом): выделить

Работа с текстом

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

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

Листинг 3. Задание области выделения в тексте

Dim myRange As Range, myRange1 As Range With ActiveDocumentSet myRange =.Range(Start:=.Sections(3).Range.Paragraphs(3).Range.Start, _ End: =.Sections(3).Range.Paragraphs(5).Range.End) myRange.Select Set myRange1 =.Sections(3).Range.Paragraphs(1).Range MyRange1.Select End With

В первом случае при задании области (myRange) используются параметры Start и End, во втором (myRange1) – задается вся область данного объекта.

Область может изменяться автоматически при добавлении или удалении из нее части текста. Изменить область можно перемещая ее. Этим занимается специальная группа методов перемещения Move. Прежде чем говорить о перемещении, рассмотрим сжатие области. Нередко нужна пустая область – точка вставки, параметры Start и End которой совпадают. Поэтому простейший способ сжатия – задать совпадающие значения этих параметров:

myRange.Start = myRange.End

Для сжатия области можно применять специальный метод – Collapse(Direction). Область стягивается в начальную или конечную позицию. Направление сжатия задает параметр Direction, принимающий значения wdCollapseStart или wdCollapseEnd. По умолчанию область стягивается в начальную точку (значение параметра: wdCollapseStart). Если абзац сжимается и стягивается в конечную точку, точка вставки переносится за метку конца абзаца и устанавливается в начало следующего абзаца. Если такой эффект нежелателен, после сжатия применяется метод перемещения MoveEnd, передвигающий точку вставки назад на один символ:

Set myRange = ActiveDocument.Paragraphs(1).Range myRange.Collapse Direction:=wdCollapseEnd myRange.MoveEnd Unit:=wdCharacter, Count:=-1

Если есть методы сжатия области, то должны существовать и методы ее расширения. Основным из них является метод Expand(Unit). В зависимости от значения параметра, Unit область можно расширить на слово, предложение, абзац, раздел, на строку или столбец таблицы, или на всю таблицу. Для объекта Selection область можно расширить на всю строку. Для расширения области на весь фрагмент можно использовать метод WholeStory, что эквивалентно вызову метода ExpandUnit: = wdStory.

Move – основной метод перемещения. Остальные методы являются в той или иной степени его модификациями. Метод Move(Unit, Count) сжимает область в точку, стягивая ее в начало или конец, и затем перемещает точку вставки. Параметр Unit определяет единицы перемещения, a Count – количество этих единиц и направление стягивания и перемещения (по умолчанию – 1). Положительные значения этого параметра задают стягивание к концу и перемещение вперед, отрицательные – стягивание в начало и перемещение назад. Само стягивание означает перемещение на единицу (метод возвращает количество единиц, на которое фактически произошло перемещение) или 0 (если оно не осуществлено). Параметр Unit принимает значения: wdCharacter (по умолчанию), wdWord, wdSentence, wdParagraph, wdSection, wdStory, wdCell, wdColumn, wdRow и wdTable.

Методы перемещения на сам текст не влияют – лишь изменяют область, заданную объектами Range и Selection. Поэтому эти методы применимы только к переменным типа Range, но не к фиксированным областям. Например, запись

ActiveDocument.Paragraphs(1).Range.Move

не имеет эффекта, поскольку область первого абзаца неизменяема.

Метод Move стягивает область в точку, которая и перемещается, поэтому после его выполнения область исчезает, и остается только точка вставки. Методы MoveStart и MoveEnd перемещают начальную или конечную точку области, обычно расширяя тем самым область.

Конечно, для перемещения по тексту документа есть много различных способов, помимо методов группы Move. Стоит упомянуть группу методов Next, основным из которых является метод Next(Unit,Count). Основное отличие от Move (с теми же параметрами) состоит в том, что метод Next возвращает сам объект Range, в отличие от метода Move, возвращающего число символов, на которое произошло перемещение.

<== предыдущая лекция | следующая лекция ==>
Текст и объекты Range и Selection | Листинг 4. Использование метода InsertFile
Поделиться с друзьями:


Дата добавления: 2014-01-05; Просмотров: 450; Нарушение авторских прав?; Мы поможем в написании вашей работы!


Нам важно ваше мнение! Был ли полезен опубликованный материал? Да | Нет



studopedia.su - Студопедия (2013 - 2024) год. Все материалы представленные на сайте исключительно с целью ознакомления читателями и не преследуют коммерческих целей или нарушение авторских прав! Последнее добавление




Генерация страницы за: 0.013 сек.