Word VBA -makrot - Etsi, etsi ja korvaa

Word VBA Etsi

Tämä esimerkki on yksinkertainen sanamakro etsi teksti "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 = Väärä .MatchAllWordForms = False End With Selection.Find.Execute End Sub

Etsi ja korvaa

Tämä yksinkertainen makro etsii sanan "heidän" ja korvaa sen "siellä":

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 = Väärä .MatchWildcards = False .MatchSoundsLike = False .MatchAllWordForms = False End With Selection.Find.Execute Replace: = wdReplaceAll End Sub

Etsi ja korvaa vain valikoimasta

Tämä VBA -makro etsii ja korvaa valinnan tekstin. Se myös kursivoi korvatun tekstin.

Sub ReplaceInSelection () 'korvaa tekstin VAIN valinnassa. lisäyksessä se tekee korvatusta tekstistä kursiivisen 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 'tämä estää Wordia jatkamasta asiakirjan loppuun .Format = True' haluamme korvata myös tekstin muotoilun .MatchCase = False .MatchWholeWord = True .MatchWildcards = False .MatchSoundsLike = False .MatchAllWordForms = False End Kanssa Selection.Find.Execute Replace: = wdReplaceAll End Sub

Tämä koodirivi estää VBA: ta jatkamasta Word -asiakirjan loppuun:

.Wrap = wdFindStop 'tämä estää Wordia jatkamasta asiakirjan loppuun

Tämä koodirivi osoittaa myös tekstin muotoilun korvaamisen:

.Format = True 'Haluamme korvata myös tekstin muotoilun

Etsi ja korvaa vain alueelta

Sen sijaan, että korvaisimme tekstin koko asiakirjassa tai valinnassa, voimme kehottaa VBA: ta etsimään ja korvaamaan vain alueen. Tässä esimerkissä määritimme alueen ensimmäiseksi kappaleeksi:

Dim oRange as Range Set oRange = ActiveDocument. Kappaleet (1).
Sub ReplaceInRange () 'korvaa tekstin JUST alueella [tässä esimerkissä vain ensimmäisessä kappaleessa] Dim oRange As Range Set oRange = ActiveDocument.Partss (1) .Range oRange.Find.ClearFormatting oRange.Find.Replacement.ClearFormatting With oRange. Etsi .Text = "heidän" .Replacement.Text = "siellä" .Forward = True .Wrap = wdFindStop 'tämä estää Wordia jatkamasta asiakirjan loppuun .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