Aracılığıyla paylaş


Nasıl Yapılır: Belgelerde Metin Arama

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. Belgelerde metin değiştirme hakkında bilgi için bkz. Nasıl Yapılır: Belgelerde Metin Arama ve Değiştirme.

Uygulama alanı: Bu konudaki bilgiler Word 2007 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ış 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();
}

Ayrıca bkz.

Görevler

Nasıl Yapılır: Belgelerde Metin Arama ve Değiştirme

Nasıl Yapılır: Word'de Arama Seçeneklerini Ayarlama

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

Nasıl Yapılır: Belgelerde Aralıkları Tanımlama ve Seçme

Nasıl Yapılır: Arama Yaptıktan Sonra Seçimleri Geri Yükleme

Kavramlar

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