Word VBA Macros - Find, Find & Replace

Slovo VBA Nájsť

V tomto prípade je jednoduchým makrom slov nájdený text „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

Nájsť a nahradiť

Toto jednoduché makro vyhľadá slovo „ich“ a nahradí ho „tam“:

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 Replace: = wdReplaceAll End Sub

Nájsť a nahradiť iba vo výbere

Toto makro VBA nájde a nahradí text vo výbere. Tiež bude kurzívou nahradený text.

Sub ReplaceInSelection () 'nahrádza text LEN pri výbere. v aditcii robí nahradený text kurzívou 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 'toto zabráni Wordu pokračovať na koniec dokumentu .Format = True' chceme nahradiť aj formátovanie textu .MatchCase = False .MatchWholeWord = True .MatchWildcards = False .MatchSoundsLike = False .MatchAllWordForms = False End S Selection.Find.Execute Nahradiť: = wdReplaceAll End Sub

Tento riadok kódu zabraňuje VBA pokračovať na koniec dokumentu programu Word:

.Wrap = wdFindStop 'toto zabráni Wordu pokračovať na koniec dokumentu

Tento riadok kódu naznačuje, že má nahradiť aj formátovanie textu:

.Format = True 'chceme nahradiť aj formátovanie textu

Nájdite a vymeňte iba v dosahu

Namiesto toho, aby sme nahradili text v celom dokumente alebo vo výbere, môžeme VBA povedať, aby našla a nahradila iba v dosahu. V tomto prípade sme rozsah definovali ako prvý odsek:

Dim oRange As Range Set oRange = ActiveDocument.Paragraphs (1) .Range
Sub SublaceInRange () 'nahrádza text JUST v rozsahu [v tomto prípade len v prvom odseku] Dim oRange As Range Set oRange = ActiveDocument.Paragraphs (1) .Range oRange.Find.ClearFormatting oRange.Find.Replacement.ClearFormatting With oRange. Nájdite .Text = "ich" .Replacement.Text = "tam" .Forward = True .Wrap = wdFindStop 'toto zabráni Wordu pokračovať až do konca dokumentu .Format = False .MatchCase = False .MatchWholeWord = False .MatchWildcards = False .MatchSoundsLike = False .MatchAllWordForms = Falošný koniec s oRange.Find.Execute Nahradiť: = wdReplaceAll End Sub 
wave wave wave wave wave