Executar um loop programaticamente por itens encontrados em documentos
A Find classe tem uma Found propriedade, que retorna true sempre que um item pesquisado é encontrado. Você pode percorrer todas as instâncias encontradas em um Range usando o Execute método.
Aplica-se a: As informações neste tópico se aplicam a projetos de nível de documento e projetos de suplemento VSTO para Word. Para obter mais informações, consulte Recursos disponíveis por aplicativo e tipo de projeto do Office.
Para percorrer os itens encontrados
Declare um objeto Range.
O exemplo de código a seguir pode ser usado em uma personalização em nível de documento.
O exemplo de código a seguir pode ser usado em um suplemento VSTO. Este exemplo usa o documento ativo.
Use a propriedade em um loop para procurar todas as ocorrências da cadeia de caracteres no documento e incremente uma variável inteira em 1 cada vez que a Found cadeia de caracteres for encontrada.
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.
Os exemplos a seguir mostram o método completo.
Exemplo de personalização em nível de documento
Para percorrer itens em uma personalização em nível de documento
O exemplo a seguir mostra o código completo para uma personalização em nível de documento. Para usar esse código, execute-o a
ThisDocument
partir da classe em seu projeto.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 de suplemento VSTO
Para percorrer itens em um suplemento VSTO
O exemplo a seguir mostra o código completo de um suplemento VSTO. Para usar esse código, execute-o a
ThisAddIn
partir da classe em seu projeto.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()); }