Note: The other languages of the website are Google-translated. Back to English

كيفية تحويل عدة مستندات Word إلى ملفات PDF دفعة واحدة؟

من السهل عليك تحويل مستند Word إلى ملف PDF باستخدام وظيفة حفظ باسم في Word. ولكن إذا كنت تريد تحويل جميع مستندات Word الموجودة في مجلد إلى ملفات PDF منفصلة مرة واحدة ، فكيف يمكنك تحقيق ذلك؟ ستوضح لك هذه المقالة رمز VBA لتحويل مستندات Word المتعددة إلى ملفات pdf في Word دفعة واحدة.

قم بتحويل مستندات Word متعددة إلى ملفات pdf باستخدام VBA
قم بتحويل مستندات Word متعددة إلى ملفات pdf باستخدام Kutools for Word


قم بتحويل مستندات Word متعددة إلى ملفات pdf باستخدام VBA

يساعدك رمز VBA التالي على تحويل جميع مستندات Word الموجودة في مجلد بسرعة إلى ملفات pdf في وقت واحد. الرجاء القيام بما يلي.

1. في Word ، اضغط على قديم + F11 مفاتيح لفتح ميكروسوفت فيسوال باسيك للتطبيقات نافذة.

2. في ال ميكروسوفت فيسوال باسيك للتطبيقات الإطار، انقر فوق إدراج > وحدة، ثم انسخ رمز VBA أدناه في نافذة الوحدة النمطية.

كود فبا: دفعة تحويل مستندات وورد متعددة إلى ملفات pdf في وورد

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 for Word

إذا كان من الصعب التعامل مع التعليمات البرمجية لـ VBA ، فيمكنك تجربة تحويل المستندات فائدة كوتولس للكلمة لحل المشكلة.

كوتولس للكلمة : مع أكثر من 100 وظيفة إضافية مفيدة لـ Word ، تجربة مجانية بدون قيود خلال 60 يومًا.

1. انقر كوتولس بلس > Doc / Docx. انظر لقطة الشاشة:

2. في ال محول تنسيق المستند نافذة ، ما عليك القيام به على النحو التالي:

2.1) حدد المجلد الذي يحتوي على المستندات التي ستقوم بتحويلها إلى pdf في مجلد الملف المصدر قسم.
2.2 اختر تحويل docx إلى pdf من تنسيق تحويل قائمة منسدلة؛
2.3) بشكل افتراضي ، فإن ملف مسار الوجهة هو نفس المصدر المربع محددًا. إذا كنت تريد وضع جميع ملفات pdf المحولة في نفس المجلد ، فقط احتفظ بهذا الخيار محددًا ؛
إذا كنت تريد فصل ملفات pdf والمستندات المصدر ، فستحتاج إلى إلغاء تحديد ملف مسار الوجهة هو نفس المصدر ، وحدد مجلدًا جديدًا لحفظ ملفات pdf في ملف حفظ في صندوق؛
شنومكس) انقر فوق إبدأ زر. انظر لقطة الشاشة:

3. ثم ينبثق مربع حوار لإخبارك بعدد المستندات التي تم تحويلها بنجاح ، انقر فوق OK زر وأغلق ملف محول تنسيق المستند نافذة.

يتم الآن تحويل جميع المستندات بتنسيق docx. إلى ملفات pdf.

إذا كنت تريد الحصول على نسخة تجريبية مجانية من هذه الأداة المساعدة ، فيرجى الانتقال إلى تنزيل البرنامج مجانًا اولا ثم انتقل لتطبيق العملية حسب الخطوات اعلاه.


أدوات إنتاجية Word الموصى بها

 

Kutools For Word - أكثر من 100 ميزة متقدمة لـ Word ، وفر وقتك بنسبة 50 ٪

  • يمكن إجراء العمليات المعقدة والمتكررة لمرة واحدة في ثوانٍ.
  • أدخل صورًا متعددة عبر المجلدات في مستند Word مرة واحدة.
  • دمج ودمج ملفات Word المتعددة عبر المجلدات في ملف واحد بالترتيب الذي تريده.
  • قسّم المستند الحالي إلى مستندات منفصلة وفقًا للعنوان أو فاصل المقطع أو معايير أخرى.
  • قم بتحويل الملفات بين Doc و Docx و Docx و PDF ، ومجموعة من الأدوات للتحويلات والاختيارات الشائعة ، وما إلى ذلك ...
فرز التعليقات حسب
التعليقات (29)
تقييم شنومك من شنومكس · تصنيفات 2
تم تصغير هذا التعليق بواسطة المشرف على الموقع
مدونة جميلة جدا ، شكرا لتقاسم هذه المدونة. لديها معلومات مفيدة جدا للمستخدمين. أحببت هذه المعلومات كثيرا.
آمل أن تستمر في مشاركة هذا النوع من المعلومات ، قم بتحويل مستند Word إلى html
تم تصغير هذا التعليق بواسطة المشرف على الموقع
إذا حاولت VBA تحويل ملف يحتوي على وحدات ماكرو ، فإن وحدة الماكرو ستفتح الملف وتنتهي بدون إغلاق الملف.
تم تصغير هذا التعليق بواسطة المشرف على الموقع
هل هناك أي طريقة للحصول على اسم الملف مأخوذ من نص المستند؟
تم تصغير هذا التعليق بواسطة المشرف على الموقع
مرحبا هناك،


هل هناك طريقة سهلة لضبط رمز VBA بحيث يتم تحويل المستندات إلى ملفات .txt؟
تم تصغير هذا التعليق بواسطة المشرف على الموقع
مرحبا،

أحصل على خطأ وقت التشغيل "424":
كائن مطلوب

في الكود أدناه

Documents.Open Filename: = xFolder & xFileName ، _

ConfirmConversions: = False، ReadOnly: = False، AddToRecentFiles: = False، _

PasswordDocument: = "" ، قالب كلمة المرور: = "" ، الرجوع: = خطأ ، _

WritePasswordDocument: = ""، WritePasswordTemplate: = "" ، التنسيق: = _

wdOpenFormatAuto ، XMLTransform: = ""


wdOpenFormatAuto = 0 تقول.

الرجاء المساعدة.

شكر.
تم تصغير هذا التعليق بواسطة المشرف على الموقع
مرحبا،



أحصل على خطأ وقت التشغيل "424":

كائن مطلوب


الصورة المرفقة.




الرجاء المساعدة.



شكر.
تم تصغير هذا التعليق بواسطة المشرف على الموقع
مرحبًا ، شكرًا جزيلاً لك على هذا الرمز. إنه يعمل بشكل جيد ، ومع ذلك ، أحصل على مربع حوار بعد كل تحويل لحفظ كلمة doc ويجب علي حفظها. هل يمكنك تضمين رمز في الماكرو لإجراء ذلك الحفظ وإغلاق الملف بدلاً من الاضطرار إلى إغلاق كل ملف؟
تم تصغير هذا التعليق بواسطة المشرف على الموقع
إذا قمت بإضافة "ActiveDocument.Save" فوق "ActiveDocument.Close" مباشرة ، فسيتم حفظ المستند قبل إغلاق نفسه حتى لا تضطر دائمًا إلى الضغط على موجه الحفظ.
تم تصغير هذا التعليق بواسطة المشرف على الموقع
شكرا لكود vba , فهو يساعد كثيرا.
تم تصغير هذا التعليق بواسطة المشرف على الموقع
رمز VBA رائع. في صحتك ، أكلت
تم تصغير هذا التعليق بواسطة المشرف على الموقع
تغيير xIndex = InStr (xFileName، ".") + 1


تم تصغير هذا التعليق بواسطة المشرف على الموقع
إذا قمت بتغيير
xIndex = InStr (xFileName، ".") + 1 إلى
xIndex = InStrRev (xFileName، ".") + 1
سيبحث من نهاية السلسلة للعثور على النقطة الأولى. سيؤدي ذلك إلى تجنب مشاكل حيث يحتوي اسم الملف على نقاط.
تم تصغير هذا التعليق بواسطة المشرف على الموقع
Спасибо، очень дельный совет
تم تصغير هذا التعليق بواسطة المشرف على الموقع
إذا قمت بتغيير changexFileName = Dir (xFolder & "*. *"، vbNormal)
إلى xFileName = Dir (xFolder & "* .doc *"، vbNormal) لن يتعطل الماكرو عند وجود ملفات بخلاف ملفات Word في نفس المجلد.
تم تصغير هذا التعليق بواسطة المشرف على الموقع
هذا أنقذ يومي ، شكرا جزيلا!
أود فقط أن أوضح للأشخاص الذين يستخدمون هذا ، إذا كان يبدو أن Word قد تجمد ، فما عليك سوى الانتظار - إنه ينشئ ملفات .pdf. تم تجميد كلامي لكنني فتحت مجلد الملفات ، ورأيت أنه كان ينشئ بالفعل ملف pdf. لجميع الملفات.
تم تصغير هذا التعليق بواسطة المشرف على الموقع
VBA 很棒 !! 感謝 您 的 分享。
تم تصغير هذا التعليق بواسطة المشرف على الموقع
لدي مشكلة إذا كان المستند يحمل اسم 1.2.3.5.Blabla bla.doc فإنه يحفظ ويعيد كتابة ملفات PDF وفي الخلاصة لدي 0ne فقط؟ آخر مستند كيف يمكنني حل هذه المشكلة؟
تم تصغير هذا التعليق بواسطة المشرف على الموقع
إذا قمت بتغيير
xIndex = InStr (xFileName، ".") + 1
إلى
xIndex = InStrRev (xFileName، ".") + 1
سيبحث من نهاية السلسلة للعثور على النقطة الأولى. سيؤدي ذلك إلى تجنب مشاكل حيث يحتوي اسم الملف على نقاط.

إذا قمت بتغيير
xFileName = Dir (xFolder & "*. *"، vbNormal)
إلى
xFileName = Dir (xFolder & "* .doc *" ، vbNormal)
لن يتعطل الماكرو عند وجود ملفات بخلاف ملفات Word في نفس المجلد.
تم تصغير هذا التعليق بواسطة المشرف على الموقع
акрос работает некорректно ، если в именах файлов есть точки
تم تصغير هذا التعليق بواسطة المشرف على الموقع
إذا قمت بتغيير
xIndex = InStr (xFileName، ".") + 1
إلى
xIndex = InStrRev (xFileName، ".") + 1
سيبحث من نهاية السلسلة للعثور على النقطة الأولى. سيؤدي ذلك إلى تجنب مشاكل حيث يحتوي اسم الملف على نقاط.
تم تصغير هذا التعليق بواسطة المشرف على الموقع
إذا قمت بتغيير
xIndex = InStr (xFileName، ".") + 1
إلى
xIndex = InStrRev (xFileName، ".") + 1
سيبحث من نهاية السلسلة للعثور على النقطة الأولى. سيؤدي ذلك إلى تجنب مشاكل حيث يحتوي اسم الملف على نقاط.

إذا قمت بتغيير
xFileName = Dir (xFolder & "*. *"، vbNormal)
إلى
xFileName = Dir (xFolder & "* .doc *" ، vbNormal)
لن يتعطل الماكرو عند وجود ملفات بخلاف ملفات Word في نفس المجلد.
تم تصغير هذا التعليق بواسطة المشرف على الموقع
شكرا جزيلا لك! وفر لي الكثير من الوقت!
تم تصغير هذا التعليق بواسطة المشرف على الموقع
от тут во втором условии надо 4 заменить на 5:
If ((Right (xFileName، 4)) <> ".doc" Or Right (xFileName، 5) <> ".docx") ثم
ля исключения проблемы наличия точек сделать так:
xIndex = InStr (xFileName، ".doc") + 1
у и про советы других товарищей не забыть؛)

تم تصغير هذا التعليق بواسطة المشرف على الموقع
هذا الرمز مذهل وسريع ولكن إذا كان هناك رابط في ملف Doc ، فسيتم فتح نافذة تفيد باحتمال وجود معلومات مرتبطة بملف آخر ، هل تطبق هذه التغييرات؟ ثم طلب آخر للحفظ باسم. هل هناك طريقة للإضافة إلى الرمز لتنفيذ هذه الخطوات تلقائيًا بالنيابة عني؟ من بين 800 ، هناك حوالي 40 ويجب أن أكون حاضرًا وأفعل ذلك في كل مرة.
شكرا
تقييم شنومك من شنومكس
تم تصغير هذا التعليق بواسطة المشرف على الموقع
مرحباً فنسنت ،
يمكن أن يقدم لك رمز VBA التالي خدمة. يرجى محاولة إعطائها. شكرا لك على ملاحظاتك.

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
تم تصغير هذا التعليق بواسطة المشرف على الموقع
مرحبًا ، هل هناك طريقة لتحديد مجلد إخراج مختلف وليس المجلد الأصلي؟

شكرا
تم تصغير هذا التعليق بواسطة المشرف على الموقع
مرحباً فنسنت ،
يرجى تجربة كود فبا التالي. بعد تشغيل الكود ، يتم إنشاء ملف اذهب الى نافذة منبثقة ، يرجى تحديد مجلد يحتوي على douments التي تريد تحويلها ، في الظهور الثاني احفظ ملفات PDF بتنسيق نافذة ، حدد مجلدًا لحفظ ملفات PDF.

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
لا توجد تعليقات منشورة هنا حتى الآن
عرض المزيد
اترك تعليقاتك
النشر كضيف
×
قيم المنشور:
0   الشخصيات
المواقع المقترحة