Тема: Как заменить несколько слов за один раз
В тексте есть ряд повторяющихся аббревиатур в нижнем регистре (ссср, снг,...), можно ли их заменить на нормальные за один раз.
Вы не вошли. Пожалуйста, войдите или зарегистрируйтесь.
Страницы 1
Чтобы отправить ответ, вы должны войти или зарегистрироваться
В тексте есть ряд повторяющихся аббревиатур в нижнем регистре (ссср, снг,...), можно ли их заменить на нормальные за один раз.
Можно, макросом. Но в этом есть смысл, если вам нужно будет неоднократно выполнять эти переименования.
Если переименования нужно делать только один раз в одном файле, то лучше составьте таблицу слов для поиска и замены (чтобы ничего не забыть) и выполните замену копированием слов из этой таблицы.
Так и есть, файлов много. Расскажите пожалуйста поподробней как сделать.
Выполните автоматическую Запись макроса для замены одного буквосочетания на другое (не забудьте при этом поставить флажок Учитывать регистр; нажмите кнопку Заменить все). У вас получится примерно так:
Sub Replacement1()
'
Selection.Find.ClearFormatting
Selection.Find.Replacement.ClearFormatting
With Selection.Find
.Text = "ссср"
' Что меняем
.Replacement.Text = "СССР"
' На что заменяем
.Forward = True
.Wrap = wdFindContinue
.Format = False
.MatchCase = True
' Флажок Учитывать регистр
.MatchWholeWord = False
.MatchWildcards = False
.MatchSoundsLike = False
.MatchAllWordForms = False
End With
Selection.Find.Execute Replace:=wdReplaceAll
' Заменить все
End Sub
Кое-что здесь можно будет сократить, но для простоты я этого делать не буду.
Далее вы можете скопировать внутреннюю часть макроса и заменить в копии заменяемые буквосочетания на другие. Например, для двух упомянутых вами буквосочетаний макрос будет таким:
Sub Replacement2()
'
' Для замены "ссср"
Selection.Find.ClearFormatting
Selection.Find.Replacement.ClearFormatting
With Selection.Find
.Text = "ссср"
' Что меняем
.Replacement.Text = "СССР"
' На что заменяем
.Forward = True
.Wrap = wdFindContinue
.Format = False
.MatchCase = True
' Флажок Учитывать регистр
.MatchWholeWord = False
.MatchWildcards = False
.MatchSoundsLike = False
.MatchAllWordForms = False
End With
Selection.Find.Execute Replace:=wdReplaceAll
' Заменить все
' Для замены "снг"
Selection.Find.ClearFormatting
Selection.Find.Replacement.ClearFormatting
With Selection.Find
.Text = "снг"
' Что меняем
.Replacement.Text = "СНГ"
' На что заменяем
.Forward = True
.Wrap = wdFindContinue
.Format = False
.MatchCase = True
' Флажок Учитывать регистр
.MatchWholeWord = False
.MatchWildcards = False
.MatchSoundsLike = False
.MatchAllWordForms = False
End With
Selection.Find.Execute Replace:=wdReplaceAll
' Заменить все
End Sub
Если будут вопросы - пишите.
Подробнее о том, как работать с макросами в Word 2007 и 2010, см., например, здесь:
http://wordexpert.ru/forum/viewtopic.php?id=1342
Спасибо, все получилось!
Страницы 1
Чтобы отправить ответ, вы должны войти или зарегистрироваться