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





















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