Como extrair em lote todos os marcadores do seu documento do Word

Compartilhe agora:

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 extrair em lote todos os marcadores do seu documento do Word

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

  1. Para começar, abra o documento desejado e pressione “Alt + F11” para abrir o editor VBA.
  2. Em seguida, clique em “Normal” e depois em “Inserir”.
  3. E escolha “Módulo” para criar um novo no projeto “Normal”.Clique em "Normal"->Clique em "Inserir"->Clique em "Módulo"
  4. Em seguida, clique duas vezes nele para exibir o espaço de edição.
  5. 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
  1. Por último, mas não menos importante, clique em “Executar”.Cole os códigos->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.Uma tabela de todos os marcadores e seus textos e números de página

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”.Digite o caminho da pasta->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

Compartilhe agora:

Comentários estão fechados.