Chia file Word ra làm nhiều file Word khác nhỏ hơn bằng cách dùng Macro

Vấn đề: Tôi có 1 file Word, file Word này khoảng 100 trang (hay hơn nữa), bây giờ tôi muốn chia file Word này ra làm nhiều file nhỏ khác nhau, ví dụ như thành 50 file Word, mỗi file có 2 trang, hay 1 số trang nào đó tôi cần thì phải làm thế nào?

Giải pháp: Có rất nhiều giải pháp cho vấn đề này, bạn có thể copy nội dung ra từng file và save lại với tên bạn yêu cầu. Tuy nhiên, nếu tài liệu càng dài thì công việc khá là nhàm chán, xin giới thiệu với các bạn 1 giải pháp – tôi đang sử dụng giải pháp này – cho công việc của mình. Hy vọng sẽ giúp ích cho bạn nào cũng đang tìm kiếm 1 cách làm nào đó để xử lý công việc giống như tôi. Chúng ta bắt đầu nhé.

Điều kiện cần:

1. Microsoft Office 2003 –> 2010.

2. file tài liệu có nhiều trang cần chia.

3. Đoạn mã để thực hiện tác vụ chia file cho bạn.

Thực tế:

Tôi sử dụng Word 2010 (Trial) – Bạn lưu ý, tôi đã gặp một số bạn sử dụng Office 2010 crack và gặp một số lỗi không hay trong Excel, còn có lỗi ở ứng dụng khác hay không thì tôi chưa có điều kiện thử nghiệm. Nên nếu thực sự bạn cần 1 bộ Office lành lặn, phục vụ tốt cho nhu cầu của bạn, thì bạn nên dùng bản Trial bạn nhé – sau đó, khi hết hạn 60 ngày, bạn dùng công cụ ở bài viết này để kéo dài thời gian sử dụng, sẽ tốt hơn là mình crack bộ Office này bạn nhé!

Tóm tắt thực hiện:

Trước tiên chúng ta sẽ mở file Word lên, sau đó dán đoạn code (mã) vào trình xử lý VBA của Word, lưu lại, đánh dấu chỗ cần chia file, chạy nó, và xem các file đã được chia ra.

Tìm hiểu sơ về đoạn mã sẽ dán vào VBA của Word:

Bạn không cần phải là 1 chuyên viên lập trình để hiểu được chuyện này, ta chỉ quan tâm cái chúng ta cần, thế thôi. Đây là đoạn mã

———————————————————————————————————————————————————————

Option Explicit
Sub SplitNotes(delim As String, strFilename As String)
    Dim doc As Document
    Dim arrNotes
    Dim I As Long
    Dim X As Long
    Dim Response As Integer
    arrNotes = Split(ActiveDocument.Range, delim)
    Response = MsgBox("This will split the document into " & UBound(arrNotes) + 1 & " sections. Do you wish to proceed?", 4)
    If Response = 7 Then Exit Sub
    For I = LBound(arrNotes) To UBound(arrNotes)
        If Trim(arrNotes(I)) <> "" Then
            X = X + 1
            Set doc = Documents.Add
            doc.Range = arrNotes(I)
            doc.SaveAs ThisDocument.Path & "\" & strFilename & Format(X, "000")
            doc.Close True
        End If
    Next I
End Sub
Sub test()
     '      delimiter & filename
    SplitNotes "///", "Notes "
End Sub

———————————————————————————————————————————————————————

Trong đoạn mã trên, bạn lưu ý dòng này

    SplitNotes “///”, “Notes “

Dấu /// chính là cái để làm dấu Word sẽ chia file Word của bạn ra, khi chương trình chạy, bạn để dấu này chỗ nào, thì tới dấu đó, Word sẽ chia file của bạn chỗ đó (và tất nhiên xóa dấu này đi).

Chữ Notes chính là tên file Word mới sẽ được tạo ra. Hẳn nhiên ở đây, các file sẽ có tên và ở cuối file sẽ có số thứ tự gồm 3 chữ số.

Thực hiện:

Giờ chúng ta thực hiện luôn cách làm này nhé, như những bài hướng dẫn trước trên Blog này, đa số bài viết sẽ dài, nhưng bạn cố gắng xem cho kỹ, mục đích là bạn hiểu, khi hiểu rồi thì bạn làm thực tế rất nhanh, chứ không dài như vầy nữa đâu :)

Tôi có 1 file Word và đây là nơi chứa nó

image

Bước 1. Mở file Word lên

image

File này có 164 trang, và tôi muốn nó chia 10 trang vào 1 file, vậy tôi sẽ có tổng cộng là 17 file

Bước 2. Dán đoạn code trên vào trình xử lý VBA của Word.

Đầu tiên, đang ở file Word, bạn bấm tổ hợp phím Alt + F11 để mở trình xử lý VBA của Word lên

image

Tiếp theo, ở cửa sổ bên trái, bạn click phải chuột vào chữ ThisDocument và chọn View Code.

image

Khung bên phải lúc này hiện ra trắng trơn, bạn copy đoạn code ở trên và dán vào đây, như thế này

image

Bây giờ, tôi muốn đổi tên các tài liệu như tên tài liệu gốc (nhưng sẽ có thêm đánh số tự động phía sau) thì tôi đổi chữ Notes (như đã nói ở trên) thành tên tài liệu gốc như hình

image

Save lại tài liệu (bằng cách bấm Ctrl + S). Tắt cửa sổ này đi.

Bước 3. Đánh dấu chỗ cần chia file

Bây giờ bạn đã quay trở lại màn hình Word, ta tiến hành đánh dấu từng 10 trang một, bấm Ctrl + G để đến trang 10, trang 20, trang 30… và gõ vào /// để đánh dấu – bạn lưu ý, bạn hoàn toàn có thể thay đổi cách đánh dấu này – nhưng khuyên dùng dấu này, kẻo không lại bị trùng với các ký hiệu khác trong tài liệu.

image

image

Cứ làm như vậy cho tới hết tài liệu luôn bạn nhé.

Bước 4. Sau khi đánh dấu xong. Bạn bấm tổ hợp phím Alt + F8 – một hộp thoại hiện lên

image

Bạn chọn vào chữ test (nếu có thêm chữ khác thì mặc định chữ này không được chọn đâu, bạn phải click vào chọn) trong khung bên trái. Sau đó click nút Run. Một bảng thông báo hiện lên hỏi bạn có thực sự muốn chia file Word ra làm 17 file không? Bạn nhấn Yes để đồng ý.

image

Khi bạn nhấn Yes xong thì màn hình của bạn sẽ giựt giựt do Word đang làm việc, đừng lo lắng! Và khi Word dừng lại, bạn vào lại thư mục chứa file của bạn để kiểm tra các file mới vừa được tạo ra bạn nhé :)

image

Hãy xem lại thành quả của mình xem nào! Chúc bạn thành công.

(Theo VBAExpress.com –  Nguyễn Triết Học)
sign