In het artikel van vandaag willen we de stappen met u delen om alle bladwijzers batchgewijs uit uw Word-document te halen om ze in één keer te bekijken.
In Word kunt u een inhoudsopgave of een tabel met afbeeldingen genereren met de ingebouwde functie. Maar uiteindelijk zult u ontdekken dat er geen gebruikelijke manier is om alle bladwijzers van een document te extraheren en ze op een nieuw document te ordenen.
Zoals altijd is het onze missie om u door de mythe te leiden en u de macromanier te bieden om alle bladwijzers en hun teksten naar een nieuw leeg document te exporteren.
Batch alle bladwijzers uit één document extraheren
- Open om te beginnen het betreffende document en druk op "Alt+F11" om de VBA-editor te openen.
- Klik vervolgens op "Normaal" en vervolgens op "Invoegen".
- En kies "Module" om een nieuwe aan te maken onder "Normaal" project.
- Dubbelklik er vervolgens op om de bewerkingsruimte te openen.
- Plak daar de volgende macro:
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
- Als laatste, maar niet de minste, klik op "Uitvoeren".
Alle bladwijzers van het huidige document worden in een tabel in een nieuw document opgeslagen in dezelfde map als het originele bestand.
U kunt een tabel met 3 kolommen in het nieuwe document zien. En als je de "Ctrl + klik" volgt, zal het je naar de bladwijzer in het originele document brengen.
Batch-extract bladwijzers uit meerdere documenten
Volg dezelfde stappen hierboven om een macro te installeren en uit te voeren. Alleen deze keer vervang je de codes door de blaffende:
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
Nadat u de macro heeft uitgevoerd, is er een invoerveld. Voer het mappad in waar u alle documenten opslaat. En vergeet niet voeg "\" toe aan het einde van het pad als u het gewoon vanuit het tekstvak van de map kopieert. Klik vervolgens op "OK".
Hoe u zich snel kunt redden van een gegevensramp
De gegevensramp waar we het in Word over hebben, kan optreden wanneer deze niet meer normaal werkt. Soms heb je geluk en heb je alle informatie intact. En soms word je het slachtoffer van de ramp. Daarom is de snelste manier om zoveel mogelijk gegevens op te halen, het verkrijgen van een tool voor repareer docx.
Auteur Introductie:
Vera Chen is een expert op het gebied van gegevensherstel in DataNumen, Inc., de wereldleider in technologieën voor gegevensherstel, waaronder reparatie xlsx en pdf reparatie softwareproducten. Voor meer informatie bezoek www.datanumen.com



