Bagikan melalui


Mencari dan mengganti teks secara terprogram dalam dokumen

Objek Find adalah anggota dari Selection objek dan Range , dan Anda bisa menggunakan salah satu untuk mencari teks dalam dokumen Microsoft Office Word. Perintah ganti adalah ekstensi dari perintah temukan.

Find Gunakan objek untuk mengulang dokumen Microsoft Office Word dan mencari teks, pemformatan, atau gaya tertentu, dan gunakan Replacement properti untuk mengganti item apa pun yang ditemukan.

Berlaku untuk: Informasi dalam topik ini berlaku untuk proyek tingkat dokumen dan proyek Add-in VSTO untuk Word. Untuk informasi selengkapnya, lihat Fitur yang tersedia berdasarkan aplikasi Office likasi dan jenis proyek.

Menggunakan objek Pilihan

Saat Anda menggunakan Selection objek untuk menemukan teks, kriteria pencarian apa pun yang Anda tentukan hanya diterapkan terhadap teks yang saat ini dipilih. Selection Jika adalah titik penyisipan, maka dokumen akan dicari. Ketika item ditemukan yang cocok dengan kriteria pencarian, item dipilih secara otomatis.

Penting untuk dicatat bahwa Find kriteria bersifat kumulatif, yang berarti kriteria ditambahkan ke kriteria pencarian sebelumnya. Hapus pemformatan dari pencarian sebelumnya dengan menggunakan ClearFormatting metode sebelum pencarian.

Untuk menemukan teks menggunakan objek Pilihan

  1. Tetapkan string pencarian ke variabel.

    object findText = "find me";
    
  2. Hapus pemformatan dari pencarian sebelumnya.

    Application.Selection.Find.ClearFormatting();
    
  3. Jalankan pencarian dan tampilkan kotak pesan dengan hasilnya.

    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.");
    }
    

    Contoh berikut menunjukkan metode lengkap.

    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.");
        } 
    }
    

Menggunakan objek Rentang

Range Menggunakan objek memungkinkan Anda mencari teks tanpa menampilkan apa pun di antarmuka pengguna. Objek Find mengembalikan True jika teks ditemukan yang cocok dengan kriteria pencarian, dan False jika tidak. Ini juga mendefiniskan Range ulang objek agar sesuai dengan kriteria pencarian jika teks ditemukan.

Untuk menemukan teks menggunakan objek Rentang

  1. Range Tentukan objek yang terdiri dari paragraf kedua dalam dokumen.

    Contoh kode berikut dapat digunakan dalam kustomisasi tingkat dokumen.

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

    Contoh kode berikut dapat digunakan dalam Add-in VSTO. Contoh ini menggunakan dokumen aktif.

    Word.Document document = this.Application.ActiveDocument;
    Word.Range rng = document.Paragraphs[2].Range;
    
  2. Find Menggunakan properti Range objek , pertama-tama hapus opsi pemformatan yang ada, lalu cari string temukan saya.

    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. Tampilkan hasil pencarian dalam kotak pesan, dan pilih Range untuk membuatnya terlihat.

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

    Jika pencarian gagal, paragraf kedua dipilih; jika berhasil, kriteria pencarian ditampilkan.

    Contoh berikut menunjukkan kode lengkap untuk kustomisasi tingkat dokumen. Untuk menggunakan contoh ini, jalankan kode dari ThisDocument kelas di proyek Anda.

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

Contoh berikut menunjukkan kode lengkap untuk Add-in VSTO. Untuk menggunakan contoh ini, jalankan kode dari ThisAddIn kelas di proyek Anda.

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

Mencari dan mengganti teks dalam dokumen

Kode berikut mencari pilihan saat ini dan mengganti semua kemunculan string temukan saya dengan string Ditemukan.

Untuk mencari dan mengganti teks dalam dokumen

  1. Tambahkan contoh kode berikut ke ThisDocument kelas atau ThisAddIn di proyek Anda.

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

    Kelas Find ini memiliki ClearFormatting metode , dan Replacement kelas juga memiliki metodenya sendiri ClearFormatting . Saat Anda melakukan operasi find-and-replace, Anda harus menggunakan metode ClearFormatting dari kedua objek. Jika Anda hanya menggunakannya pada Find objek, Anda mungkin mendapatkan hasil yang tidak tertandingi dalam teks pengganti.

  2. Execute Gunakan metode objek untuk mengganti setiap item yang Find ditemukan. Untuk menentukan item mana yang akan diganti, gunakan parameter Ganti . Parameter ini bisa menjadi salah satu nilai berikut WdReplace :