Program aracılığıyla belgelerde metin arama ve değiştirme

Find nesnesi hem hem Range de nesnelerinin Selection üyesidir ve Microsoft Office Word belgelerinde metin aramak için birini kullanabilirsiniz. replace komutu find komutunun bir uzantısıdır.

Find Bir Microsoft Office Word belgesinde döngü yapmak, belirli bir metin, biçimlendirme veya stil aramak için bir nesne kullanın ve bulunan öğelerden herhangi birini değiştirmek için özelliğini kullanınReplacement.

Şunlar için geçerlidir: Bu konudaki bilgiler, Word için belge düzeyi projeler ve VSTO Eklenti projeleri için geçerlidir. Daha fazla bilgi için bkz. Office uygulaması ve proje türüne göre kullanılabilen özellikler.

Seçim nesnesi kullanma

Metni bulmak için bir Selection nesne kullandığınızda, belirttiğiniz tüm arama ölçütleri yalnızca seçili durumdaki metne uygulanır. Selection ekleme noktasıysa, belgede arama yapılır. Arama ölçütlerine uyan öğe bulunduğunda otomatik olarak seçilir.

Ölçütlerin Find kümülatif olduğunu, yani ölçütlerin önceki arama ölçütlerine eklendiğini unutmayın. Aramadan önce yöntemini kullanarak ClearFormatting önceki aramalardan biçimlendirmeyi temizleyin.

Seçim nesnesi kullanarak metin bulmak için

  1. Değişkene bir arama dizesi atayın.

    object findText = "find me";
    
  2. Önceki aramalardan biçimlendirmeyi temizleyin.

    Application.Selection.Find.ClearFormatting();
    
  3. Aramayı yürütür ve sonuçları içeren bir ileti kutusu görüntüler.

    if (Application.Selection.Find.Execute(ref findText,
        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("Text found.");
    } 
    else
    { 
        MessageBox.Show("The text could not be located.");
    }
    

    Aşağıdaki örnekte tam yöntem gösterilmektedir.

    private void SelectionFind() 
    { 
        object findText = "find me";
    
        Application.Selection.Find.ClearFormatting();
    
        if (Application.Selection.Find.Execute(ref findText,
            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("Text found.");
        } 
        else
        { 
            MessageBox.Show("The text could not be located.");
        } 
    }
    

Aralık nesnesi kullanma

Range Nesne kullanmak, kullanıcı arabiriminde hiçbir şey görüntülemeden metin aramanızı sağlar. Nesne, Find arama ölçütlerine uyan metin bulunursa True, eşleşmezse False döndürür. Ayrıca, metin bulunursa arama ölçütleriyle eşleşecek şekilde nesneyi yeniden tanımlar Range .

Aralık nesnesi kullanarak metin bulmak için

  1. Belgedeki ikinci paragrafı içeren bir Range nesne tanımlayın.

    Aşağıdaki kod örneği belge düzeyi özelleştirmesinde kullanılabilir.

    Word.Range rng = this.Paragraphs[2].Range;
    

    Aşağıdaki kod örneği bir VSTO Eklentisinde kullanılabilir. Bu örnekte etkin belge kullanılır.

    Word.Document document = this.Application.ActiveDocument;
    Word.Range rng = document.Paragraphs[2].Range;
    
  2. nesnesinin FindRange özelliğini kullanarak, önce mevcut biçimlendirme seçeneklerini temizleyin ve sonra beni bul dizesini arayın.

    rng.Find.ClearFormatting();
    
    if (rng.Find.Execute(ref findText,
        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. Aramanın sonuçlarını bir ileti kutusunda görüntüleyin ve görünür hale getirmek için öğesini seçin Range .

        MessageBox.Show("Text found.");
    } 
    else 
    { 
        MessageBox.Show("Text not found.");
    } 
    
    rng.Select();
    

    Arama başarısız olursa ikinci paragraf seçilir; başarılı olursa, arama ölçütleri görüntülenir.

    Aşağıdaki örnekte, belge düzeyinde özelleştirme için tam kod gösterilmektedir. Bu örneği kullanmak için projenizdeki sınıfından ThisDocument kodu çalıştırın.

    private void RangeFind() 
    { 
        object findText = "find me";
    
        Word.Range rng = this.Paragraphs[2].Range; 
    
        rng.Find.ClearFormatting();
    
        if (rng.Find.Execute(ref findText,
            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("Text found.");
        } 
        else 
        { 
            MessageBox.Show("Text not found.");
        } 
    
        rng.Select(); 
    }
    

Aşağıdaki örnekte VSTO Eklentisinin tam kodu gösterilmektedir. Bu örneği kullanmak için projenizdeki sınıfından ThisAddIn kodu çalıştırın.

private void RangeFind()
{
    object findText = "find me";

    Word.Document document = this.Application.ActiveDocument;
    Word.Range rng = document.Paragraphs[2].Range;

    rng.Find.ClearFormatting();

    if (rng.Find.Execute(ref findText,
        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("Text found.");
    }
    else
    {
        MessageBox.Show("Text not found.");
    }

    rng.Select();
}

Belgelerde metin arama ve değiştirme

Aşağıdaki kod geçerli seçimde arama yapar ve beni bulan dizenin tüm oluşumlarını Bulunan dizesiyle değiştirir.

Belgelerde metin aramak ve değiştirmek için

  1. Projenizdeki veya ThisAddIn sınıfına ThisDocument aşağıdaki örnek kodu ekleyin.

    private void SearchReplace()
    {
        Word.Find findObject = Application.Selection.Find;
        findObject.ClearFormatting();
        findObject.Text = "find me";
        findObject.Replacement.ClearFormatting();
        findObject.Replacement.Text = "Found";
    
        object replaceAll = Word.WdReplace.wdReplaceAll;
        findObject.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);
    }
    

    sınıfının Find bir ClearFormatting yöntemi vardır ve sınıfın Replacement da kendi ClearFormatting yöntemi vardır. Bul ve değiştir işlemlerini gerçekleştirirken, her iki nesnenin de ClearFormatting yöntemini kullanmanız gerekir. Yalnızca nesnede Find kullanıyorsanız, değiştirme metninde tahmin edilmeyen sonuçlar alabilirsiniz.

  2. Execute Bulunan her öğeyi değiştirmek için nesnesinin Find yöntemini kullanın. Hangi öğelerin değiştirileceğini belirtmek için Replace parametresini kullanın. Bu parametre aşağıdaki WdReplace değerlerden biri olabilir: