Word VBA Zoeken
Dit voorbeeld is een eenvoudige woordmacro om de tekst "a" te vinden:
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
Zoek en vervang
Deze eenvoudige macro zoekt naar het woord "hun" en vervangt het door "daar":
Sub SimpleReplace() Selection.Find.ClearFormatting Selection.Find.Replacement.ClearFormatting With Selection.Find .Text = "hun" .Replacement.Text = "there" .Forward = True .Wrap = wdFindContinue .Format = False .MatchCase = False .MatchWholeWord = False .MatchWildcards = False .MatchSoundsLike = False .MatchAllWordForms = False End With Selection.Find.Execute Replace:=wdReplaceAll End Sub
Alleen zoeken en vervangen in selectie
Deze VBA-macro zoekt en vervangt tekst in een selectie. Het zal ook de vervangen tekst cursief maken.
Sub ReplaceInSelection() 'vervangt tekst JUST in selection . daarnaast maakt het vervangen tekst cursief 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 'dit voorkomt dat Word doorgaat tot het einde van document .Format = True 'we willen ook de opmaak van tekst vervangen .MatchCase = False .MatchWholeWord = True .MatchWildcards = False .MatchSoundsLike = False .MatchAllWordForms = False Met Selection.Find.Execute Replace:=wdReplaceAll End Sub
Deze regel code voorkomt dat VBA doorgaat tot het einde van het Word-document:
.Wrap = wdFindStop 'dit voorkomt dat Word doorgaat tot het einde van doc
Deze regel code geeft aan dat ook de opmaak van de tekst moet worden vervangen:
.Format = True 'we willen ook de opmaak van tekst vervangen
Alleen binnen bereik zoeken en vervangen
In plaats van tekst door het hele document of in een selectie te vervangen, kunnen we VBA vertellen om alleen binnen bereik te zoeken en te vervangen. In dit voorbeeld hebben we het bereik gedefinieerd als de eerste alinea:
Dim oRange As Range Stel oRange = ActiveDocument.Paragraphs(1).Range in
Sub ReplaceInRange() 'vervangt tekst JUST in range [in dit voorbeeld alleen in de eerste alinea] Dim oRange As Range Set oRange = ActiveDocument.Paragraphs(1).Range oRange.Find.ClearFormatting oRange.Find.Replacement.ClearFormatting With oRange. Zoek .Text = "hun" .Replacement.Text = "daar" .Forward = True .Wrap = wdFindStop 'dit voorkomt dat Word doorgaat tot het einde van document .Format = False .MatchCase = False .MatchWholeWord = False .MatchWildcards = False .MatchSoundsLike = False .MatchAllWordForms = False End With oRange.Find.Execute Replace:=wdReplaceAll End Sub