Макросы Word VBA - поиск, поиск и замена

Word VBA Найти

Этот пример представляет собой простой макрос слова для поиска текста «а»:

Sub SimpleFind () Selection.Find.ClearFormatting With Selection.Find .Text = "a" .Replacement.Text = "" .Forward = True .Wrap = wdFindAsk .Format = False .MatchCase = False .MatchWholeWord = False .MatchWildcards = False .MatchSoundsLike = False .MatchAllWordForms = False End With Selection.Find.Execute End Sub

Найти и заменить

Этот простой макрос будет искать слово «их» и заменять его на «там»:

Sub SimpleReplace () Selection.Find.ClearFormatting Selection.Find.Replacement.ClearFormatting With Selection.Find .Text = "their" .Replacement.Text = "there" .Forward = True .Wrap = wdFindContinue .Format = False .MatchCase = False .MatchWholeWord = False .MatchWildcards = False .MatchSoundsLike = False .MatchAllWordForms = False End With Selection.Find.Execute Заменить: = wdReplaceAll End Sub

Найти и заменить только в выделенном

Этот макрос VBA найдет и заменит текст в выделенном фрагменте. Замененный текст также будет выделен курсивом.

Sub ReplaceInSelection () 'заменяет текст ТОЛЬКО в выделении. кроме того, замененный текст выделяется курсивом Selection.Find.ClearFormatting Selection.Find.Replacement.ClearFormatting With Selection.Find .Text = "their" With .Replacement .Font.Italic = True .Text = "there" End With .Forward = True .Wrap = wdFindStop 'это предотвращает продолжение Word до конца документа .Format = True' мы также хотим заменить форматирование текста .MatchCase = False .MatchWholeWord = True .MatchWildcards = False .MatchSoundsLike = False .MatchAllWordForms = False End С помощью Selection.Find.Execute Replace: = wdReplaceAll End Sub

Эта строка кода предотвращает продолжение VBA до конца документа Word:

.Wrap = wdFindStop 'предотвращает продолжение Word до конца документа.

Эта строка кода указывает также на замену форматирования текста:

.Format = True 'мы также хотим заменить форматирование текста

Найти и заменить только в пределах досягаемости

Вместо того, чтобы заменять текст во всем документе или в выделенном фрагменте, мы можем указать VBA искать и заменять только в диапазоне. В этом примере мы определили диапазон как первый абзац:

Установить Dim oRange как диапазон oRange = ActiveDocument.Paragraphs (1) .Range
Sub ReplaceInRange () 'заменяет текст ТОЛЬКО в диапазоне [в этом примере только в первом абзаце] Dim oRange As Range Set oRange = ActiveDocument.Paragraphs (1) .Range oRange.Find.ClearFormatting oRange.Find.Replacement.ClearFormatting With oRange. Найдите .Text = "их" .Replacement.Text = "there" .Forward = True .Wrap = wdFindStop ', чтобы Word не продолжил работу до конца документа .Format = False .MatchCase = False .MatchWholeWord = False .MatchWildcards = False .MatchSoundsLike = False .MatchAllWordForms = False End with oRange.Find.Execute Заменить: = wdReplaceAll End Sub 

Вы поможете развитию сайта, поделившись страницей с друзьями

wave wave wave wave wave