Sisällysluettelo
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