Office関連

PDFを分割するVBAマクロ

VBA PDF 分割」といったキーワード検索でのアクセスがありました。
マクロでPDFファイルを分割する方法を探している方だろうと思います。

以前、下記記事でPDFファイルを結合するマクロを紹介しましたが、今回は逆に、Acrobatを使ってPDFファイルを分割するマクロを紹介します。

Option Explicit

Public Sub Sample()
  Dim jso As Object
  Dim i As Long
  Dim fp As String, fn As String
  Const PdfFilePath = "C:\Test\PDF\Test.pdf"
  
  'フォルダパスとファイル名取得
  With CreateObject("Scripting.FileSystemObject")
    fp = AddPathSeparator(.GetParentFolderName(PdfFilePath))
    fn = .GetBaseName(PdfFilePath)
  End With
  
  With CreateObject("AcroExch.PDDoc")
    If .Open(PdfFilePath) = True Then
      Set jso = .GetJSObject
      For i = 0 To .GetNumPages() - 1
        '元のPDFファイルと同じ場所にページ番号を付けて保存
        CallByName jso, "extractPages", VbMethod, _
                   i, i, fp & fn & "(" & i + 1 & ").pdf"
      Next
      .Close
    End If
  End With
End Sub

Private Function AddPathSeparator(ByVal s As String)
  If Right(s, 1) <> ChrW(92) Then s = s & ChrW(92)
  AddPathSeparator = s
End Function

Acrobat JavaScriptのDocオブジェクトにはページを分割するためのextractPagesメソッドが用意されており、そのメソッドをGetJSObject経由で呼び出すことで、VBAマクロからでも処理を実行することができるわけです。

Excelを別インスタンスで起動する方法前のページ

【オトカドール】ライバルカード第1弾カード一覧次のページ

関連記事

  1. Office アドイン

    [Officeアドイン]アドイン コマンド(Add-In Commands)の紹介(2)

    昨年末に書いた記事で「アドイン コマンド」を紹介しているのですが、知ら…

  2. Office関連

    IEサポート終了でVBAマクロはどうなるの?(2)

    ※下記情報は2021年5月時点の情報で、今後状況が変わっていく可能性が…

  3. Office関連

    指定したセル範囲をUTF-8やEUC-JP等のテキストファイルとして出力するExcelアドイン

    以前この記事で、指定したセル範囲をUTF-8やEUC-JP等のテキスト…

  4. Office関連

    64ビット版OfficeでURLエンコード処理ができない?

    2011/12/28 追記:関連記事として「文字コードを指定してU…

  5. Office関連

    [Office VBA]リボンのカスタマイズ環境の紹介

    Office開発に携われている方ならご存じの方も多いと思いますが、Of…

コメント

  • コメント (0)

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

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

Time limit is exhausted. Please reload CAPTCHA.

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

Translate

最近の記事

アーカイブ

PAGE TOP