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

    「個人用テンプレートの既定の場所」を設定するWordマクロ

    前回の記事で、Word 2013で個人用テンプレート(カスタム テンプ…

  2. Office アドイン

    [Office用アプリ]RSS表示アプリを作成する。

    ※ この情報はOffice 2013 カスタマー プレビュー版を元にし…

  3. Office関連

    新しくなったMZ-Tools

    みなさんは「MZ-Tools」というツールをご存知でしょうか?…

  4. Office関連

    SkyDriveの同期フォルダーのパスを取得するWordマクロ

    無料で使える便利なクラウドストレージ「SkyDrive」にはローカルフ…

  5. Office アドイン

    [Office用アプリ]日経パソコン 2013/8/26号 の記事

    日経パソコン 2013/8/26号 のニュース&トレンドにOffice…

  6. Excel

    ヘッドレス ChromeとSeleniumBasicでWebページ全体のスクリーンショットを撮る方法…

    先日、ヘッドレス ChromeでWebページ全体のスクリーンショットを…

コメント

  • コメント (0)

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

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

Time limit is exhausted. Please reload CAPTCHA.

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

Translate

最近の記事

アーカイブ

PAGE TOP