Μετάβαση στο κύριο περιεχόμενο

Πώς να μετατρέψετε πολλά έγγραφα Word σε αρχεία pdf;

Είναι εύκολο για εσάς να μετατρέψετε ένα έγγραφο του Word σε αρχείο PDF με τη λειτουργία Αποθήκευση ως στο Word. Αλλά αν θέλετε να μετατρέψετε όλα τα έγγραφα του Word σε ένα φάκελο για να διαχωρίσετε ταυτόχρονα αρχεία PDF, πώς μπορείτε να το επιτύχετε; Αυτό το άρθρο θα σας δείξει έναν κωδικό VBA για μετατροπή κατά παρτίδες πολλαπλών εγγράφων Word σε αρχεία pdf στο Word.

Μαζική μετατροπή πολλών εγγράφων Word σε αρχεία pdf με VBA
Μαζική μετατροπή πολλών εγγράφων Word σε αρχεία pdf με το Kutools για Word


Μαζική μετατροπή πολλών εγγράφων Word σε αρχεία pdf με VBA

Ο παρακάτω κώδικας VBA σάς βοηθά να μετατρέψετε γρήγορα όλα τα έγγραφα του Word σε ένα φάκελο σε αρχεία pdf ταυτόχρονα. Κάντε τα εξής:

1. Στο Word, πατήστε το άλλος + F11 για να ανοίξετε το Microsoft Visual Basic για εφαρμογές παράθυρο.

2. Στο Microsoft Visual Basic για εφαρμογές παράθυρο, κάντε κλικ στην επιλογή Κύριο θέμα > Μονάδα μέτρησηςκαι, στη συνέχεια, αντιγράψτε τον παρακάτω κώδικα VBA στο παράθυρο Module.

Κωδικός VBA: Μαζική μετατροπή πολλών εγγράφων του Word σε αρχεία pdf στο Word

Sub ConvertWordsToPdfs()
'Updated by Extendoffice 20181123
    Dim xIndex As String
    Dim xDlg As FileDialog
    Dim xFolder As Variant
    Dim xNewName As String
    Dim xFileName As String
    Set xDlg = Application.FileDialog(msoFileDialogFolderPicker)
    If xDlg.Show <> -1 Then Exit Sub
    xFolder = xDlg.SelectedItems(1) + "\"
    xFileName = Dir(xFolder & "*.*", vbNormal)
    While xFileName <> ""
        If ((Right(xFileName, 4)) <> ".doc" Or Right(xFileName, 4) <> ".docx") Then
            xIndex = InStr(xFileName, ".") + 1
            xNewName = Replace(xFileName, Mid(xFileName, xIndex), "pdf")
            Documents.Open FileName:=xFolder & xFileName, _
                ConfirmConversions:=False, ReadOnly:=False, AddToRecentFiles:=False, _
                PasswordDocument:="", PasswordTemplate:="", Revert:=False, _
                WritePasswordDocument:="", WritePasswordTemplate:="", Format:= _
                wdOpenFormatAuto, XMLTransform:=""
            ActiveDocument.ExportAsFixedFormat OutputFileName:=xFolder & xNewName, _
                ExportFormat:=wdExportFormatPDF, OpenAfterExport:=False, OptimizeFor:= _
                wdExportOptimizeForPrint, Range:=wdExportAllDocument, From:=1, To:=1, _
                Item:=wdExportDocumentContent, IncludeDocProps:=True, KeepIRM:=True, _
                CreateBookmarks:=wdExportCreateNoBookmarks, DocStructureTags:=True, _
                BitmapMissingFonts:=True, UseISO19005_1:=False
            ActiveDocument.Close
        End If
        xFileName = Dir()
    Wend
End Sub

3. Πάτα το F5 κλειδί για την εκτέλεση του κώδικα.

4. Εμφανίζεται ένα παράθυρο διαλόγου Αναζήτηση, επιλέξτε το φάκελο που περιέχει έγγραφα του Word που θα μετατρέψετε σε αρχεία pdf και κάντε κλικ στο OK κουμπί.

Στη συνέχεια, όλα τα έγγραφα του Word σε επιλεγμένο φάκελο μετατρέπονται σε ξεχωριστά αρχεία pdf ταυτόχρονα. Δείτε το στιγμιότυπο οθόνης:


Μαζική μετατροπή πολλών εγγράφων Word σε αρχεία pdf με το Kutools για Word

Εάν ο κώδικας VBA είναι δύσκολο να χειριστεί, μπορείτε να δοκιμάσετε το Μετατροπή εγγράφων χρησιμότητα του Kutools για το Word για να λυθει το προβλημα.

Kutools για το Word : Με περισσότερα από 100 εύχρηστα πρόσθετα Word, δωρεάν δοκιμή χωρίς περιορισμό 60 ημέρες.

1. κλικ Kutools Plus > Έγγραφο / Docx. Δείτε το στιγμιότυπο οθόνης:

2. Στο Μετατροπέας μορφής εγγράφου παράθυρο, πρέπει να κάνετε τα εξής:

2.1) Επιλέξτε το φάκελο που περιέχει έγγραφα που θα μετατρέψετε σε pdf στο Φάκελος αρχείου προέλευσης Ενότητα;
2.2 Επιλέξτε Μετατροπή docx σε pdf από το Μετατροπή μορφής αναπτυσσόμενη λίστα;
2.3) Από προεπιλογή, το Διαδρομή προορισμού ίδια με την πηγή είναι επιλεγμένο το πλαίσιο. Εάν θέλετε να τοποθετήσετε όλα τα αρχεία pdf που έχουν μετατραπεί στον ίδιο φάκελο, διατηρήστε αυτήν την επιλογή.
Εάν θέλετε να διαχωρίσετε τα αρχεία pdf και τα έγγραφα προέλευσης, πρέπει να καταργήσετε την επιλογή του Διαδρομή προορισμού ίδια με την πηγή πλαίσιο και επιλέξτε έναν νέο φάκελο για να αποθηκεύσετε τα αρχεία pdf στο Αποθήκευση σε κουτί;
2.4) Κάντε κλικ στο Αρχική κουμπί. Δείτε το στιγμιότυπο οθόνης:

3. Στη συνέχεια, εμφανίζεται ένα παράθυρο διαλόγου για να σας πει πόσα έγγραφα έχουν μετατραπεί επιτυχώς, κάντε κλικ στο OK κουμπί και κλείστε το Μετατροπέας μορφής εγγράφου παράθυρο.

Τώρα όλα τα έγγραφα μορφής .docx μετατρέπονται σε αρχεία pdf.

Εάν θέλετε να δοκιμάσετε δωρεάν αυτό το βοηθητικό πρόγραμμα, μεταβείτε στη διεύθυνση δωρεάν λήψη του λογισμικού πρώτα και μετά πηγαίνετε για να εφαρμόσετε τη λειτουργία σύμφωνα με τα παραπάνω βήματα.

Τα καλύτερα εργαλεία παραγωγικότητας γραφείου

Kutools για το Word - Βελτιώστε την εμπειρία σας στο Word με το Over 100 Αξιοσημείωτα χαρακτηριστικά!

🤖 Kutools AI Assistant: Μεταμορφώστε το γραπτό σας με AI - Δημιουργία Περιεχομένου  /  Ξαναγράψτε το κείμενο  /  Συνοψίστε τα έγγραφα  /  Ζητήστε πληροφορίες με βάση το Έγγραφο, όλα μέσα στο Word

📘 Κυριαρχία εγγράφων: Διαίρεση σελίδων  /  Συγχώνευση εγγράφων  /  Εξαγωγή επιλογής σε διάφορες μορφές (PDF/TXT/DOC/HTML...)  /  Μαζική μετατροπή σε PDF  /  Εξαγωγή σελίδων ως εικόνες  /  Εκτύπωση πολλών αρχείων ταυτόχρονα...

Επεξεργασία Περιεχομένων: Μαζική εύρεση και αντικατάσταση σε πολλά αρχεία  /  Αλλαγή μεγέθους όλων των εικόνων  /  Μεταφορά σειρών και στηλών πίνακα  /  Μετατροπή πίνακα σε κείμενο...

🧹 Καθαρισμός χωρίς κόπο: Σαρώστε μακριά Επιπλέον χώροι  /  Διακοπές ενότητας  /  Όλες οι κεφαλίδες  /  Κουτιά κειμένου  /  Υπερ-συνδέσεις  / Για περισσότερα εργαλεία αφαίρεσης, κατευθυνθείτε στο δικό μας Κατάργηση ομάδας...

Δημιουργικά ένθετα: Εισάγετε Χιλιάδες Διαχωριστές  /  Πλαίσια ελέγχου  /  Κουμπιά ραδιοφώνου  /  QR Code  /  barcode  /  Διαγώνιος γραμμικός πίνακας  /  Λεζάντα εξίσωσης  /  Λεζάντα εικόνας  /  Λεζάντα πίνακα  /  Πολλαπλές εικόνες  / Ανακαλύψτε περισσότερα στο Εισαγωγή ομάδας...

🔍 Επιλογές Ακρίβειας: Επισήμανση συγκεκριμένες σελίδες  /  πίνακες  /  σχήματα  /  επικεφαλίδες παραγράφους  / Βελτιώστε την πλοήγηση με περισσότερο Επιλέξτε χαρακτηριστικά...

Βελτιώσεις αστεριών: Πλοηγηθείτε γρήγορα σε οποιαδήποτε τοποθεσία  /  αυτόματη εισαγωγή επαναλαμβανόμενου κειμένου  /  εναλλαγή μεταξύ των παραθύρων εγγράφων  /  11 Εργαλεία μετατροπής...

???? Θέλετε να δοκιμάσετε αυτές τις δυνατότητες; Το Kutools για το Word προσφέρει α Δωρεάν δοκιμαστική περίοδο 60, χωρίς περιορισμούς! 🚀
 
Comments (36)
Rated 5 out of 5 · 3 ratings
This comment was minimized by the moderator on the site
Just found this, very helpful. Also thanks for the suggested mods above. I am struggling with the following:

If ((Right(xFileName, 4)) <> ".doc" Or Right(xFileName, 4) <> ".docx") Then


It seems to ask to do the conversion if it's not a doc or docx? (Leaving aside that, I think, for docx it should be last 5 chars, not 4?) Anyway,
This comment was minimized by the moderator on the site
the code stopped. I clicked debug. code below was highlighed yellow

Please, any assistance? thank you

Documents.Open Filename:=xFolder & xFileName, _
ConfirmConversions:=False, ReadOnly:=False, AddToRecentFiles:=False, _
PasswordDocument:="", PasswordTemplate:="", Revert:=False, _
WritePasswordDocument:="", WritePasswordTemplate:="", Format:= _
wdOpenFormatAuto, XMLTransform:=""
This comment was minimized by the moderator on the site
Thank you for this. It has just saved me so much time and provided education. I will peruse your site for more top tips.
Thank you again. Brilliant quick fix. One does have to ask, why do MS make such things so impossible to find in their products.
Rated 5 out of 5
This comment was minimized by the moderator on the site
Здравствуйте! Огромное спасибо за модуль! Но есть проблема, у меня куча папок и в каждой папке больше двухсот файлов с разными именами.. Можно ли сделать так чтобы ваш модуль сохранял файлы в PDF не под номерами 1,2,3... и т.д, а под своими собственными именами файлов!? Помогите пожалуйста, и я буду молиться за вас ВЕЧНО!!))
This comment was minimized by the moderator on the site
Hi Егор,
I don't quite understand your question. After converting the file using the VBA code, the name of the PDF file is the same as the name of the Word file.
This comment was minimized by the moderator on the site
Здравствуйте! Большое спасибо вам, за то что вы есть! Спасибо за код он почти идеальный, но ОЧЕНЬ прошу Вас помочь с одним нюансом... Мне Очень важно чтоб ваш макрос сохранял в PDF не под номерами 1.2.3 и т.д, а брал название вордовского файла и сохранял под ним. У меня сто папок и в каждой по 251 файл со своим собственным названием... Мне это Очень нужно, пожалуйста помогите!?????.....
This comment was minimized by the moderator on the site
The VBA macro worked like a charm! :D
Rated 5 out of 5
This comment was minimized by the moderator on the site
Hi Myles,
Thank you for your feedback.
This comment was minimized by the moderator on the site
Hello is there a way to select a different output folder and not the original folder?

thank you
This comment was minimized by the moderator on the site
Hi Vincent,
Please try the following VBA code. After running the code, an Open window pops up, please select a folder containing the douments you want to convert, in the second popping up Save PDF files in window, select a folder to save the PDF files.

Sub ConvertWordsToPdfs()
'Updated by Extendoffice 20220805
  Dim xIndex As String
  Dim xDlg As FileDialog, xSaveDlg As FileDialog
  Dim xFolder As Variant, xSaveFolder As Variant
  Dim xNewName As String
  Dim xFileName As String
  On Error Resume Next
  Set xDlg = Application.FileDialog(msoFileDialogFolderPicker)
  xDlg.Title = "Open"
  xDlg.ButtonName = "Open"
  If xDlg.Show <> -1 Then Exit Sub
  xFolder = xDlg.SelectedItems(1) + "\"
  xFileName = Dir(xFolder & "*.*", vbNormal)
  Set xSaveDlg = Application.FileDialog(msoFileDialogFolderPicker)
  xSaveDlg.Title = "Save PDF files in"
  xSaveDlg.ButtonName = "Save"
  If xSaveDlg.Show <> -1 Then Exit Sub
  xSaveFolder = xSaveDlg.SelectedItems(1) + "\"
  Application.DisplayAlerts = wdAlertsNone
  While xFileName <> ""
      If ((Right(xFileName, 4)) <> ".doc" Or Right(xFileName, 4) <> ".docx") Then
          xIndex = InStr(xFileName, ".") + 1
          xNewName = Replace(xFileName, Mid(xFileName, xIndex), "pdf")
          Documents.Open FileName:=xFolder & xFileName, _
              ConfirmConversions:=False, ReadOnly:=False, AddToRecentFiles:=False, _
              PasswordDocument:="", PasswordTemplate:="", Revert:=False, _
              WritePasswordDocument:="", WritePasswordTemplate:="", Format:= _
              wdOpenFormatAuto, XMLTransform:=""
          ActiveDocument.ExportAsFixedFormat OutputFileName:=xSaveFolder & xNewName, _
              ExportFormat:=wdExportFormatPDF, OpenAfterExport:=False, OptimizeFor:= _
              wdExportOptimizeForPrint, Range:=wdExportAllDocument, From:=1, To:=1, _
              Item:=wdExportDocumentContent, IncludeDocProps:=True, KeepIRM:=True, _
              CreateBookmarks:=wdExportCreateNoBookmarks, DocStructureTags:=True, _
              BitmapMissingFonts:=True, UseISO19005_1:=False
          ActiveDocument.Close wdSaveChanges
      End If
      xFileName = Dir()
  Wend
  Application.DisplayAlerts = wdAlertsAll
  Set xDlg = Nothing
  Set xSaveDlg = Nothing
End Sub
This comment was minimized by the moderator on the site
The code does not convert my Word files
This comment was minimized by the moderator on the site
This code is amazing and fast but if there is a link in the Doc file it will open a window stating there may be information linked to another file apply these changes? and then another asking to save as. Is there a way to add to the code to automatically do these steps for me? Out of ~800 there are ~40 and I must be present and do this every time.
thank you
Rated 5 out of 5
This comment was minimized by the moderator on the site
Hi Vincent,
The following VBA code can do you a favor. Please give it a try. Thank you for your feedback.

Sub ConvertWordsToPdfs()
'Updated by Extendoffice 20220805
  Dim xIndex As String
  Dim xDlg As FileDialog
  Dim xFolder As Variant
  Dim xNewName As String
  Dim xFileName As String
  On Error Resume Next
  Set xDlg = Application.FileDialog(msoFileDialogFolderPicker)
  If xDlg.Show <> -1 Then Exit Sub
  xFolder = xDlg.SelectedItems(1) + "\"
  xFileName = Dir(xFolder & "*.*", vbNormal)
  Application.DisplayAlerts = wdAlertsNone
  While xFileName <> ""
      If ((Right(xFileName, 4)) <> ".doc" Or Right(xFileName, 4) <> ".docx") Then
          xIndex = InStr(xFileName, ".") + 1
          xNewName = Replace(xFileName, Mid(xFileName, xIndex), "pdf")
          Documents.Open FileName:=xFolder & xFileName, _
              ConfirmConversions:=False, ReadOnly:=False, AddToRecentFiles:=False, _
              PasswordDocument:="", PasswordTemplate:="", Revert:=False, _
              WritePasswordDocument:="", WritePasswordTemplate:="", Format:= _
              wdOpenFormatAuto, XMLTransform:=""
          ActiveDocument.ExportAsFixedFormat OutputFileName:=xFolder & xNewName, _
              ExportFormat:=wdExportFormatPDF, OpenAfterExport:=False, OptimizeFor:= _
              wdExportOptimizeForPrint, Range:=wdExportAllDocument, From:=1, To:=1, _
              Item:=wdExportDocumentContent, IncludeDocProps:=True, KeepIRM:=True, _
              CreateBookmarks:=wdExportCreateNoBookmarks, DocStructureTags:=True, _
              BitmapMissingFonts:=True, UseISO19005_1:=False
          ActiveDocument.Close wdSaveChanges
      End If
      xFileName = Dir()
  Wend
  Application.DisplayAlerts = wdAlertsAll
End Sub
This comment was minimized by the moderator on the site
Вот тут во втором условии надо 4 заменить на 5:
If ((Right(xFileName, 4)) <> ".doc" Or Right(xFileName, 5) <> ".docx") Then
Для исключения проблемы наличия точек можно сделать так:
xIndex = InStr(xFileName, ".doc") + 1
Ну и про советы других товарищей не забыть ;)

This comment was minimized by the moderator on the site
Thank you so much! Saved me so much time!
There are no comments posted here yet
Load More
Please leave your comments in English
Posting as Guest
×
Rate this post:
0   Characters
Suggested Locations