###前提・実現したいこと
VBA初心者です。宜しくお願い致します。
WordVBAにてRTFファイルをPDF化した複数のファイルをExcelのファイル一覧表の並び
通りに結合したいです。
2つのPDFファイル結合は【pdftool.dll】
にて下記のコードでできるのですが、100ファイル以上を結合したいのです。
Public Declare Function CombinePDF Lib "pdftool.dll"
(ByVal PDF1 As Long, ByVal PDF2 As Long, ByVal SaveFileName As String) As Long
出来れば、VBAにてループ処理で行いたいです。
###該当のソースコード(2017/06/08追加しました)
' PDFDesigner Tools API
Public Declare Function LoadPDF Lib "pdftool.dll" (ByVal OpenFileName As String) As Long
Public Declare Sub FreePDF Lib "pdftool.dll" (ByVal PDF As Long)
Public Declare Function CombinePDF Lib "pdftool.dll" (ByVal PDF1 As Long, ByVal PDF2 As Long, ByVal SaveFileName As String) As Long
' PDFのバージョンを1.4形式にする(コピーしたファイルを編集)
Public Sub ChangePDFVersion(ByVal OpenFileName As String, ByVal SaveFileName As String)
Dim Stream() As Byte ' ストリーム
Dim FileNo As Integer ' ファイルNO
' ファイルを読み込む
FileNo = FreeFile
ReDim Stream(FileLen(OpenFileName) - 1)
Open OpenFileName For Binary As #FileNo
Get #FileNo, , Stream
Close #FileNo
' PDFの形式を1.4にする
Stream(5) = "&H31": Stream(7) = "&H34"
' ファイルの出力
FileNo = FreeFile
Open SaveFileName For Binary Access Write As #FileNo
Put #FileNo, , Stream
Close #FileNo
End Sub
'Excelを起動する
Set app = CreateObject("Excel.Application")
'abc.xlsを開く
Dim book As Excel.Workbook
Set book = app.Workbooks.Open("C:\Users\9A150\Desktop\PDF化\PDF一覧.xlsx")
For r = 2 To 4 '行を1から4まで
If Range("A" & r).Value <> "" Then 'A列注目行の値が""なら
mypdf = Range("C" & i + 1).Value
ChDir ThisDocument.Path 'Wordファイルと同じフォルダ
If mypdf <> "" Then
Documents.Open FileName:=mypdf
End If
PDF1 = mypdf
' 拡張子をtmpに変換する
tmp1 = Replace(PDF1, ".pdf", ".tmp", Compare:=vbTextCompare)
tmp2 = Replace(PDF2, ".pdf", ".tmp", Compare:=vbTextCompare)
' 元のPDFファイルをコピーしてバージョンを1.4形式に変更する
Call ChangePDFVersion(PDF1, tmp1)
Call ChangePDFVersion(PDF2, tmp2)
' PDFファイルを読み込んでハンドルを取得する
p1 = LoadPDF(tmp1)
p2 = LoadPDF(tmp2)
' PDFファイルを結合する
Result = CombinePDF(p1, p2, SaveFileName)
' PDFファイルのハンドルを解放する
FreePDF (p1)
FreePDF (p2)
###試したこと
Acrobatから結合するプログラムも検索して出てきたのですが
エラーになってしまい、使えませんでした。
###補足情報(言語/FW/ツール等のバージョンなど)
より詳細な情報
Word2010
Excel2010

回答1件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
2017/06/07 04:40
2017/06/07 08:19
2017/06/08 04:09
2017/06/08 07:34 編集
2017/06/08 07:10
2017/06/08 08:16
2017/06/09 01:12
2017/06/09 01:29 編集
2017/06/09 01:46
2017/06/09 08:06
2017/06/12 02:02
2017/06/12 05:03
2017/06/12 07:18