V dnešnom článku by sme sa s vami chceli podeliť o kroky na hromadné extrahovanie všetkých záložiek z dokumentu Word, aby ste ich mohli zobraziť naraz.
V programe Word môžete pomocou vstavanej funkcie vygenerovať obsah alebo tabuľku obrázkov. Nakoniec však zistíte, že neexistuje obvyklý spôsob, ako extrahovať všetky záložky dokumentu a usporiadať ich do nového dokumentu.
Naším poslaním je ako vždy previesť vás mýtom a poskytnúť vám makro spôsob, ako exportovať všetky záložky a ich texty do nového prázdneho dokumentu.
Hromadne extrahujte všetky záložky z jedného dokumentu
- Ak chcete začať, otvorte cieľový dokument a stlačte klávesy „Alt + F11“, čím spustíte editor VBA.
- Ďalej kliknite na „Normálny“ a potom na „Vložiť“.
- A zvoľte „Modul“, aby ste vytvorili nový v rámci projektu „Normálny“.
- Potom na ňu dvakrát kliknite, aby sa uvoľnil priestor na úpravy.
- Vložte tam nasledujúce makro:
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
- V neposlednom rade kliknite na „Spustiť“.
Všetky záložky aktuálneho dokumentu sa vložia do tabuľky na nový dokument uložený v rovnakom adresári ako pôvodný súbor.
V novom dokumente môžete vidieť tabuľku s 3 stĺpcami. A ak budete postupovať podľa pokynov „Ctrl + kliknutie“, dostanete sa na záložku v pôvodnom dokumente.
Dávkové extrahovanie záložiek z viacerých dokumentov
Rovnakým spôsobom postupujte pri inštalácii a spustení makra. Iba tentoraz vymeníte kódy za nasledujúce:
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
Po spustení makra sa nachádza vstupné pole. Zadajte cestu k priečinku, do ktorého chcete uložiť všetky dokumenty. A nezabudnite na koniec cesty pridajte „\“ ak ho iba skopírujete z textového poľa priečinka. Potom kliknite na „OK“.
Ako sa rýchlo zachrániť pred katastrofou údajov
K katastrofe údajov, o ktorej hovoríme v programe Word, môže dôjsť vždy, keď prestane nenormálne fungovať. Niekedy máte šťastie a všetky informácie sú neporušené. A inokedy sa stanete obeťou katastrofy. Najrýchlejším spôsobom, ako získať čo najviac údajov, je preto získanie nástroja na opraviť docx.
Úvod autora:
Vera Chen je expertka na obnovu dát v DataNumen, Inc., ktorá je svetovým lídrom v oblasti technológií obnovy dát, vrátane opraviť xlsx a pdf oprava softvérových produktov. Pre viac informácií navštívte www.datanumen. S



