Mengganti nama bookmark di Word 2010

13

Saya sering menggunakan bookmark di Word untuk membuat dokumen teknis dengan tautan internal ke kutipan dan informasi yang umum digunakan yang perlu konsisten di seluruh dokumen. Anda dapat membuatnya dengan memilih teks dan kemudian pergi ke menu Insert-> Links-> Bookmarkdan menetapkan nama, kemudian pergi ke Insert-> Links-> Citationsdan memilih bookmark yang akan disisipkan. Ini kemudian akan memasukkan teks bookmark itu di tempat lain dalam dokumen.

Sebagai contoh mengapa saya melakukan ini: Saya sering memiliki halaman depan yang mencantumkan status dokumen dan informasi itu kemudian diulang di footer, menggunakan bookmark saya dapat mengatur tautan ke teks itu dan kemudian cukup memasukkan tautan itu di footer dan itu akan diperbarui secara otomatis setiap kali saya pergi ke pratinjau cetak atau memperbarui semua bidang dalam dokumen. Dengan cara ini saya dapat menghindari melakukan pencarian dan penggantian dan hanya tahu bahwa teks yang benar akan diperbarui di tempat yang benar.

masukkan deskripsi gambar di sini

Sekarang katakanlah saya memiliki bookmark yang baru saja saya beri nama, hanya untuk membuatnya:
masukkan deskripsi gambar di sini

Tidak ada klik kanan untuk mengganti nama bookmark dan saya tidak dapat menemukan properti dokumen apa pun yang akan membiarkan saya mengubahnya.

Saya dapat menyisipkan bookmark BARU dengan memilih teks yang sama dan kemudian menghapus yang lama tetapi kemudian Anda mendapatkan ini:
masukkan deskripsi gambar di sini

Anda kemudian harus mengklik kanan bidang itu dan mengarahkannya kembali ke bookmark (sekarang secara efektif diganti nama).

Ini tidak sepenuhnya dapat digunakan, terutama dalam dokumen besar tempat bookmark ini digunakan beberapa kali.

Saya telah melihat-lihat Google dan melihat beberapa skrip VBA di web seperti dalam pertanyaan ini tetapi karena mereka secara efektif membuat boomark baru dan menghapus yang lama mereka membuat masalah yang sama seperti di atas dan kurang ideal.

Apakah ada cara yang lebih sederhana atau lebih efektif untuk mengganti nama bookmark di dokumen Word? Atau mungkinkah saya menggunakan Wrong Tool ™ untuk pekerjaan ini?

Mokubai
sumber
Apakah maksud Anda Word 2013, bukan 2010?
Yunani - Proposal Area 51
@LePressentiment, salinan Word saya adalah 2010, tetapi saya tidak melihat mengapa jawaban di bawah ini tidak berlaku untuk 2013 kecuali mereka secara signifikan merombak fitur bookmark antara versi. Saya benar-benar akan terkejut jika mereka melakukannya.
Mokubai
@LePressentiment Lihat jawaban saya yang telah diperbarui oleh Mokubai.
DavidPostill

Jawaban:

7

Apakah ada cara yang lebih sederhana atau lebih efektif untuk mengganti nama bookmark di dokumen Word?

Tidak ada fungsi ganti nama bawaan untuk Word. Ada beberapa opsi untuk mengatasi kekurangan ini:

  1. Gunakan Add-in.

  2. Gunakan VBA.


Solusi Tambahan

Gunakan Add-In Alat Bookmark

Ini menawarkan antarmuka pengguna yang ramah untuk melakukan segala sesuatu yang akan dilakukan kotak Dialog Bookmark standar plus banyak lagi.

Alat Bookmark dikembangkan untuk Word 2003. Ini sepenuhnya berfungsi dengan Word 2007/2010.

...

Dengan bagian "Tambahkan / Ganti Nama Bookmark", menambahkan bookmark sangatlah mudah.

  • Seperti dalam dialog standar, Anda cukup memilih teks, ketik nama di bidang, dan klik "Tambah."
  • Berbeda dengan dialog standar, Alat Bookmark membatasi entri kunci ke karakter nama bookmark yang valid dan memperingatkan Anda jika Anda mencoba membuat nama bookmark yang sama.
  • Anda juga dapat menggunakan bagian ini untuk mengganti nama bookmark yang ada.

    masukkan deskripsi gambar di sini

Add-In Alat Bookmark Sumber


Solusi VBA

Tidak ada fungsi ganti nama. Anda harus menghapus nama lama dan menandai rentang dengan nama bookmark baru. Berikut contoh kode VBA:

Sub ReNameBookMark()
    Dim doc As Word.Document
    Dim rng As Word.Range
    Dim bmk As Word.Bookmark
    Dim inpBookmark, repBookmark, fieldStr As String

    Set doc = Word.ActiveDocument

    inpBookmark = InputBox("Enter bookmark name that you want to be replaced:", "BookMark Replace")
    repBookmark = InputBox("Enter bookmark name replace with:", "BookMark Replace")

    Set rng = doc.Bookmarks(inpBookmark).Range
    Set bmk = doc.Bookmarks(inpBookmark)
    bmk.Delete
    rng.Bookmarks.Add (repBookmark)

    If doc.Fields.Count >= 1 Then
        For i = 1 To doc.Fields.Count
            fieldStr = doc.Fields(i).Code.Text
            If Left(fieldStr, 4) = " REF" Then
                doc.Fields(i).Code.Text = Replace(fieldStr, inpBookmark, repBookmark, , 1, vbTextCompare)
                doc.Fields(i).Update
            End If

            'MsgBox "Code = " & doc.Fields(i).Code & vbCr & "Result = " & doc.Fields(i).Result & vbCr
        Next i
    End If
End Sub

Sumber Ubah "nama" dari bookmark bukan teks itu , dengan loop tambahan untuk dijalankan melalui bidang dalam dokumen untuk mengubah apa pun yang mungkin merujuk pada bookmark yang sedang diganti namanya.

Perawatan harus diambil menggunakan skrip ini. Misalnya mengganti nama bookmark yang hanya bernama "REF" (atau varian huruf besar atau kecil semacam itu) akan mematahkan SEMUA referensi dengan cara yang lucu dan tak terduga. Ini dimaksudkan sebagai contoh dan hanya perbaikan kasar.

Jika Anda ingin batch mengubah nama beberapa bookmark sekaligus, lihat apakah ada cara yang lebih sederhana atau lebih efektif untuk mengganti nama bookmark di dokumen Word? yang juga termasuk kode sampel VBA.

DavidPostill
sumber
@Mububai Sepertinya Anda mungkin dapat melakukan ini dengan Add-in (lihat jawaban yang diperbarui)? Sayangnya saya tidak memiliki salinan Word untuk diuji dengan ...
DavidPostill
Saya akan memberikan addin tes di pagi hari ketika saya kembali ke PC saya. Ini mungkin baik untuk rumah, tetapi di tempat kerja saya tidak berpikir saya akan dapat menggunakannya karena departemen TI kami bisa sedikit waspada terhadap hal semacam itu. Saya akan mencoba kedua metode dan melihat apakah saya dapat meningkatkan skrip VBA Anda untuk melakukan pencarian dan penggantian. Jika saya mendapatkan suatu tempat dan tidak apa-apa dengan Anda, saya ingin mengeditnya menjadi jawaban Anda.
Mokubai
@LePressentiment Jika itu adalah bantuan untuk apa yang Anda inginkan, saya telah menambahkan beberapa fitur ke skrip VBA di atas untuk memberi Anda kotak input untuk nama saat ini dan baru, dan melakukan pencarian kotor dan ganti bidang yang merujuk ke bookmark tersebut. Ini tidak sempurna, tetapi lebih baik daripada tidak sama sekali dan akan lebih sesuai dengan apa yang perlu saya lakukan di tempat kerja.
Mokubai
Add-in Alat Bookmark memecah referensi untuk bookmark setelah mengubah nama mereka (untuk saya di Word 365 pada Windows).
filups21
1

Saya memiliki masalah yang sama dan menemukan solusi / solusi ini.

Untuk teks yang ingin Anda rujuk, judul dalam kasus saya, siapkan judul properti Dokumen sebagai berikut:

Insert tabQuick PartsDocument PropertyTitle

Ini kemudian menambahkan kotak yang dapat diedit untuk teks di mana Anda dapat mengetik judul Anda.

Kemudian, untuk referensi Anda bisa langsung pergi ke Insert tabQuick PartsFieldTitle, atau melakukan seperti apa yang saya lakukan secara tidak sengaja - Saya telah mengatur referensi dan ketika saya memperbaruinya dengan F9itu menambahkan kotak judul yang direferensikan.

Ini cukup keren karena ketika Anda memperbarui kotak judul semua referensi diperbarui secara otomatis tanpa menekan F9!!! Ini bagus ketika Anda memiliki referensi di header karena fungsi Ctrl+ Atidak menangkap apa yang ada di header / footer dan Anda biasanya harus mengklik dua kali di dalam header / footer untuk memilih, dan tekan F9untuk memperbarui.

Jadi alih-alih membuat referensi judul seperti yang disebutkan di atas, lakukan ini:

  • Setelah menyiapkan kotak judul, buat Bookmark kotak Judul:

    • Pilih kotak judul (pastikan Anda mengklik tab judul di bagian atas untuk memilih semua kotak)
    • InsertBookmark→ (beri nama Project_title) →add
  • Kemudian tambahkan referensi seperti ini:

    • Insert tabQuick PartsFieldRef(dan pilih Project_titleatau apa pun namanya)
Lee
sumber