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マクロからでも処理を実行することができるわけです。

関連記事

  1. Office関連

    空白文字を一括置換するWordマクロ

    様々なWord文書を扱っていると、下図のように“同じ空白のように見えて…

  2. Office関連

    Office XP Developer Toolsでリボン対応のCOMアドインを作成する。

    「Visual Basic 6でリボン対応のアドインを作成する」ではV…

  3. Word

    GoogleとYahoo!で同時に翻訳するWordマクロ

    「Google翻訳で文字列を翻訳するマクロ」と「Yahoo!翻訳で文字…

  4. Windows 10

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

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

  5. Office関連

    Office 2016 Preview for Windowsのサポート情報まとめ

    「Office のサポート ページ - support.office.…

コメント

  • コメント (0)

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

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

Time limit is exhausted. Please reload CAPTCHA.

最近の記事

アーカイブ

RapidSSL_SEAL-90x50
PAGE TOP