Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Мои ответы по кит.docx
Скачиваний:
10
Добавлен:
24.04.2019
Размер:
411.07 Кб
Скачать

42. Vba в word. Знакомство с объектом Range. Определение диапазонов.

Объект Range можно создать несколькими способами:

Первый способ — воспользоваться методом Range() объекта Document. В этом случае вам потребуется передать номера начального и конечного символов диапазона, а также текст документа, в который будут отсчитываться эти символы. Например, создать диапазон, который будет включать в себя первые 10 символов документа, можно так:

Dim rngDoc As Range

Set rngDoc = ActiveDocument.Range(Start:=0, End:=10)

Второй способ — воспользоваться свойством Range, которое предусмотрено для большого количества объектов (Bookmark, Selection, Table-Row-Cell, Paragraph и т. п.). В этом случае при помощи этого свойства мы получаем объект Range, представляющий данный объект;

Третий способ — воспользоваться большим количеством вспомогательных свойств (Characters, Words, Sentences и т. п.), которые делят текст на отрезки — объекты Range. Эти свойства возвращают коллекции объектов Range

45. VBA в WORD.Сжатие диапазона или выделенной области Collapse – для сжатия. Область стягивается в начальную или конечную позицию. Направление сжатия задает параметр Direction(wdCollapse_Start, wdCollapseEnd). По умолчанию область сжимается в начало.

Пример: сжатие выделенной области в начальную точку.

Selection.Collapse(Direction:=wdCollapseEnd)

Удаление текста – Delete, копирование – Copy, вставка – Paste. Если объект назначение еще не сжат, выделенный текст просто заменит исходный текст в объекте.

46. VBA в WORD.Поиск и замена текста. Работа с найденным текстом..

Основная работа метода Execute — обнаружение первого экземпляра искомого текста или форматирования в указанном диапазоне или выделенной области. После выполнения этого метода вам прежде всего следует определить, было ли найдено то, что вы ищете. Для подобной проверки используйте свойство Found объекта Find совместно с инструкцией If...Then, как показано на примере следующей заготовки программного кода:

If .Found = True Then

(выполнение определенных действий с найденным текстом)

Else

(отображение соответствующего сообщения)

End If

47.VBA в WORD. Замена текста или форматирования. Используется объект Replacement.

With.ActiveDocument.Content.Find

.ClearFormatting

.Text=”ptt”

With.Replacement

.ClearFormatting

.Text=”my”

End With

.Executive Replace:=wdReplaceAll

End With

Replace используется для контроля: будут ли заменены все найденные экземпляры.

44 .Vba в word. Перемещение диапазона или выделенной области.

Word VBA позволяет вам повторно определять начало и конец диапазона или выделенной области. Только имейте в виду, что методы, в имени которых присутствует слово Move, изменяют расположение диапазона или выделенной области: они не перемещают текст, который содержится в указанном объекте. Метод Move изменяет диапазон или выделенную область, начиная с их сжатия, отмечая их расположение, а в них уже нет никакого текста. Расположение совпадает с началом исходного объекта. После этого метод Move перемещает "сжатый" объект в соответствии с ваши ми инструкциями. По окончании перемещения вы можете использовать методы Expand и MoverEnd для наполнения объекта текстом. Приведенный ниже пример перемещает именованный диапазон в документе на два абзаца назад. Обратите внимание на то, что вы используете именованную константу в качестве значения аргумента Unit (список всех допустимых именованных констант приведен в разделе "Расширение диапазонов и выделенных областей" раньше в этой главе). Аргумент Count представляет собой целое положительное число, если вы хотите перемешать объект вперед по документу (т.е. к его концу), или отрицательное, если вы хотите перемещать объект назад по документу. В приведенном ниже примере аргументы не заключены в скобки, поскольку возвращенное методом значение (количество перемещенных элементов) здесь не используется:

SelectRange.Move Unit : = waParagraph, Count, : = -2

Методы MoveStart. и MoveEnd работают практически так же, как и метод Move, только они изменяют начальную или конечную точку диапазона или выделенной области соответственно. Приведенная ниже инструкция перемешает начало выделенной области натри слова ближе к концу документа:

Selection.MoveStart Unit : = wdWord, Count := 3

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

Еще одна пара методов, StartOf или EndOf, перемешает или расширяет начало или конец диапазона или выделенной области. Метод StartOf перемещает начало объекта обратно к началу текущего блока, в то время как метод EndOf перемещает конец объекта вперед к концу текущего блока.