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 アドイン

    [Office用アプリ]法人登録する際の参考資料

    法人としてMicrosoft Seller DashboardでOff…

  2. Office関連

    「図のリセット」を実行するExcelマクロ

    Msdn フォーラムに「Excel2010-VBA 画像「図の書式設定…

  3. Office関連

    選択範囲内にある特定のフォントの文字列を別のフォントに置き換えるWordマクロ

    選択範囲内で「MS ゴシック」が使われている文字列のフォントを「MS …

  4. Office関連

    選択したセルに連続行番号を振るWordマクロ

    Wordでマニュアルを作成するとき等、表の中で連番を振りたいときがよく…

  5. Office関連

    Google TTSで文字列を読み上げるExcelアドイン

    前回の記事で書いたGoogle TTSで文字列を読み上げるマクロ(言語…

  6. Office関連

    【2018年7月版】ソースコードを番号行付きのテーブルに変換するWordマクロ

    6年以上前、Wordに貼り付けたソースコードを番号付きのテーブルに変換…

コメント

  • コメント (0)

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

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

Time limit is exhausted. Please reload CAPTCHA.

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

Translate

最近の記事

アーカイブ

PAGE TOP