Word VBA Najít
Tento příklad je jednoduché slovo makro, kde najdete 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
Najít a nahradit
Toto jednoduché makro vyhledá slovo „jejich“ a nahradí jej „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
Najít a nahradit pouze ve výběru
Toto makro VBA vyhledá a nahradí text ve výběru. Bude také kurzívou nahrazovat text.
Sub ReplaceInSelection () 'nahrazuje text JUST ve výběru. v adittion to dělá nahrazený 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 brání Wordu pokračovat na konec dokumentu .Format = True' chceme také nahradit formátování textu .MatchCase = False .MatchWholeWord = True .MatchWildcards = False .MatchSoundsLike = False .MatchAllWordForms = False End Se Selection.Find.Execute Nahradit: = wdReplaceAll End Sub
Tento řádek kódu brání VBA pokračovat na konec dokumentu aplikace Word:
.Wrap = wdFindStop 'toto zabrání tomu, aby Word pokračoval na konec doc
Tento řádek kódu také nahrazuje formátování textu:
.Format = True 'chceme nahradit také formátování textu
Najít a nahradit pouze v dosahu
Namísto nahrazení textu v celém dokumentu nebo ve výběru můžeme VBA říci, aby vyhledala a nahradila pouze v dosahu. V tomto příkladu jsme definovali rozsah jako první odstavec:
Dim oRange As Range Set oRange = ActiveDocument.Paragraphs (1) .Range
Sub ReplaceInRange () 'nahrazuje text JUST v rozsahu [v tomto případě jen v prvním odstavci] Dim oRange As Range Set oRange = ActiveDocument.Paragraphs (1) .Range oRange.Find.ClearFormatting oRange.Find.Replacement.ClearFormatting With oRange. Najděte .Text = "jejich" .Replacement.Text = "tam" .Forward = True .Wrap = wdFindStop 'toto zabrání tomu, aby Word pokračoval na konec dokumentu .Format = False .MatchCase = False .MatchWholeWord = False .MatchWildcards = False .MatchSoundsLike = False .MatchAllWordForms = Falešný konec s oRange.Find.Execute Nahradit: = wdReplaceAll End Sub