Como restaurar seleções após pesquisas programaticamente
Se você localiza e substitui o texto em um documento, você pode querer restaurar a seleção original do usuário após a pesquisa é concluída.
Aplicável a: As informações neste tópico se aplicam a projetos de nível de documento e projetos de nível de aplicativo para Word 2013 e Word 2010. Para obter mais informações, consulte Recursos disponíveis pelo aplicativo do Office e o tipo de projeto.
O código no procedimento de exemplo utiliza dois objetos de Range .Se armazena Selectionatual, e um define o documento inteiro para usar como um intervalo de pesquisa.
Para restaurar a seleção original do usuário após uma pesquisa
crie os objetos de Range para o documento e a seleção atual.
Dim start As Word.Range = Application.Selection.Range Dim searchArea As Word.Range = Application.ActiveDocument.Range
Word.Range start = Application.Selection.Range; Word.Range searchArea = Application.ActiveDocument.Range(ref missing, ref missing);
Executar uma pesquisa e substituir a operação.
searchArea.Find.ClearFormatting() searchArea.Find.Text = "find me" searchArea.Find.Replacement.ClearFormatting() searchArea.Find.Replacement.Text = "Found" searchArea.Find.Execute(Replace:=Word.WdReplace.wdReplaceAll)
searchArea.Find.ClearFormatting(); searchArea.Find.Text = "find me"; searchArea.Find.Replacement.ClearFormatting(); searchArea.Find.Replacement.Text = "Found"; object replaceAll = Word.WdReplace.wdReplaceAll; searchArea.Find.Execute( ref missing, ref missing, ref missing, ref missing, ref missing, ref missing, ref missing, ref missing, ref missing, ref missing, ref replaceAll, ref missing, ref missing, ref missing, ref missing);
Selecione o intervalo de início para restaurar a seleção original do usuário.
start.Select()
start.Select();
O exemplo a seguir mostra o método completo.
Exemplo
Friend Sub ReplaceRestoreSelection()
Dim start As Word.Range = Application.Selection.Range
Dim searchArea As Word.Range = Application.ActiveDocument.Range
searchArea.Find.ClearFormatting()
searchArea.Find.Text = "find me"
searchArea.Find.Replacement.ClearFormatting()
searchArea.Find.Replacement.Text = "Found"
searchArea.Find.Execute(Replace:=Word.WdReplace.wdReplaceAll)
start.Select()
End Sub
internal void ReplaceRestoreSelection()
{
Word.Range start = Application.Selection.Range;
Word.Range searchArea = Application.ActiveDocument.Range(ref missing, ref missing);
searchArea.Find.ClearFormatting();
searchArea.Find.Text = "find me";
searchArea.Find.Replacement.ClearFormatting();
searchArea.Find.Replacement.Text = "Found";
object replaceAll = Word.WdReplace.wdReplaceAll;
searchArea.Find.Execute(
ref missing, ref missing, ref missing, ref missing, ref missing,
ref missing, ref missing, ref missing, ref missing, ref missing,
ref replaceAll, ref missing, ref missing, ref missing, ref missing);
start.Select();
}
Consulte também
Tarefas
Como localizar e substituir texto em documentos programaticamente
Como definir opções de pesquisa no Word programaticamente
Como percorrer itens encontrados em documentos programaticamente