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