前回の記事では、iTextSharpを使ってPDFファイルを結合するPowerShellコードを紹介しましたが、今回はAcrobatを使ってPDFファイルを結合するVBAマクロを紹介したいと思います。
Option Explicit Public Sub Sample() Dim v As Variant '結合元PDFファイル v = Array( _ "C:\Test\Sample01.pdf", _ "C:\Test\Sample02.pdf", _ "C:\Test\Sample03.pdf", _ "C:\Test\Sample04.pdf" _ ) MergePDF v, "C:\Test\Output.pdf" End Sub Private Sub MergePDF(ByVal InputFilePath As Variant, _ ByVal OutputFilePath As String) 'Acrobatを利用してPDFファイルを結合する Dim pdoc As Object Dim i As Long Const PDSaveFull = &H1 With CreateObject("AcroExch.PDDoc") If .Create = True Then Set pdoc = CreateObject("AcroExch.PDDoc") For i = LBound(InputFilePath) To UBound(InputFilePath) If pdoc.Open(InputFilePath(i)) = True Then .InsertPages .GetNumPages() - 1, pdoc, 0, pdoc.GetNumPages() - 1, True pdoc.Close End If Next .Save PDSaveFull, OutputFilePath .Close End If End With End Sub
PDFファイルを開いてInsertPagesメソッドでページを挿入するだけの簡単なマクロです。
やはりVBAからPDFファイルを処理するときは本家Acrobatがオススメです。
2018/8/31 追記:
ドラッグ&ドロップした複数のPDFファイルを結合するスクリプトも書いてみました。
この記事へのコメントはありません。