No artigo de hoje, gostaríamos de compartilhar com você as etapas para extrair em lote todos os marcadores de seu documento do Word para visualizá-los de uma só vez.
No Word, você pode gerar um índice ou um índice de figuras com a função interna. Mas você descobrirá que não há uma maneira usual de extrair todos os marcadores de um documento e organizá-los em um novo documento.
Como sempre, nossa missão é conduzi-lo através do mito e fornecer a você a maneira macro de exportar todos os favoritos, bem como seus textos, para um novo documento em branco.
Extrair em lote todos os marcadores de um único documento
- Para começar, abra o documento desejado e pressione “Alt + F11” para abrir o editor VBA.
- Em seguida, clique em “Normal” e depois em “Inserir”.
- E escolha “Módulo” para criar um novo no projeto “Normal”.
- Em seguida, clique duas vezes nele para exibir o espaço de edição.
- Cole a seguinte macro lá:
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
- Por último, mas não menos importante, clique em “Executar”.
Todos os marcadores do documento atual serão colocados em uma tabela em um novo documento salvo no mesmo diretório do arquivo original.
Você pode ver a tabela de 3 colunas no novo documento. E se você seguir o “Ctrl + Clique”, ele o levará ao marcador no documento original.
Extrair em lote marcadores de vários documentos
Siga as mesmas etapas acima para instalar e executar uma macro. Só que desta vez, você substitui os códigos pelos seguintes:
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
Depois de executar a macro, há uma caixa de entrada. Digite o caminho da pasta onde você armazena todos os documentos. E lembre-se de adicione “\” no final do caminho se você apenas copiá-lo da caixa de texto da pasta. Em seguida, clique em “OK”.
Como se salvar rapidamente de um desastre de dados
O desastre de dados do qual falamos no Word pode acontecer sempre que ele parar de funcionar de forma anormal. Às vezes, você tem sorte e tem todas as informações intactas. E outras vezes, você é vítima do desastre. Portanto, a maneira mais rápida de recuperar o máximo de dados possível é obter uma ferramenta para consertar docx.
Introdução do autor:
Vera Chen é especialista em recuperação de dados em DataNumen, Inc., líder mundial em tecnologias de recuperação de dados, incluindo consertar xlsx e pdf reparar produtos de software. Para mais informações visite www.datanumen.com



