Word VBA -makroer - Finn, finn og erstatt

Word VBA Finn

Dette eksemplet er en enkel ordmakro, finn 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 = False .MatchAllWordForms = False End With Selection.Find.Execute End Sub

Finn og erstatt

Denne enkle makroen vil søke etter ordet "deres" og erstatte det med "der":

Sub SimpleReplace () Selection.Find.ClearFormatting Selection.Find.Replacement.ClearFormatting With Selection.Find .Text = "deres" .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

Finn og erstatt bare i utvalg

Denne VBA -makroen vil finne og erstatte tekst i et utvalg. Det vil også kursivere den erstatte teksten.

Sub ReplaceInSelection () 'erstatter teksten JUST i utvalget. i adittion gjør den erstattet tekst kursiv Selection.Find.ClearFormatting Selection.Find.Replacement.ClearFormatting With Selection.Find .Text = "deres" With .Replacement .Font.Italic = True .Text = "there" End With .Forward = True .Wrap = wdFindStop 'dette forhindrer Word i å fortsette til slutten av doc .Format = True' vi vil også erstatte formatering av tekst .MatchCase = False .MatchWholeWord = True .MatchWildcards = False .MatchSoundsLike = False .MatchAllWordForms = False End Med Selection.Find.Execute Erstatt: = wdReplaceAll End Sub

Denne kodelinjen forhindrer VBA i å fortsette til slutten av Word -dokumentet:

.Wrap = wdFindStop 'dette forhindrer Word i å fortsette til slutten av doc

Denne kodelinjen indikerer å erstatte formateringen av teksten også:

.Format = True 'vi vil også erstatte formatering av tekst

Finn og erstatt bare innen rekkevidde

I stedet for å erstatte tekst gjennom hele dokumentet, eller i et utvalg, kan vi fortelle VBA å finne og erstatte bare innenfor rekkevidde. I dette eksemplet definerte vi området som det første avsnittet:

Dim oRange As Range Set oRange = ActiveDocument.Paragraphs (1) .Range
Sub ReplaceInRange () 'erstatter tekst JUST i området [i dette eksemplet bare i første ledd] Dim oRange As Range Set oRange = ActiveDocument.Paragraphs (1) .Range oRange.Find.ClearFormatting oRange.Find.Replacement.ClearFormatting With oRange. Finn .Text = "deres" .Replacement.Text = "der" .Forward = True .Wrap = wdFindStop 'dette forhindrer Word i å fortsette til slutten av doc .Format = False .MatchCase = False .MatchWholeWord = False .MatchWildcards = False .MatchSoundsLike = False .MatchAllWordForms = False End With oRange.Find.Execute Replace: = wdReplaceAll End Sub 
wave wave wave wave wave