Compartilhar via


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

  1. 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); 
    
  2. 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);
    
  3. 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

Conceitos

Parâmetros opcionais em soluções do Office