Работа с объектом 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 и обратная связь.