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 アドインの概要と開発方法を学ぶための自習書

    2018年10月27日(土)、品川の日本マイクロソフト本社で「2018…

  2. Office関連

    「Office 2003 のコマンドに対応する Office 2010 のリファレンス ブック」のダ…

    クリックさんのブログ記事「旧メニュー対応表を使いたい: パソコンのツボ…

  3. Office関連

    PowerPoint 2013でYouTubeの動画を挿入する。

    2014/5/23 追記:いつの間にか「ビデオの挿入ダイアログ」が…

  4. Office アドイン

    Excel向けPower BI カスタム ビジュアル機能の紹介

    Power BI ブログの記事「Excel announces new…

コメント

  • コメント (0)

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

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

Time limit is exhausted. Please reload CAPTCHA.

最近の記事

アーカイブ

PAGE TOP