Udostępnij za pośrednictwem


Programowa pętla przez znalezione elementy w dokumentach

Klasa Find ma Found właściwość, która zwraca wartość true za każdym razem, gdy zostanie znaleziony wyszukiwany element. Możesz wykonać pętlę we wszystkich wystąpieniach znalezionych w Range metodzie Execute .

Dotyczy: informacje w tym temacie dotyczą projektów na poziomie dokumentu i projektów dodatków VSTO dla programu Word. Aby uzyskać więcej informacji, zobacz Funkcje dostępne przez aplikacja pakietu Office lication i typ projektu.

Aby przeprowadzić pętlę przez znalezione elementy

  1. Zadeklaruj Range obiekt.

    Poniższy przykład kodu może być używany w dostosowywaniu na poziomie dokumentu.

    Word.Range rng = this.Content;
    

    Poniższy przykład kodu może być używany w dodatku VSTO. W tym przykładzie użyto aktywnego dokumentu.

    Word.Document document = this.Application.ActiveDocument;
    Word.Range rng = document.Content;
    
  2. Found Użyj właściwości w pętli, aby wyszukać wszystkie wystąpienia ciągu w dokumencie i zwiększać zmienną całkowitą o 1 za każdym razem, gdy ciąg zostanie znaleziony.

    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);
    }
    
  3. Wyświetl liczbę znalezionych ciągów w polu komunikatu.

    MessageBox.Show("Strings found: " + intFound.ToString());
    

    W poniższych przykładach przedstawiono kompletną metodę.

Przykład dostosowywania na poziomie dokumentu

Aby przeprowadzić pętlę przez elementy w dostosowywaniu na poziomie dokumentu

  1. W poniższym przykładzie pokazano pełny kod dostosowywania na poziomie dokumentu. Aby użyć tego kodu, uruchom go z ThisDocument klasy w projekcie.

    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()); 
    }
    

Przykład dodatku VSTO

Aby przeprowadzić pętlę przez elementy w dodatku VSTO

  1. W poniższym przykładzie przedstawiono kompletny kod dodatku VSTO. Aby użyć tego kodu, uruchom go z ThisAddIn klasy w projekcie.

    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());
    }