Indholdsfortegnelse
Word VBA Find
Dette eksempel er en simpel ordmakro, find teksten “a”:
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 = Falsk .MatchAllWordForms = Falsk ende med Selection.Find.Execute End Sub
Find og udskift
Denne simple makro vil søge efter ordet "deres" og erstatte det med "der":
Sub SimpleReplace () Selection.Find.ClearFormatting Selection.Find.Replacement.ClearFormatting With Selection.Find .Text = "deres" .Replacement.Text = "der" .Forward = True .Wrap = wdFindContinue .Format = False .MatchCase = False .MatchWholeWord = Falsk .MatchWildcards = Falsk .MatchSoundsLike = Falsk .MatchAllWordForms = Falsk ende med Selection.Find.Execute Erstat: = wdReplaceAll End Sub
Find og erstat kun i markering
Denne VBA -makro finder og erstatter tekst i et udvalg. Det vil også kursivere den udskiftede tekst.
Sub ReplaceInSelection () 'erstatter tekst JUST i markeringen. i adittion gør den udskiftet tekst kursiv Selection.Find.ClearFormatting Selection.Find.Replacement.ClearFormatting With Selection.Find .Text = "deres" Med .Replacement .Font.Italic = True .Text = "der" Ender med .Forward = True .Wrap = wdFindStop 'dette forhindrer Word i at fortsætte til slutningen af doc .Format = True' vi vil også erstatte formatering af tekst .MatchCase = False .MatchWholeWord = True .MatchWildcards = False .MatchSoundsLike = False .MatchAllWordForms = False End Med Selection.Find.Execute Erstat: = wdReplaceAll End Sub
Denne kodelinje forhindrer VBA i at fortsætte til slutningen af Word -dokumentet:
.Wrap = wdFindStop 'dette forhindrer Word i at fortsætte til slutningen af doc
Denne kodelinje angiver også at erstatte tekstens formatering:
.Format = True 'vi vil også erstatte formatering af tekst
Find og udskift kun inden for rækkevidde
I stedet for at erstatte tekst i hele dokumentet eller i et udvalg, kan vi fortælle VBA at finde og erstatte kun inden for rækkevidde. I dette eksempel definerede vi området som det første afsnit:
Dim oRange As Range Set oRange = ActiveDocument.Paragraphs (1) .Range
Sub ReplaceInRange () 'erstatter tekst JUST i området [i dette eksempel kun i det første afsnit] Dim oRange As Range Set oRange = ActiveDocument.Paragraphs (1) .Range oRange.Find.ClearFormatting oRange.Find.Replacement.ClearFormatting With oRange. Find .Text = "deres" .Replacement.Text = "der" .Forward = True .Wrap = wdFindStop 'forhindrer Word i at fortsætte til slutningen af doc .Format = False .MatchCase = False .MatchWholeWord = False .MatchWildcards = False .MatchSoundsLike = Falsk .MatchAllWordForms = Falsk ende med oRange.Find.Execute Erstat: = wdReplaceAll End Sub