Office関連

Acrobatを使ってPDFファイルを結合するVBAマクロ

前回の記事では、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ファイルを結合するスクリプトも書いてみました。

[PowerShell]iTextSharpを使ってPDFファイルを結合する前のページ

Visual Studio Community 2015でOffice開発する。次のページ

関連記事

  1. Office関連

    Microsoft Edgeを操作するVBAマクロ(DOM編)

    2021/10/1 追記:本記事は公開されてから大分時間が経ってお…

  2. Office関連

    Adobe Reader XIを利用してPDFファイルのページ数を取得するVBAマクロ

    先日Adobe Readerを利用してPDFファイルのページ数を取得す…

  3. Office関連

    未読メッセージ数を取得するOutlookマクロ

    Outlook 2007で追加されたFolderオブジェクトのUnRe…

  4. Office関連

    Computer Vision APIを使って画像から文字列を取得するVBAマクロ

    前々回の記事で、Fiddlerを使ってMicrosoft Cognit…

  5. Office関連

    起動中のMicrosoft EdgeからタイトルとURLを取得するVBAマクロ(UI Automat…

    当ブログでは、Microsoft Edgeを外部から操作するプログラム…

コメント

  • コメント (0)

  • トラックバックは利用できません。

  1. この記事へのコメントはありません。

Time limit is exhausted. Please reload CAPTCHA.

※本ページはプロモーションが含まれています。

Translate

最近の記事

アーカイブ

PAGE TOP