Word文書からすべてのブックマークをバッチ抽出する方法

今すぐ共有:

今日の記事では、Word文書からすべてのブックマークをバッチ抽出して、一度に表示する手順を紹介します。

Wordでは、組み込み関数を使用して目次または図表を生成できます。 ただし、最終的には、ドキュメントのすべてのブックマークを抽出して新しいドキュメントに配置する通常の方法はありません。Word文書からすべてのブックマークをバッチ抽出する方法

いつものように、私たちの使命は、神話を通してあなたを導き、すべてのブックマークとそのテキストを新しい空白のドキュメントにエクスポートするマクロな方法を提供することです。

単一のドキュメントからすべてのブックマークをバッチ抽出

  1. まず、対象のドキュメントを開き、「Alt + F11」を押してVBAエディターを起動します。
  2. 次に、「通常」、「挿入」の順にクリックします。
  3. そして、「モジュール」を選択して、「通常」プロジェクトの下に新しいモジュールを作成します。「通常」をクリック->「挿入」をクリック->「モジュール」をクリック
  4. 次に、それをダブルクリックして編集スペースを引き出します。
  5. 次のマクロをそこに貼り付けます。
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. 最後になりましたが、「実行」をクリックしてください。コードを貼り付け-> [実行]をクリックします

現在のドキュメントのすべてのブックマークは、元のファイルと同じディレクトリの下に保存された新しいドキュメントのテーブルに配置されます。

新しいドキュメントで3列の表を見ることができます。 また、「Ctrl +クリック」に従うと、元のドキュメントのブックマークに移動します。すべてのブックマークとそのテキストおよびページ番号の表

複数のドキュメントからブックマークをバッチ抽出

上記と同じ手順に従って、マクロをインストールして実行します。 今回のみ、コードを次のコードに置き換えます。

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

マクロを実行すると、入力ボックスが表示されます。 すべてのドキュメントを保存するフォルダパスを入力します。 そして忘れないでください パスの最後に「\」を追加します フォルダのテキストボックスからコピーするだけの場合。 次に「OK」をクリックします。フォルダパスを入力->「OK」をクリック

データ災害からすばやく自分を救う方法

Wordで説明しているデータ災害は、異常に機能しなくなったときに発生する可能性があります。 運が良ければ、すべての情報が損なわれないことがあります。 そして他の時には、あなたは災害の犠牲になります。 したがって、できるだけ多くのデータを取得する最も簡単な方法は、次のツールを入手することです。 docxを修正.

著者紹介:

Vera Chenは、のデータ復旧の専門家です。 DataNumen、Inc。は、以下を含むデータ復旧技術の世界的リーダーです。 xlsxを修復する (NAIST) と pdf ソフトウェア製品を修理します。 詳細については、次のWebサイトをご覧ください。 WWW。datanumen.com

今すぐ共有:

コメントは締め切りました。