Cara Mengekstrak Batch Semua Bookmark dari Dokumen Word Anda

Bagikan sekarang:

Dalam artikel hari ini, kami ingin berbagi dengan Anda langkah-langkah untuk mengekstrak semua bookmark dari dokumen Word Anda untuk melihatnya sekaligus.

Di Word, Anda dapat membuat daftar isi atau daftar gambar dengan fungsi bawaan. Namun, pada akhirnya Anda akan menemukan bahwa tidak ada cara biasa untuk mengekstrak semua bookmark dokumen dan mengaturnya pada dokumen baru.Cara Mengekstrak Batch Semua Bookmark dari Dokumen Word Anda

Seperti biasa, misi kami adalah memandu Anda melalui mitos dan memberi Anda cara makro untuk mengekspor semua bookmark serta teksnya ke dokumen kosong baru.

Ekstrak Batch Semua Bookmark dari Satu Dokumen

  1. Untuk starmati, buka open tardapatkan dokumen dan tekan "Alt + F11" untuk memanggil editor VBA.
  2. Selanjutnya klik "Normal" dan kemudian "Sisipkan".
  3. Dan pilih "Modul" untuk membuat yang baru di bawah proyek "Normal".Klik "Normal" -> Klik "Sisipkan" -> Klik "Modul"
  4. Kemudian klik dua kali untuk memunculkan ruang pengeditan.
  5. Tempel makro berikut di sana:
Sub ExtractBookmarksInADoc()
  Dim objBookmark As Bookmark
  Dim objTable As Table
  Dim nRow As Integer
  Dim objDoc As Document, objNewDoc As Document
  Dim objParagraph As Paragraph
 
  Set objDoc = ActiveDocument
 
  If objDoc.Bookmarks.Count = 0 Then
    MsgBox ("There is no bookmark in this document.")
  Else
    Set objNewDoc = Documents.Add
 
    Selection.TypeText Text:="Bookmarks in " & "'" & objDoc.Name & "'"
 
    Set objTable = Selection.Tables.Add(Range:=Selection.Range, numrows:=1, numcolumns:=3)
    objTable.Borders.Enable = True
    nRow = 1
 
    For Each objParagraph In objNewDoc.Paragraphs
      If objParagraph.Range.Style = "Caption" Then
        objParagraph.Range.Delete
      End If
    Next objParagraph
 
    With objTable
      .Cell(1, 1).Range.Text = "Name"
      .Cell(1, 2).Range.Text = "Texts"
      .Cell(1, 3).Range.Text = "Page Number"
 
      For Each objBookmark In objDoc.Bookmarks
        objTable.Rows.Add
        nRow = nRow + 1
        .Cell(nRow, 1).Range.Text = objBookmark.Name
        .Cell(nRow, 2).Range.Text = objBookmark.Range.Text
        .Cell(nRow, 3).Range.Text = objBookmark.Range.Information(wdActiveEndAdjustedPageNumber)
        objDoc.Hyperlinks.Add Anchor:=.Cell(nRow, 3).Range, Address:=objDoc.Name, _
          SubAddress:=objBookmark.Name, TextToDisplay:=.Cell(nRow, 3).Range.Text
      Next objBookmark
    End With
  End If
  objNewDoc.SaveAs2 FileName:=objDoc.Path & "\" & "Bookmarks in " & objDoc.Name
End Sub
  1. Terakhir, klik "Run".Tempel kode-> Klik "Jalankan"

Semua bookmark dari dokumen saat ini akan dimasukkan ke dalam tabel pada dokumen baru yang disimpan di bawah direktori yang sama dengan file asli.

Anda dapat melihat tabel 3 kolom di dokumen baru. Dan jika Anda mengikuti "Ctrl + Klik", itu akan membawa Anda ke bookmark di dokumen asli.Tabel semua bookmark dan teks serta nomor halamannya

Batch Extract Bookmark dari Banyak Dokumen

Ikuti langkah yang sama di atas untuk menginstal dan menjalankan makro. Hanya saja kali ini Anda mengganti kode-kode tersebut dengan kode-kode di bawah ini:

Sub ExtractBookmarksInMultiDoc()
  Dim objBookmark As Bookmark
  Dim objTable As Table
  Dim nRow As Integer
  Dim objDoc As Document, objNewDoc As Document
  Dim objParagraph As Paragraph
  Dim strFolder As String, strFile As String
 
  strFolder = InputBox("Enter folder path here: ")
  strFile = Dir(strFolder & "*.docx", vbNormal)
 
  While strFile <> ""
    Set objDoc = Documents.Open(FileName:=strFolder & strFile)
    Set objDoc = ActiveDocument
    Set objNewDoc = Documents.Add
 
    Selection.TypeText Text:="Bookmarks in " & "'" & objDoc.Name & "'"
 
    Set objTable = Selection.Tables.Add(Range:=Selection.Range, numrows:=1, numcolumns:=3)
    objTable.Borders.Enable = True
    nRow = 1
 
    For Each objParagraph In objNewDoc.Paragraphs
      If objParagraph.Range.Style = "Caption" Then
        objParagraph.Range.Delete
      End If
    Next objParagraph
 
    With objTable
      .Cell(1, 1).Range.Text = "Name"
      .Cell(1, 2).Range.Text = "Texts"
      .Cell(1, 3).Range.Text = "Page Number"
 
      For Each objBookmark In objDoc.Bookmarks
        objTable.Rows.Add
        nRow = nRow + 1
        .Cell(nRow, 1).Range.Text = objBookmark.Name
        .Cell(nRow, 2).Range.Text = objBookmark.Range.Text
        .Cell(nRow, 3).Range.Text = objBookmark.Range.Information(wdActiveEndAdjustedPageNumber)
        objDoc.Hyperlinks.Add Anchor:=.Cell(nRow, 3).Range, Address:=objDoc.Name, _
          SubAddress:=objBookmark.Name, TextToDisplay:=.Cell(nRow, 3).Range.Text
      Next objBookmark
    End With
    objNewDoc.SaveAs2 FileName:=objDoc.Path & "\" & "Bookmarks in " & objDoc.Name
    objDoc.Close
    strFile = Dir()
  Wend
End Sub

Setelah Anda menjalankan makro, ada kotak input. Masukkan jalur folder tempat Anda menyimpan semua dokumen. Dan ingat untuk tambahkan "\" di akhir jalan jika Anda hanya menyalinnya dari kotak teks folder. Kemudian klik “Oke”.Masukkan jalur folder-> Klik "OK"

Cara Cepat Menyelamatkan Diri dari Bencana Data

Bencana data yang kita bicarakan di Word dapat terjadi setiap kali berhenti bekerja secara tidak normal. Terkadang, Anda beruntung dan memiliki semua informasi yang utuh. Dan di lain waktu, Anda menjadi korban bencana. Oleh karena itu, cara tercepat untuk mengambil data sebanyak mungkin adalah dengan mendapatkan alat untuk perbaiki docx.

Pengantar Penulis:

Vera Chen adalah pakar pemulihan data di DataNumen, Inc., yang merupakan pemimpin dunia dalam teknologi pemulihan data, termasuk perbaiki xlsx dan pdf memperbaiki produk perangkat lunak. Untuk informasi lebih lanjut kunjungi www.datanumen.com

Bagikan sekarang:

Komentar ditutup.