Note: The other languages of the website are Google-translated. Back to English
Accedi  \/ 
x
or
x
Registrati  \/ 
x

or

Come stampare un elenco di segnalibri nel documento di Word?

Hai mai provato a stampare un elenco di segnalibri in un documento di Word? Qui ti mostreremo i metodi per ottenerlo.

Estrai tutti i segnalibri e stampa con VBA

Stampa direttamente tutti i segnalibri con VBA


Estrai tutti i segnalibri e stampa con VBA

Il codice VBA sottostante ti aiuterà a elencare tutti i segnalibri dal documento corrente a uno nuovo e potrai stampare manualmente i segnalibri estratti di cui hai bisogno. Si prega di fare quanto segue.

1. Apri il documento su cui stamperai i segnalibri, premi il tasto altro + F11 chiavi per aprire il Microsoft Visual Basic, Applications Edition finestra.

2. Nel Microsoft Visual Basic, Applications Edition finestra, fare clic inserire > Modulo, quindi copia il codice sottostante nella finestra del modulo.

Codice VBA: estrai tutti i segnalibri in un nuovo documento

Sub ExtractBookmarksInADoc()
'Updated by Extendoffice 20181123
    Dim xRow As Long
    Dim xTable As Table
    Dim xDoc As Document
    Dim xBookMark As Bookmark
    Dim xBookMarkDoc As Document
    Dim xParagraph As Paragraph
    Set xDoc = ActiveDocument
    If xDoc.Bookmarks.Count = 0 Then
        MsgBox "There is no bookmark in this document", vbInformation, "KuTools for Word"
        Exit Sub
    End If
    Set xBookMarkDoc = Documents.Add
    xRow = 1
    Selection.TypeText "BookMarks in " & "'" & xDoc.Name & "'"
    Set xTable = Selection.Tables.Add(Selection.Range, 1, 3)
    xTable.Borders.Enable = True
    With xTable
        .Cell(xRow, 1).Range.Text = "Name"
        .Cell(xRow, 2).Range.Text = "Texts"
        .Cell(xRow, 3).Range.Text = "Page Number"
        For Each xBookMark In xDoc.Bookmarks
            xTable.Rows.Add
            xRow = xRow + 1
            .Cell(xRow, 1).Range.Text = xBookMark.Name
            .Cell(xRow, 2).Range.Text = xBookMark.Range.Text
            .Cell(xRow, 3).Range.Text = xBookMark.Range.Information(wdActiveEndAdjustedPageNumber)
            xDoc.Hyperlinks.Add Anchor:=.Cell(xRow, 3).Range, Address:=xDoc.Name, _
              SubAddress:=xBookMark.Name, TextToDisplay:=.Cell(xRow, 3).Range.Text
        Next
    End With
    xBookMarkDoc.SaveAs xDoc.Path & "\" & "Bookmarks in " & xDoc.Name
End Sub

3. premi il F5 chiave per eseguire il codice.

Quindi viene creato automaticamente un nuovo documento con tutti i segnalibri dell'elenco di documenti specificato all'interno.

4. Puoi cliccare Compila il > Stampa per stampare l'elenco dei segnalibri estratti di cui hai bisogno.


Stampa direttamente tutti i segnalibri con VBA

Se si desidera stampare direttamente tutti i segnalibri nel documento corrente, eseguire le seguenti operazioni.

1. Apri il documento su cui stamperai i segnalibri, premi il tasto altro + F11 chiavi per aprire il Microsoft Visual Basic, Applications Edition finestra.

2. Nel Microsoft Visual Basic, Applications Edition finestra, fare clic inserire > Modulo, quindi copia il codice sottostante nella finestra del modulo.

Codice VBA: stampa tutti i segnalibri in un documento

Sub ExtractBookmarksInADoc()
'Updated by Extendoffice 20181123
    Dim xRow As Long
    Dim xTable As Table
    Dim xDoc As Document
    Dim xBookMark As Bookmark
    Dim xBookMarkDoc As Document
    Dim xParagraph As Paragraph
    On Error Resume Next
    Set xDoc = ActiveDocument
    If xDoc.Bookmarks.Count = 0 Then
        MsgBox "There is no bookmark in this document", vbInformation, "KuTools for Word"
        Exit Sub
    End If
    Set xBookMarkDoc = Documents.Add
    xRow = 1
    Selection.TypeText "BookMarks in " & "'" & xDoc.Name & "'"
    Set xTable = Selection.Tables.Add(Selection.Range, 1, 3)
    xTable.Borders.Enable = True
    With xTable
        .Cell(xRow, 1).Range.Text = "Name"
        .Cell(xRow, 2).Range.Text = "Texts"
        .Cell(xRow, 3).Range.Text = "Page Number"
        For Each xBookMark In xDoc.Bookmarks
            xTable.Rows.Add
            xRow = xRow + 1
            .Cell(xRow, 1).Range.Text = xBookMark.Name
            .Cell(xRow, 2).Range.Text = xBookMark.Range.Text
            .Cell(xRow, 3).Range.Text = xBookMark.Range.Information(wdActiveEndAdjustedPageNumber)
            xDoc.Hyperlinks.Add Anchor:=.Cell(xRow, 3).Range, Address:=xDoc.Name, _
              SubAddress:=xBookMark.Name, TextToDisplay:=.Cell(xRow, 3).Range.Text
        Next
    End With
    xBookMarkDoc.SaveAs xDoc.Path & "\" & "Bookmarks in " & xDoc.Name
    xBookMarkDoc.PrintOut
    xBookMarkDoc.Close
    Kill xBookMarkDoc.Path
End Sub

3. premi il F5 tasto per stampare direttamente i segnalibri.


Strumenti di produttività Word consigliati

 

Kutools per Word: oltre 100 funzionalità avanzate per Word, risparmia il 50% del tempo

  • Le operazioni complicate e ripetute possono essere eseguite una sola volta in pochi secondi.
  • Inserisci più immagini tra le cartelle nel documento di Word contemporaneamente.
  • Unisci e combina più file di Word tra cartelle in uno con l'ordine desiderato.
  • Suddividi il documento corrente in documenti separati in base a titolo, interruzione di sezione o altri criteri.
  • Converti file tra Doc e Docx, Docx e PDF, raccolta di strumenti per conversioni e selezioni comuni e così via ...
Say something here...
symbols left.
You are guest
or post as a guest, but your post won't be published automatically.
Loading comment... The comment will be refreshed after 00:00.

Be the first to comment.