Я не знаю, правильно я Вас понял, но может имелось в виду примерно следующее: пусть есть книжка для первоклашек и в ней много раз повторяется текст
мама мыла раму. Некий учитель-новатор решил заменить все вхождения этого текста на
папа пил водку. Тогда задачу решает код:
- Код: Выделить всё
Sub ReplaceWithFormat()
'
' Заменяет "мама мыла раму" на "папа _пил_ водку"
' (т.е. "пил" будет подчеркнуто)
'
Dim switchFound As Boolean ' найдено или не найдено
Dim RangeInWork As Word.Range ' диапазон для замены
Do
' ищем вперед от курсора "мама мыла раму"
Selection.Find.Execute _
FindText:="мама мыла раму", _
Forward:=True
switchFound = Selection.Find.Found ' узнаем, найдено или нет
If switchFound = False Then
' ветка, когда не найдено
MsgBox "ничего НЕ найдено"
Exit Do ' выходим
End If
' код ниже выполн-ся только если что-то найдено
MsgBox "найдено"
Selection.Text = "папа пил водку"
' перекидываем Selection в Range
Set RangeInWork = Selection.Range
' сдвигаем курсор в конец выделения
Selection.Collapse Direction:=wdCollapseEnd
' теперь заменяем в Range
' нашли там слово "пил"
RangeInWork.Find.Execute _
FindText:="пил", _
Forward:=True
' подчеркнули его
RangeInWork.Underline = wdUnderlineSingle
Loop
' Очищаем объектные переменные (это просто для чистоты
' стиля, можно не писать)
If Not RangeInWork Is Nothing Then
Set RangeInWork = Nothing
End If
End Sub
В результате выполнения этой процедуры будут найдены все вхождения "мама мыла раму" вперед от текущего положения курсора и заменены на "папа _пил_ водку", после самой последней замены курсор остановится в конце последней замены:
папа пил водку| (символом "|" я показываю здесь положение курсора).
Note: сообщения MsgBox удалите и закомментируйте, я поместил их сюда просто для наглядности.
Вот примерно в таком ракурсе...