【VBA】複数のPDFファイルを結合する方法《Adobe Acrobat Proを使わずにPDFtk(無料)を使用する》

12月 1, 2024

※当ブログではリンク先にプロモーションを含みます。

【VBA】複数のPDFファイルを結合する方法《Adobe Acrobat Proを使わずにPDFtk(無料)を使用する》
VBAで無料でPDF結合処理をしたい人
Adobe Acrobat Pro(有料)を使わずにPDF結合処理をしたい人向けに書いています。

「複数のPDFファイルを毎回手動で結合するの、面倒じゃないですか?」ビジネスの現場や資料作成では、複数のPDFをまとめる作業が意外と頻繁に発生します。
しかし、無料のオンラインツールではセキュリティが心配だし、何度もクリックする手間もかかる…。
もっとスマートな解決策があればいいのに、と感じている方も多いのではないでしょうか。

この記事では、VBA(Visual Basic for Applications)を使って複数のPDFを自動で結合する方法をご紹介します。
VBAの活用は、効率的な業務改善を実現するだけでなく、自分のスキルアップにもつながります。
「VBAを使いこなせる自分」に近づく第一歩として、この情報を活用してみませんか?

この記事を読むことで、PDF結合の作業が驚くほどスムーズになり、毎回の手作業を削減し、安心して効率化できるようになります。
「作業の効率化に役立つツールやアイデアを常に求めている!」という方に、ぜひお読みいただきたい内容です。
最後には、実際のVBAコードも紹介しているので、すぐに試せる実践的なアプローチを手に入れられます。

それでは、面倒なPDF結合から卒業して、仕事をもっとスマートに進める方法を一緒に学んでいきましょう!

本記事の内容

・VBAで複数のPDFファイルを結合する方法

VBAで複数のPDFファイルを結合処理しようとしたとき、有料のAdobe Acrobat Proを使用しないとできないと思っていませんか?
VBAで複数のPDFファイルを結合処理を無料で実現したいと思っていませんか?

Adobe Acrobat Proを使わずにVBAで複数のPDFファイルを結合する方法を紹介します。

 

スポンサーリンク

VBA(マクロ)で複数のPDFファイルを結合する方法

Adobe Acrobat Proを使わずにVBAで複数のPDFファイルを結合するには、PDFtkをインストールしてVBAからコマンドプロンプトでPDFtkを実行してPDFファイルを結合します。
PDFtkを使用してPDFファイルを結合するには以下の準備が必要です。

  • VBAの参照設定を設定する
  • PDFtkのインストール(無料)する
  • 複数のPDFファイルを結合するプログラムを作成する

VBAの参照設定

本方法では以下のVBAの参照設定が必要になります。

  1. メニュータブの「ツール」をクリックし、参照設定をクリックする
  2.  

  3. 「Windows Script Host Object Model」をチェックし、OKボタンをクリックする
    「Windows Script Host Object Model」をチェックする

 

PDFtkのインストール(無料)

PDFtkをPCにインストールします。
PDFtkのインストールページはこちら

PDFtkのインストール手順

  1. PDFtkサイトページにアクセスする
  2.  

  3. PDFtkサイトページの「Download PDFtk Free!」ボタンをクリックしてセットアップファイルをダウンロードする
    PDFtkサイトページ
  4.  

  5. ダウンロードしたファイルをダブルクリックして起動する
    PDFインストールファイル
  6.  

  7. Nextボタンをクリックする
    PDFtkセットアップウィザード開始画面
  8.  

  9. 「I accept the agreement」を選択して、Nextボタンをクリックする
    PDFtkライセンス同意画面
  10.  

  11. インストールフォルダを指定して、Nextボタンをクリックする
    PDFtkインストールフォルダの指定
  12.  

  13. スタートメニューのフォルダを指定して、Nextボタンをクリックする
    PDFtkのスタートメニューのフォルダを選択
  14.  

  15. 追加タスクを選択して、Nextボタンをクリックする
    PDFtkの追加タスクを選択
  16.  

  17. Installボタンをクリックする
    PDFtkのインストール準備完了
  18.  

  19. Finishボタンをクリックする
    PDFtkのインストール完了画面

 

複数のPDFファイルを結合するVBAプログラム

以下が複数のPDFファイルを結合するプログラムです。結合するファイルを指定したフォルダ内に複数入れて、1つのPDFファイルに出力するプログラムです。

  1. '*****************************************
  2. '* PDFファイル結合 コマンドプロンプトからPDFtkで実行する
  3. '*****************************************
  4. Sub PDF_MERGE_PROCESS()
  5.     
  6.     Dim Cmd As String 'コマンド
  7.     Dim FolderPath As String '元PDFファイル格納フォルダ
  8.     Dim FileName As String 'フォルダ内のファイル名格納
  9.     Dim FilePath As String 'ファイルパスを格納する変数を宣言
  10.     Dim MERGE_PDF_PATH As String '結合ファイル保存先ファイルパス
  11.     Dim MERGED_PDF_FOLDER_PATH As String '結合ファイル保存先フォルダパス
  12.     Dim wsh As New IWshRuntimeLibrary.WshShell 'コマンドプロンプトを使うためのオブジェクト
  13.     Dim result As WshExec 'コマンド結果を格納する変数
  14.     
  15.     '対象のフォルダのパスを指定
  16.     FolderPath = "結合したいPDFファイルを置いているフォルダパスを指定する"
  17.     
  18.     '結合ファイル保存先のフォルダパスを指定
  19.     MERGED_PDF_FOLDER_PATH = "結合したPDFを出力するフォルダパスを指定する"
  20.     
  21.     'コマンド初期化
  22.     Cmd = ""
  23.     
  24.     'フォルダ内のファイルを列挙
  25.     FileName = Dir(FolderPath & "\*.*")
  26.     
  27.     'フォルダ内のすべてのファイルに対して繰り返し
  28.     Do While FileName <> ""
  29.         
  30.         'ファイルパスを取得
  31.         FilePath = FolderPath & "\" & FileName
  32.         
  33.         Cmd = Cmd & FilePath & " "
  34.         
  35.         '次のファイル名を取得
  36.         FileName = Dir()
  37.         
  38.     Loop
  39.     
  40.     '実行したいコマンド
  41.     MERGE_PDF_PATH = MERGED_PDF_FOLDER_PATH & "\" & "PDF結合ファイル_" & Format(Now, "yyyymmddhhmm") & ".pdf"
  42.     Cmd = "pdftk " & Cmd & "cat output " & MERGE_PDF_PATH
  43.     
  44.     'コマンドを実行
  45.     Set result = wsh.Exec("%ComSpec% /c " & Cmd)
  46.     
  47.     'コマンドの実行が終わるまで待機
  48.     Do While result.Status = 0
  49.         
  50.         DoEvents
  51.         
  52.     Loop
  53.     
  54.     Set result = Nothing
  55.     Set wsh = Nothing
  56.     
  57. End Sub


16行目:結合したいPDFファイルを置いているフォルダパスを指定する
19行目:結合したPDFを出力するフォルダパスを指定する
 

スポンサーリンク

まとめ

「複数のPDFファイルを一つにまとめる作業が、こんなに簡単に自動化できるなんて!」と感じていただけたでしょうか。
毎回の手作業から解放され、効率的な業務運営を実現できるのは大きなメリットですよね。

この記事では、VBAを使ってPDFを自動で結合する方法を詳しくご紹介しました。Adobe Acrobat Proを使わずにVBAで複数のPDFファイルを結合する方法です。
手動で行っていた煩わしい作業も、ちょっとしたコードの活用で一瞬にして解決できるのがVBAの魅力です。

これを機に、ぜひVBAを仕事のパートナーとして取り入れて、毎日の作業をもっとスマートに、ストレスなく進めてみてください。
小さな自動化の積み重ねが、あなたの生産性を大きく向上させます!

最後までご覧いただき、ありがとうございました。

 

【ExcelVBA】Excelシートデータを別Excelファイルに出力する方法
【ExcelVBA】ExcelシートデータをCSVファイルに出力する方法
【ExcelVBA】別Excelファイルのシートデータ取り込み方法(複数ファイル・シート対応)
も紹介していますので、もしよろしければこちらも御覧ください。