Parola VBA Trova
Questo esempio è una semplice macro di parole che trova il testo "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 = Falsa fine con Selection.Find.Execute End Sub
Trova e sostituisci
Questa semplice macro cercherà la parola "loro" e la sostituirà con "là":
Sub SimpleReplace() Selection.Find.ClearFormatting Selection.Find.Replacement.ClearFormatting With Selection.Find .Text = "loro" .Replacement.Text = "là" .Forward = True .Wrap = wdFindContinue .Format = False .MatchCase = False .MatchWholeWord = False .MatchWildcards = False .MatchSoundsLike = False .MatchAllWordForms = False Fine con Selection.Find.Execute Replace:=wdReplaceAll End Sub
Trova e sostituisci solo nella selezione
Questa macro VBA troverà e sostituirà il testo in una selezione. Verrà inoltre messo in corsivo il testo sostituito.
Sub ReplaceInSelection() 'sostituisce il testo SOLO nella selezione. inoltre rende il testo sostituito in corsivo Selection.Find.ClearFormatting Selection.Find.Replacement.ClearFormatting With Selection.Find .Text = "loro" Con .Replacement .Font.Italic = True .Text = "there" End With .Forward = True .Wrap = wdFindStop 'questo impedisce a Word di continuare fino alla fine del documento .Format = True 'vogliamo sostituire anche la formattazione del testo .MatchCase = False .MatchWholeWord = True .MatchWildcards = False .MatchSoundsLike = False .MatchAllWordForms = False Con Selection.Find.Execute Replace:=wdReplaceAll End Sub
Questa riga di codice impedisce a VBA di continuare fino alla fine del documento di Word:
.Wrap = wdFindStop 'questo impedisce a Word di continuare fino alla fine del documento
Questa riga di codice indica di sostituire anche la formattazione del testo:
.Format = True 'vogliamo sostituire anche la formattazione del testo
Trova e sostituisci solo nell'intervallo
Invece di sostituire il testo nell'intero documento o in una selezione, possiamo dire a VBA di trovare e sostituire solo nell'intervallo. In questo esempio abbiamo definito l'intervallo come il primo paragrafo:
Dim oRange As Range Imposta oRange = ActiveDocument.Paragraphs(1).Range
Sub ReplaceInRange() 'sostituisce il testo SOLO nell'intervallo [in questo esempio solo nel primo paragrafo] Dim oRange As Range Set oRange = ActiveDocument.Paragraphs(1).Range oRange.Find.ClearFormatting oRange.Find.Replacement.ClearFormatting With oRange. Find .Text = "loro" .Replacement.Text = "là" .Forward = True .Wrap = wdFindStop 'questo impedisce a Word di continuare fino alla fine del documento .Format = False .MatchCase = False .MatchWholeWord = False .MatchWildcards = False .MatchSoundsLike = False .MatchAllWordForms = False End With oRange.Find.Execute Replace:=wdReplaceAll End Sub