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関連

    フォルダ(サブフォルダ含む)内の特定の拡張子のファイルに処理を行うVBAマクロ

    「Wordマクロ サブフォルダ ファイル処理」といったキーワードでのア…

  2. Office アドイン

    [Office用アプリ]アプリ開発コンテスト・受賞者発表

    以前書いた記事でお知らせしていた「Apps for Office アプ…

  3. Office関連

    アクティブなページ上のシェイプを一括でグループ化するWordマクロ

    Msdn フォーラムにあった質問「複数図形のグループ化」の回答用に書い…

  4. Office関連

    goo.glで短縮URLを取得するVBAマクロ

    何年か前にHPで「goo.glで短縮URLを取得する」マクロを紹介しま…

  5. Office関連

    ConvertToTextメソッドを使ってテーブルを二次元配列に変換するWordマクロ

    WordのTableオブジェクトには、テーブルを解除して文字列に変換す…

コメント

  • コメント (0)

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

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

Time limit is exhausted. Please reload CAPTCHA.

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

Translate

最近の記事

アーカイブ

PAGE TOP