Macros VBA do Word - Localizar, localizar e substituir

Word VBA Find

Este exemplo é uma macro de palavras simples, localize o texto “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

Encontrar e substituir

Esta macro simples irá pesquisar a palavra “deles” e substituí-la por “lá”:

Sub SimpleReplace () Selection.Find.ClearFormatting Selection.Find.Replacement.ClearFormatting With Selection.Find .Text = "seu" .Replacement.Text = "lá" .Forward = True .Wrap = wdFindContinue .Format = False .MatchCase = False .MatchWholeWord = False .MatchWildcards = False .MatchSoundsLike = False .MatchAllWordForms = False End With Selection.Find.Execute Substituir: = wdReplaceAll End Sub

Localizar e substituir apenas na seleção

Esta macro VBA localizará e substituirá o texto em uma seleção. Ele também colocará em itálico o texto substituído.

Sub ReplaceInSelection () 'substitui o texto APENAS na seleção. além disso, torna o texto substituído em itálico Selection.Find.ClearFormatting Selection.Find.Replacement.ClearFormatting With Selection.Find .Text = "seu" Com .Replacement .Font.Italic = True .Text = "lá" End With .Forward = True .Wrap = wdFindStop 'isso impede que o Word continue até o final do documento .Format = True' queremos substituir a formatação do texto também .MatchCase = False .MatchWholeWord = True .MatchWildcards = False .MatchSoundsLike = False .MatchAllWordForms = False End Com Selection.Find.Execute Replace: = wdReplaceAll End Sub

Esta linha de código impede que o VBA continue até o final do documento do Word:

.Wrap = wdFindStop 'isso impede que o Word continue até o final do documento

Esta linha de código indica a substituição da formatação do texto também:

.Format = True 'queremos substituir a formatação do texto também

Encontrar e substituir apenas no intervalo

Em vez de substituir o texto em todo o documento ou em uma seleção, podemos dizer ao VBA para localizar e substituir apenas no intervalo. Neste exemplo, definimos o intervalo como o primeiro parágrafo:

Dim oRange As Range Set oRange = ActiveDocument.Paragraphs (1) .Range
Sub ReplaceInRange () 'substitui o texto APENAS no intervalo [neste exemplo apenas no primeiro parágrafo] Dim oRange As Range Set oRange = ActiveDocument.Paragraphs (1) .Range oRange.Find.ClearFormatting oRange.Find.Replacement.ClearFormatting With oRange. Find .Text = "seu" .Replacement.Text = "lá" .Forward = True .Wrap = wdFindStop 'isso impede que o Word continue até o final do documento .Format = False .MatchCase = False .MatchWholeWord = False .MatchWildcards = False .MatchSoundsLike = False .MatchAllWordForms = False End With oRange.Find.Execute Replace: = wdReplaceAll End Sub 

Você vai ajudar o desenvolvimento do site, compartilhando a página com seus amigos

wave wave wave wave wave