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

    VBAからRegistration-Freeで.NETベースのDLLを呼び出す方法

    C#製のDLLをVBAから呼び出すのにいちいちRegAsmするのも面倒…

  2. Office関連

    Yahoo!翻訳で文字列を翻訳するマクロ

    「Google翻訳で文字列を翻訳するマクロ」ではGoogle翻訳を利用…

  3. Office関連

    オデッセイ コミュニケーションズ主催のWord活用無料セミナーに参加しました。

    Club Microsoft会員限定、オデッセイ コミュニケーションズ…

  4. Office関連

    Google TTSで文字列を読み上げるマクロ

    2012/02/09 追記:関連記事・Google翻訳…

  5. Office関連

    VBAでTTSエンジンの各種情報を列挙する

    今回はTTSエンジンの各種情報を列挙するマクロを紹介します。Mic…

コメント

  • コメント (0)

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

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

Time limit is exhausted. Please reload CAPTCHA.

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

Translate

最近の記事

アーカイブ

PAGE TOP