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

複数のWord文書をPDFファイルにバッチ変換する方法は?

Wordの[名前を付けて保存]機能を使用すると、Word文書をPDFファイルに簡単に変換できます。 しかし、フォルダ内のすべてのWord文書を一度に別々のPDFファイルに変換したい場合、どうすればそれを実現できますか? この記事では、複数のWord文書をWordでPDFファイルにバッチ変換するVBAコードを紹介します。

複数のWord文書をVBAでPDFファイルにバッチ変換する
Kutools for Wordを使用して、複数のWordドキュメントをPDFファイルにバッチ変換します


複数のWord文書をVBAでPDFファイルにバッチ変換する

次のVBAコードは、フォルダ内のすべてのWord文書を一度にPDFファイルにすばやく変換するのに役立ちます。 次のようにしてください。

1. Wordで、を押します 他の + F11 キーを押して アプリケーション向け Microsoft Visual Basic 窓。

2。 の中に アプリケーション向け Microsoft Visual Basic ウィンドウ、クリック インセット > モジュール、次に以下のVBAコードをモジュールウィンドウにコピーします。

VBAコード:複数のWord文書をWordの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. [参照]ダイアログが表示されます。PDFファイルに変換するWordドキュメントが含まれているフォルダを選択し、[ OK ボタン。

次に、選択したフォルダ内のすべてのWord文書が一度に個別のPDFファイルに変換されます。 スクリーンショットを参照してください:


Kutools for Wordを使用して、複数のWordドキュメントをPDFファイルにバッチ変換します

VBAコードの処理が難しい場合は、 ドキュメントを変換する の有用性 Kutools for Word この問題を解決します。

Kutools for Word :100以上の便利なWordアドインで、 60日以内に制限なしで無料でお試しいただけます.

1。 クリック クツールズプラス > Doc / Docx。 スクリーンショットを参照してください:

2。 の中に ドキュメントフォーマットコンバーター ウィンドウでは、次のようにする必要があります。

2.1)PDFに変換するドキュメントが含まれているフォルダを選択します ソースファイルフォルダ セクション;
2.2選択 docxをpdfに変換する から フォーマット変換 ドロップダウンリスト;
2.3)デフォルトでは、 ソースと同じ宛先パス ボックスがチェックされています。 変換されたすべてのPDFファイルを同じフォルダーに配置する場合は、このオプションを選択したままにします。
PDFファイルとソースドキュメントを分離する場合は、チェックを外す必要があります ソースと同じ宛先パス ボックスをクリックし、新しいフォルダを選択してPDFファイルを に保存 ボックス;
2.4)をクリックします 開始 ボタン。 スクリーンショットを参照してください:

3.次に、正常に変換されたドキュメントの数を示すダイアログボックスが表示されたら、[ OK ボタンを押して閉じます ドキュメントフォーマットコンバーター 窓。

これで、すべての.docx形式のドキュメントがpdfファイルに変換されます。

このユーティリティの無料トライアルをご希望の場合は、 ソフトウェアを無料でダウンロード まず、上記の手順に従って操作を適用します。


推奨される単語生産性ツール

 

Kutools For Word-100を超えるWordの高度な機能で50%の時間を節約

  • 複雑で繰り返される操作は、数秒でXNUMX回の処理で実行できます。
  • 複数の画像をフォルダ間でWord文書に一度に挿入します。
  • フォルダ間で複数のWordファイルをマージして、希望の順序でXNUMXつに結合します。
  • 見出し、セクション区切り、またはその他の基準に従って、現在のドキュメントを個別のドキュメントに分割します。
  • DocとDocx、DocxとPDFの間でファイルを変換し、一般的な変換と選択のためのツールのコレクションなど...
コメントを並べ替える
コメント (29)
5の5を評価 · 2の評価
このコメントは、サイトのモデレーターによって最小化されました
とても素敵なブログ、このブログを共有してくれてありがとう。 それはユーザーにとってとても有用な情報を持っています。 私はこの情報がとても好きでした。
あなたがそのような種類の情報を共有し続けることを望みますworddocをhtmlに変換します
このコメントは、サイトのモデレーターによって最小化されました
マクロを含むファイルを変換しようとすると、マクロはファイルを開き、ファイルを閉じずに終了します。
このコメントは、サイトのモデレーターによって最小化されました
ドキュメントのテキストからファイル名を取得する方法はありますか?
このコメントは、サイトのモデレーターによって最小化されました
こんにちは、


ドキュメントが.txtファイルに変換されるようにVBAコードを調整する簡単な方法はありますか?
このコメントは、サイトのモデレーターによって最小化されました
こんにちは、

ランタイムエラー「424」が発生します:
必要なオブジェクト

以下のコードで

Documents.Open Filename:= xFolder&xFileName、_

ConfirmConversions:= False、ReadOnly:= False、AddToRecentFiles:= False、_

PasswordDocument:= ""、PasswordTemplate:= ""、Revert:= False、_

WritePasswordDocument:= ""、WritePasswordTemplate:= ""、形式:= _

wdOpenFormatAuto、XMLTransform:= ""


wdOpenFormatAuto=0と言います。

助けてください。

ありがとうございます。
このコメントは、サイトのモデレーターによって最小化されました
こんにちは、



ランタイムエラー「424」が発生します:

必要なオブジェクト


画像添付。




助けてください。



ありがとうございます。
このコメントは、サイトのモデレーターによって最小化されました
こんにちは、このコードをありがとうございました。 正常に機能していますが、変換するたびにdocという単語を保存するためのダイアログボックスが表示され、保存する必要があります。 マクロにコードを含めて、それぞれを閉じるのではなく、ファイルを保存して閉じることができますか?
このコメントは、サイトのモデレーターによって最小化されました
「ActiveDocument.Close」のすぐ上に「ActiveDocument.Save」を追加すると、それ自体を閉じる前にドキュメントが保存されるため、常に保存プロンプトを押す必要はありません。
このコメントは、サイトのモデレーターによって最小化されました
vbaコードをありがとう、それは大いに役立ちます。
このコメントは、サイトのモデレーターによって最小化されました
VBAコードは素晴らしいです。 乾杯、食べた
このコメントは、サイトのモデレーターによって最小化されました
xIndex = InStr(xFileName、 "。")+1を変更します


このコメントは、サイトのモデレーターによって最小化されました
変更した場合
xIndex = InStr(xFileName、 "。")+1から
xIndex = InStrRev(xFileName、 "。")+ 1
文字列の末尾から検索して、最初のピリオドを見つけます。 これにより、ファイル名にピリオドが含まれている問題を回避できます。
このコメントは、サイトのモデレーターによって最小化されました
Спасибо、оченьдельныйсовет
このコメントは、サイトのモデレーターによって最小化されました
xFileName = Dir(xFolder& "*。*"、vbNormal)を変更した場合
to xFileName = Dir(xFolder& "* .doc *"、vbNormal)同じフォルダーにWord以外のファイルがある場合、マクロはクラッシュしません。
このコメントは、サイトのモデレーターによって最小化されました
これは私の日を救いました、どうもありがとう!
これを使用している人たちに指摘したいのですが、Wordがフリーズしているように見える場合は、待ってください-.pdfファイルを生成しています。 Wordがフリーズしましたが、ファイルのフォルダーを開くと、実際にすべてのファイルの.pdfが生成されていることがわかりました。
このコメントは、サイトのモデレーターによって最小化されました
VBA很棒!!価値您的分享。
このコメントは、サイトのモデレーターによって最小化されました
ドキュメントの名前が1.2.3.5.Blablabla.docの場合、PDFが保存および書き換えられ、結論として0neしかありません。 最後のXNUMXつのドキュメント。この問題を解決するにはどうすればよいですか。
このコメントは、サイトのモデレーターによって最小化されました
変更した場合
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"またはRight(xFileName、5)<> ".docx")Then
Дляисключенияпроблемыналичияточекможносделатьтак:
xIndex = InStr(xFileName、 ".doc")+ 1
Нуипросоветыдругихтоварищейнезабыть;)

このコメントは、サイトのモデレーターによって最小化されました
このコードは驚くほど高速ですが、Doc ファイルにリンクがある場合、別のファイルにリンクされた情報がある可能性があることを示すウィンドウが開き、これらの変更を適用しますか? そして別の名前を付けて保存するように求めます。 これらの手順を自動的に実行するコードを追加する方法はありますか? 800 までのうち 40 まであり、私はその場にいて、毎回これを行う必要があります。
ありがとうございました
5の5を評価
このコメントは、サイトのモデレーターによって最小化されました
こんにちはヴィンセント、
次の 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
このコメントは、サイトのモデレーターによって最小化されました
こんにちは、元のフォルダーではなく、別の出力フォルダーを選択する方法はありますか?

ありがとうございました
このコメントは、サイトのモデレーターによって最小化されました
こんにちはヴィンセント、
次の VBA コードを試してください。 コードを実行した後、 開いた ウィンドウがポップアップしたら、XNUMX 番目のポップアップで、変換したいドキュメントを含むフォルダを選択してください 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   文字
推奨される場所