Ứng dụng:
- Tự động hóa quy trình: Thay thế thao tác thủ công bằng xử lý hàng loạt; chuyển đổi hàng trăm tài liệu Word sang PDF chỉ với một thao tác kích hoạt Macro.
- Bảo mật dữ liệu tuyệt đối: Vận hành hoàn toàn trên môi trường ngoại tuyến (Local). Không thông qua dịch vụ trung gian, loại bỏ rủi ro rò rỉ dữ liệu nhạy cảm như hợp đồng, báo cáo tài chính.
- Chuẩn hóa lưu trữ: Tự động đặt tên file (Naming Convention) và phân loại vào thư mục mục tiêu dựa trên dữ liệu quản lý tại Excel.
- Tối ưu tài nguyên: Sử dụng trực tiếp bộ Microsoft Office có sẵn, không yêu cầu cài đặt phần mềm bên thứ ba hay thư viện phức tạp.
- Kiểm soát dữ liệu: Cho phép rà soát danh sách file, đường dẫn và tên gọi dự kiến ngay trên bảng tính trước khi thực thi để đảm bảo tính chính xác.
1. Sử dụng Power query hoặc VBA, tạo excel file như sau:
Trong đó:
Cột A: fullpath của file word
Cột B:folder path của chỗ muốn lưu file PDF
Cột C: PDF file name :lấy theo file word hoặc đặt lại theo ý muốn
Nếu phiên bản Excel không hỗ trợ power query, có thế lấy bằng script macro sau:
Sub GetFileDOCX()
Dim vFile As Variant
Dim i As Long
Dim fileName As String
vFile = Application.GetOpenFilename("Word Files (*.docx), *.docx", , , , True)
If IsArray(vFile) Then
For i = 2 To UBound(vFile) ‘insert từ dòng 2
Cells(i, 1) = vFile(i) ‘insert file path vào cột A
fileName = Mid(vFile(i), InStrRev(vFile(i), "\") + 1)
Cells(i, 3) = Left(fileName, InStrRev(fileName, ".") - 1) ‘insert file name vào cột C
Next i
End If
End Sub
Khi run code này, màn hình chọn file sẽ hiển thị.Sau khi chọn xong, toàn bộ đường dẫn và tên của các file sẽ tự động đổ vào cột A và C
Bước 2: Sau khi đã có thông tin file Word thì chạy sub này để convert các file word sang PDF
Sub convertPDF()
Dim lRow As Long
Dim wordApp As Object
Dim i As Long
'tim dong cuoi cung co data trong cot A
lRow = Cells(Rows.Count, 1).End(xlUp).Row
' tao object word
Set wordApp = CreateObject("Word.Application")
' lap qua tung dong
For i = 2 To lRow
' duong dan luu file
Dim pdfPath As String
pdfPath = Range("B" & i).Value & "\" & Range("C" & i).Value & ".PDF"
' OPEN WORD
wordApp.Documents.Open Range("A" & i).Value
wordApp.Visible = True
wordApp.Activate
' xuat file word sang PDF
wordApp.ActiveDocument.ExportAsFixedFormat OutputFileName:=pdfPath, _
ExportFormat:=17, _
OpenAfterExport:=False, _
OptimizeFor:=0, _
Range:=0, _
From:=1, To:=1, _
Item:=0, _
IncludeDocProps:=True, _
KeepIRM:=True, _
CreateBookmarks:=0, _
DocStructureTags:=True, _
BitmapMissingFonts:=True, _
UseISO19005_1:=False
' CLOSE WORD
wordApp.ActiveDocument.Close False
Next i
wordApp.Quit
Set wordApp = Nothing
End Sub
KẾT QUẢ:
Nhận xét
Đăng nhận xét