Hướng dẫn cách in danh sách Bookmarks trong tài Liệu Word

Nội dung được viết bởi Trần Văn Huệ

Trích xuất tất cả các Bookmarks và in bằng VBA

Trước khi in danh sách Bookmarks trong tài Liệu Word, việc đầu tiên bạn cần làm là trích xuất tất cả các Bookmarks trong tài liệu. Bạn có thể thực hiện thông qua mã VBA dưới đây. Mã này sẽ giúp bạn liệt kê tất cả các Bookmarks từ tài liệu hiện tại sang tài liệu mới và bạn có thể in thủ công các Bookmarks đã trích xuất khi cần. Cách thực hiện như sa:

Bước 1: Mở tài liệu bạn sẽ in danh sách Bookmarks.

Bước 2: Nhấn tổ hợp phím Alt + F11 để mở cửa sổ Microsoft Visual Basic for Applications.

Hướng dẫn cách in danh sách Bookmarks trong tài Liệu Word

Bước 3: Trong cửa sổ Microsoft Visual Basic for Applications hiển thị, truy cập vào menu Insert > Module, rồi sao chép mã VBA bên dưới vào cửa sổ Module.

Hướng dẫn cách in danh sách Bookmarks trong tài Liệu Word


 

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, "Học Word tại Gitiho"
        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

Bước 4: Điều hướng đến mục Run nằm ở thanh trên cùng và chọn Run Sub User Formhoặc nhấn F5 để chạy mã.

Sau đó, một tài liệu mới được tạo tự động với tất cả các Bookmarks của danh sách tài liệu được chỉ định bên trong.

Hướng dẫn cách in danh sách Bookmarks trong tài Liệu Word

Bước 5: Từ đây bạn có thể truy cập vào menu File > Print để in danh sách các Bookmarks đã trích xuất khi bạn cần.

In trực tiếp tất cả các Bookmarks với mã VBA

Nếu bạn muốn in trực tiếp tất cả các Bookmarks trong tài liệu hiện tại thay vì trích xuất danh sách lưu lại rồi sau đó mới in thì thực hiện như sau.

Bước 1: Mở tài liệu bạn sẽ in danh sách Bookmarks.

Bước 2: Nhấn tổ hợp phím Alt + F11 để mở cửa sổ Microsoft Visual Basic for Applications .

Bước 3: Trong cửa sổ Microsoft Visual Basic for Applications hiển thị, truy cập vào menu Insert > Module, rồi sao chép mã VBA bên dưới vào cửa sổ Module.

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, "Học Word tại Gitiho"
        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

Bước 4: Điều hướng đến mục Run nằm ở thanh trên cùng và chọn Run Sub User Formhoặc nhấn F5 để in trực tiếp các Bookmarks có trong tài liệu.

Trên đây Gitiho vừa hướng dẫn các bạn cách in danh sách Bookmarks trong tài Liệu Word với hai giải pháp khác nhau để lựa chọn. Nếu thấy bài viết hữu ích, hãy chia sẻ với bạn bè của mình nhé. Chúc các bạn thành công.

CÓ THỂ BẠN CŨNG QUAN TÂM

Hướng dẫn về cách sử dụng các phím tắt và chức năng của nó trong Word

Hướng dẫn cách chèn công thức tính tổng của một hàng hoặc một cột trong bảng ở Word

Hướng dẫn cách để loại bỏ Track Changes khỏi tài liệu Word
 

KHÓA HỌC WORD MIỄN PHÍ

Với hơn 7600 HỌC VIÊN đang theo học với đánh giá trung bình 4.78 SAO

/5 - ( bình chọn)

/5 - ( bình chọn)

0 thảo luận

@ 2020 - Bản quyền của Công ty cổ phần công nghệ giáo dục Gitiho Việt Nam
Giấy chứng nhận Đăng ký doanh nghiệp số: 0109077145, cấp bởi Sở kế hoạch và đầu tư TP. Hà Nội
Giấy phép mạng xã hội số: 588, cấp bởi Bộ thông tin và truyền thông