Слово 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 з вибором.
Знайти та замінити
Цей простий макрос буде шукати слово "їх" і замінити його на "там":
Sub SimpleReplace () Selection.Find.ClearFormatting Selection.Find.Replacement.ClearFormatting With Selection.Find .Text = "їх" .Replacement.Text = "там" .Forward = True .Wrap = wdFindContinue .Format = False .MatchCase = False .MatchWholeWord = False .MatchWildcards = False .MatchSoundsLike = False .MatchAllWordForms = False End з вибором. Знайти.
Знайти та замінити лише у виділенні
Цей макрос VBA знайде та замінить текст у виділеному місці. Він також курсивом замінить текст.
Sub ReplaceInSelection () 'замінює текст ТІЛЬКИ у виділенні. крім того, він робить замінений текст курсивом Selection.Find.ClearFormatting Selection.Find.Replacement.ClearFormatting With Selection.Find .Text = "їх" З .Replacement .Font.Italic = True .Text = "там" Закінчити з .Forward = True .Wrap = wdFindStop 'це запобігає продовженню Word до кінця документа. Format = True' ми також хочемо замінити форматування тексту. З Selection.Find.Execute Replace: = wdReplaceAll End Sub
Цей рядок коду не дозволяє VBA продовжувати до кінця документа Word:
.Wrap = wdFindStop 'це запобігає продовженню Word до кінця документа
Цей рядок коду вказує також на заміну форматування тексту:
.Format = True 'ми також хочемо замінити форматування тексту
Знайти та замінити лише в діапазоні
Замість того, щоб замінювати текст у всьому документі або в окремому виділенні, ми можемо наказати VBA знаходити та замінювати лише в діапазоні. У цьому прикладі ми визначили діапазон як перший абзац:
Dim oRange As Range Set oRange = ActiveDocument.Параграфи (1).
Sub ReplaceInRange () 'замінює текст ПРОСТО в діапазоні [у цьому прикладі лише в першому абзаці] Dim oRange As Range Set oRange = ActiveDocument.Paragraphs (1) .Range oRange.Find.ClearFormatting oRange.Find.Replacement.ClearFormatting Знайдіть .Text = "їх" .Replacement.Text = "там" .Forward = True. Wrap = wdFindStop 'це запобігає продовженню Word до кінця документа. Format = False .MatchCase = False .MatchWholeWord = False .MatchWildcards = False .MatchSoundsLike = False .MatchAllWordForms = False End за допомогою oRange.Find.Execute Replace: = wdReplaceAll End Sub