Поделиться через


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

При работе с документом в Word обычно выделяется текст, а затем выполняется действие, например форматирование текста или ввод текста. В Visual Basic обычно не требуется выделять текст перед изменением текста. Вместо этого создается объект Range , который ссылается на определенную часть документа. Сведения об определении объектов Range см. в разделе Работа с объектами Range. Однако если требуется, чтобы код реагировал на выделение или изменял его, это можно сделать с помощью объекта Selection .

Если текст еще не выделен, используйте метод Select , чтобы выделить текст, связанный с определенным объектом, и создать объект Selection . Например, следующая инструкция выбирает первое слово в активном документе.

Sub SelectFirstWord() 
 ActiveDocument.Words(1).Select 
End Sub

Дополнительные сведения см. в разделе Выделение текста в документе. Если текст уже выбран, используйте свойство Selection , чтобы вернуть объект Selection , представляющий текущий фрагмент в документе. В документе может быть только один объект Selection , который всегда обращается к текущему выделенному фрагменту. В следующем примере изменяется форматирование абзацев в текущем выделенном фрагменте.

Sub FormatSelection() 
 Selection.Paragraphs.LeftIndent = InchesToPoints(0.5) 
End Sub

В этом примере после текущего выделения вставляется слово "Hello".

Sub InsertTextAfterSelection() 
 Selection.InsertAfter Text:="Hello " 
End Sub

В этом примере к выделенному тексту применяется полужирное форматирование.

Sub BoldSelectedText() 
 Selection.Font.Bold = True 
End Sub

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

Sub Macro() 
 Selection.HomeKey Unit:=wdStory 
 Selection.MoveRight Unit:=wdWord, Count:=2, Extend:=wdExtend 
 Selection.Font.Bold = wdToggle 
End Sub

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

Sub WorkingWithRanges() 
 ActiveDocument.Range(Start:=0, _ 
 End:=ActiveDocument.Words(2).End).Bold = True 
End Sub

Поддержка и обратная связь

Есть вопросы или отзывы, касающиеся Office VBA или этой статьи? Руководство по другим способам получения поддержки и отправки отзывов см. в статье Поддержка Office VBA и обратная связь.