Set password file PDF hàng loạt bằng VBA

Liên hệ QC

bossh

Thành viên mới
Tham gia
4/11/07
Bài viết
31
Được thích
13
Chào các bạn,

Hiện tại mình đang nghiên cứu việc set password file PDF hàng loạt bằng VBA, mục đích làm phiếu lương. Mình có tham khảo một số cách trên google nhưng vẫn chưa tìm được code phù hợp. Không biết bạn nào đã nghiên cứu vấn đề này thì chia sẽ giúp mình nhá. Cám ơn nhiều.

Ref: https://answers.microsoft.com/en-us...a/e3b0be70-d7a5-421b-888f-980d35386c40?auth=1
Bài đã được tự động gộp:

Ah quên nói về yêu cầu của mình. Nó khá đơn giản:
1. Các file PDF được chứa trong 1 folder chỉ định
2. Code có nhiệm vụ truy xuất lần lượt các file PDF để setpassword theo thông tin tại một trường thông tin được ghi tại một Sheet.
Chỉ vậy thôi :)
 
Những email chỉ gửi mỗi chuỗi mã gì gì đó, email không có đầu có cuối, không tiêu đề... đều vào mục Spam.
Những email như thế mình đọc không hiểu gì cả. Và tất nhiên những email như thế mình không trả lời.

(Theo mình cần viết email rõ ràng hơn, không cần chào hỏi thì cũng cần cho biết tên ứng dụng cần đăng ký KEY).

1652337671237.png
 
Upvote 0
Bạn có vài lựa chọn.
Hoặc bạn tự học viết code trong các ngôn ngữ khác. Hoặc bạn dùng code của người khác viết. Tất nhiên bạn phải đính kèm thư viện, tập tin EXE của người ta vì code không tự nhiên làm việc, nó phải chạy trên một nền tảng nào đó. Tất nhiên bạn phải phụ thuộc vào người ta. Có thể phải trả phí, phải đăng ký. Nếu miễn phí và không phải đăng ký thì ít ra là phải tin tưởng là code của người ta không làm gì "bí mật" sau lưng ta.
Có một cách không phải cài gì, chỉ cần thay đổi yêu cầu. Thực ra bạn chỉ cần gửi PDF cho người ta và sao cho chỉ người ta mở được. Vậy thì đâu nhất thiết PDF phải có mật khẩu? Có thể nén PDF với mật khẩu thì cũng chỉ người nhận mới mở được vì chỉ họ mới biết mật khẩu. Nói là không phải cài gì cũng không đúng, nhưng vd. 7-zip thì dù bạn chưa làm gì với PDF thì bạn đã cài 7-zip từ đời nào rồi, nên bây giờ không phải cài gì thêm. Và cả thế giới dùng 7-zip nên tôi tin tưởng nó hơn là sản phẩm của ông A nào đó.

Nếu bạn vẫn muốn tạo PDF với mật khẩu thì bạn hãy dừng ở đây.

Nếu bạn muốn chạy code để tạo hàng loạt ZIP với mật khẩu từ PDF thì:

1. Nếu chưa cài thì tải 7-zip về và cài đặt.

2. code như sau, chạy sub test
Mã:
Sub PasswordToPdf(ByVal pdfFullName As String, ByVal strPassword As String)
Const str7ZipPath = "C:\Program Files\7-Zip\7z.exe"
Dim strDestFileName As String, strCmd As String
    strDestFileName = Replace(pdfFullName, ".pdf", ".zip")
    strCmd = str7ZipPath & " -p" & strPassword & " a -tzip """ & strDestFileName & """ """ & pdfFullName & """"  
    Shell strCmd
End Sub

Sub test()
    PasswordToPdf ThisWorkbook.Path & "\hichic.pdf", "ngaymaiemdi"
End Sub

Ở máy tôi sau khi cài thì đường dẫn là "C:\Program Files\7-Zip\7z.exe". Nếu cần thì sửa lại ở hằng số str7ZipPath. Nếu có nhiều tập tin PDF với nhiều mật khẩu thì trong sub test gọi code chính trong vòng lặp.
Anh có thể hướng dẫn chổ code vòng lặp trong trường hợp có nhiều file và mỗi file có 1 mật khẩu không ạ.
Em gà mờ VBA nên không biết làm sao để code chổ này, cảm ơn anh rất nhiều.
 
Upvote 0
Mình cũng có from phiếu lương hết rồi. Giờ chỉ cần code xuất từ excel ra file PDF có mật khẩu riêng của từng người. Mội người giúp em với
 
Upvote 0
Mình không rành mấy vụ code này nên không biết làm ý
Bài đã được tự động gộp:

Mình không rành mấy vụ code này nên không biết làm ý
Bạn hỗ trợ mình qua UltraViewer nha!
 
Lần chỉnh sửa cuối:
Upvote 0
Web KT

Bài viết mới nhất

Back
Top Bottom