Como percorrer itens encontrados em documentos programaticamente
A classe de Find tem uma propriedade de Found , que retorna true sempre que a procurarar- para o item for encontrado.Você pode fazer loop através de todas as instâncias encontradas em Range usando o método de Execute .
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.
Para executar um loop através dos itens localizados
Declare um objeto Range.
O exemplo de código pode ser usado em uma personalização da nível.
Dim rng As Word.Range = Me.Content
Word.Range rng = this.Content;
O exemplo de código pode ser usado em um suplemento ao aplicativo.este exemplo usa o documento ativo.
Dim rng As Word.Range = Me.Application.ActiveDocument.Content
Word.Document document = this.Application.ActiveDocument; Word.Range rng = document.Content;
Use a propriedade de Found em um loop para procurar por todas as ocorrências da cadeia de caracteres no documento, e incrementa uma variável integer por 1 sempre que a cadeia de caracteres é encontrada.
rng.Find.ClearFormatting() rng.Find.Forward = True rng.Find.Text = "find me" rng.Find.Execute() Do While rng.Find.Found = True intFound += 1 rng.Find.Execute() Loop
rng.Find.ClearFormatting(); rng.Find.Forward = true; rng.Find.Text = "find me"; rng.Find.Execute( ref missing, ref missing, ref missing, ref missing, ref missing, ref missing, ref missing, ref missing, ref missing, ref missing, ref missing, ref missing, ref missing, ref missing, ref missing); while (rng.Find.Found) { intFound++; rng.Find.Execute( ref missing, ref missing, ref missing, ref missing, ref missing, ref missing, ref missing, ref missing, ref missing, ref missing, ref missing, ref missing, ref missing, ref missing, ref missing); }
Exibir o número de vezes que a cadeia de caracteres foi encontrada em uma caixa de mensagem.
MessageBox.Show("Strings found: " & intFound.ToString())
MessageBox.Show("Strings found: " + intFound.ToString());
Os exemplos a seguir mostram o método completo.
Exemplo da Nível de personalização
Para executar um loop através dos itens em uma personalização da nível
O exemplo a seguir mostra o código completo para uma personalização da nível.Para usar este código, ele execução da classe de ThisDocument em seu projeto.
Private Sub FindLoop() Dim intFound As Integer = 0 Dim rng As Word.Range = Me.Content rng.Find.ClearFormatting() rng.Find.Forward = True rng.Find.Text = "find me" rng.Find.Execute() Do While rng.Find.Found = True intFound += 1 rng.Find.Execute() Loop MessageBox.Show("Strings found: " & intFound.ToString()) End Sub
private void FindLoop() { int intFound = 0; Word.Range rng = this.Content; rng.Find.ClearFormatting(); rng.Find.Forward = true; rng.Find.Text = "find me"; rng.Find.Execute( ref missing, ref missing, ref missing, ref missing, ref missing, ref missing, ref missing, ref missing, ref missing, ref missing, ref missing, ref missing, ref missing, ref missing, ref missing); while (rng.Find.Found) { intFound++; rng.Find.Execute( ref missing, ref missing, ref missing, ref missing, ref missing, ref missing, ref missing, ref missing, ref missing, ref missing, ref missing, ref missing, ref missing, ref missing, ref missing); } MessageBox.Show("Strings found: " + intFound.ToString()); }
Exemplo do suplemento ao Nível
Para executar um loop através dos itens em um suplemento ao nível
O exemplo a seguir mostra o código completo para um suplemento ao aplicativo.Para usar este código, ele execução da classe de ThisAddIn em seu projeto.
Private Sub FindLoop() Dim intFound As Integer = 0 Dim rng As Word.Range = Me.Application.ActiveDocument.Content rng.Find.ClearFormatting() rng.Find.Forward = True rng.Find.Text = "find me" rng.Find.Execute() Do While rng.Find.Found = True intFound += 1 rng.Find.Execute() Loop MessageBox.Show("Strings found: " & intFound.ToString()) End Sub
private void FindLoop() { int intFound = 0; Word.Document document = this.Application.ActiveDocument; Word.Range rng = document.Content; rng.Find.ClearFormatting(); rng.Find.Forward = true; rng.Find.Text = "find me"; rng.Find.Execute( ref missing, ref missing, ref missing, ref missing, ref missing, ref missing, ref missing, ref missing, ref missing, ref missing, ref missing, ref missing, ref missing, ref missing, ref missing); while (rng.Find.Found) { intFound++; rng.Find.Execute( ref missing, ref missing, ref missing, ref missing, ref missing, ref missing, ref missing, ref missing, ref missing, ref missing, ref missing, ref missing, ref missing, ref missing, ref missing); } MessageBox.Show("Strings found: " + intFound.ToString()); }
Consulte também
Tarefas
Como localizar e substituir texto em documentos programaticamente
Como definir opções de pesquisa no Word programaticamente
Como definir e selecionar intervalos em documentos programaticamente
Como restaurar seleções após pesquisas programaticamente