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用アプリ]マニフェストファイルをSharePointに配置する。

    今更になりますが、今回はマニフェストファイルをSharePoint上に…

  2. Office関連

    「VBA質問箱」にアクセスできない。

    2013/03/19 追記:ドメインが更新されVBA質問箱が閲覧で…

  3. Office関連

    Office 2010 開発者用リファレンスをHTML形式で”快適に”閲覧す…

    前回の記事で7-Zipを使ってHXS形式のOffice製品のヘルプを解…

  4. Office関連

    選択している行の高さを増やすExcelマクロ

    Excelの表を印刷しようとしたとき、ビミョーに文字が切れていてイラッ…

  5. Office アドイン

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

    前回の記事は“Office アドイン”のAdvent calendar…

  6. Office アドイン

    office-toolboxを使って簡単にOffice アドインを作成する方法

    以前「YO OFFICE」を使ってOffice アドインのひな型を作成…

コメント

  • コメント (0)

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

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

Time limit is exhausted. Please reload CAPTCHA.

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

Translate

最近の記事

アーカイブ

PAGE TOP