Aracılığıyla paylaş


Nasıl yapılır: Belgelerde Program Aracılığıyla Metin Arama ve Değiştirme

Find nesnesi, Selection ve Range nesnelerinin bir üyesidir ve onlardan herhangi birini Microsoft Office Word belgelerinde metin aramak için kullanabilirsiniz.Değiştir komutu, bul komutunun bir uzantısıdır.

Microsoft Office Word belgesinde döngü gerçekleştirmek ve belirli bir metin, biçimlendirme ve stil aramak için Find nesnesini kullanın ve bulunan öğelerden herhangi birini değiştirmek için Replacement özelliğini kullanın.

Uygulama alanı: Bu konudaki bilgiler Word 2013 ve Word 2010 uygulamalarının belge düzeyi projelerine ve uygulama düzeyi projelerine yöneliktir. Daha fazla bilgi için bkz. Office Uygulamalarında Kullanılabilir Özellikler ve Proje Türü.

Seçim Nesnesi Kullanma

Metin bulmak için Selection nesnesi kullandığınızda, belirlediğiniz herhangi bir arama kriteri, sadece geçerli olan seçilmiş metne uygulanır.Eğer Selection bir kesişim noktasıysa, belge aranmıştır.Eğer bulunan öğe arama kriteriyle eşleşmişse, otomatik olarak seçilir.

Find kriterlerinin birikimli olduğunu bilmek önemlidir, yani kriterler önceki arama kriterlerine eklenir.Biçimlendirmeyi önceki aramalardan, arama yapmadan önce ClearFormatting yöntemini kullanarak temizleyin.

Selection nesnesi kullanarak metin bulmak için

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

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

    Application.Selection.Find.ClearFormatting()
    
    Application.Selection.Find.ClearFormatting();
    
  3. Aramayı yürütün ve sonuçlarla birlikte bir ileti kutusu görüntüleyin.

    If Application.Selection.Find.Execute(findText) = True Then
        MessageBox.Show("Text found.")
    Else
        MessageBox.Show("The text could not be located.")
    End If
    
    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 tamamlanmış bir yöntem gösterilmektedir.

Private Sub SelectionFind()
    Dim findText As String = "find me"

    Application.Selection.Find.ClearFormatting()

    If Application.Selection.Find.Execute(findText) = True Then
        MessageBox.Show("Text found.")
    Else
        MessageBox.Show("The text could not be located.")
    End If
End Sub
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.");
    } 
}

Range Nesnesi Kullanma

Range nesnesi kullanmak, kullanıcı arayüzünde hiçbir şey görüntülemeden metin aramanıza olanak sağlar.Eğer arama kriterleriyle eşleşen metin bulunursa, Find nesnesi True, bulunmazsa da False döner.Ayrıca metin bulunduğunda arama kriterleriyle eşleşmesi için Range nesnesini yeniden tanımlar.

Range nesnesi kullanarak metin bulmak için

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

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

    Dim rng As Word.Range = Me.Paragraphs(2).Range
    
    Word.Range rng = this.Paragraphs[2].Range; 
    

    Aşağıdaki kod örneği uygulama düzeyi eklentilerinde kullanılabilir.Bu örnekte etkin belge kullanılır.

    Dim rng As Word.Range = Me.Application.ActiveDocument.Paragraphs(2).Range
    
    Word.Document document = this.Application.ActiveDocument;
    Word.Range rng = document.Paragraphs[2].Range;
    
  2. Range nesnesinin Find özelliğini kullanarak, varolan herhangi biçimlendirme seçeneklerini temizleyin ve find me dizesi için arama yapın.

    rng.Find.ClearFormatting()
    
    If rng.Find.Execute(findText) Then
    
    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 onu görünür yapmak için Range'i seçin.

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

    Eğer arama başarısız olursa, ikinci paragraf seçilir; eğer başarılı olursa, arama kriterleri görüntülenir.

Aşağıdaki örnekte belge düzeyi özelleştirmesi için tüm kod gösterilir.Bu örneğini kullanmak için projenizdeki ThisDocument sınıfından kodu çalıştırın.

Private Sub RangeFind()
    Dim findText As String = "find me"

    Dim rng As Word.Range = Me.Paragraphs(2).Range

    rng.Find.ClearFormatting()

    If rng.Find.Execute(findText) Then
        MessageBox.Show("Text found.")
    Else
        MessageBox.Show("Text not found.")
    End If

    rng.Select()
End Sub
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 uygulama düzeyi eklentisi için tüm kod gösterilir.Bu örneğini kullanmak için projenizdeki ThisAddIn sınıfından kodu çalıştırın.

Private Sub RangeFind()
    Dim findText As Object = "find me"

    Dim rng As Word.Range = Me.Application.ActiveDocument.Paragraphs(2).Range

    rng.Find.ClearFormatting()

    If rng.Find.Execute(findText) Then
        MessageBox.Show("Text found.")
    Else
        MessageBox.Show("Text not found.")
    End If

    rng.Select()
End Sub
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();
}

Arama ve belgelerde metin değiştirme

Aşağıdaki kod örneğinde geçerli seçim aranır ve find me dizesinin tüm yinelenmeleri Found dizesiyle değiştirilir.

Belgelerde metin için arama ve değiştirme için

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

    Private Sub SearchReplace()
        Dim FindObject As Word.Find = Application.Selection.Find
        With FindObject
            .ClearFormatting()
            .Text = "find me"
            .Replacement.ClearFormatting()
            .Replacement.Text = "Found"
            .Execute(Replace:=Word.WdReplace.wdReplaceAll)
        End With
    End Sub
    
    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);
    }
    

    Find sınıfının ClearFormatting yöntemi vardır ve Replacement sınıfı da kendi ClearFormatting yöntemine sahiptir.Bul ve değiştir işlemlerini gerçekleştirdiğinizde, her iki nesnenin de ClearFormatting yöntemini kullanmalısınız.Eğer onu sadece Find nesnesinde kullanıyorsanız, değiştirme metninde beklenmedik sonuçlar alabilirsiniz.

  2. Her bulunan öğeyi değiştirmek için Find nesnesinin Execute yöntemini kullanın.Hangi öğelerin değişeceğini belirlemek için Replace parametresini kullanın.Bu parametre aşağıdaki WdReplace değerlerinden biri olabilir:

Ayrıca bkz.

Görevler

Nasıl yapılır: Word'de Program Aracılığıyla Arama Seçeneklerini Ayarlama

Nasıl yapılır: Belgelerde Program Aracılığıyla Bulunan Öğeler Arasında Döngü Gerçekleştirme

Nasıl yapılır: Belgelerde Aralıkları Program Aracılığıyla Tanımlama ve Seçme

Nasıl yapılır: Aramalardan Sonra Seçimleri Program Aracılığıyla Geri Yükleme

Kavramlar

Office Çözümlerinde İsteğe Bağlı Parametreler