10秒目をつむったら…

質問1
以下のコードは2つのPDFを結合します
フォルダ内にある、2つのPDFファイルのパスを、コードに指定します

やりたい事は、当該、PDFファイルパス指定をせずに、フォルダ内にある2つ(2~10個)の
ファイルを結合するコードに変更したいです

> pdfs.Add "C:\Users\2020\OneDrive\デスクトップ\PDF結合\2438-214-20090414.pdf"
> pdfs.Add "C:\Users\2020\OneDrive\デスクトップ\PDF結合\140120240812570514.pdf"


ご存じの方、アドバイス・ご指導お願いします


質問2
当方、パソコンに、アドビの有料ソフトは一切いれていません
しかし、PDF結合は以下マクロにて作成できています
勝手に、有料版が契約されている事はないでしょうか?

NETにて調べた際に、ほとんどの、サイトでは
Adobe Acrobat Pro DC(有料版)のインストールが必要と
記載がある為、質問させて頂いています


【コード】
Sub ExecuteCombinePDFs()
Dim pdfs As New Collection
Dim outputPath As String

' 結合するPDFファイルのパスを指定します

pdfs.Add "C:\Users\2020\OneDrive\デスクトップ\PDF結合\2438-214-20090414.pdf"
pdfs.Add "C:\Users\2020\OneDrive\デスクトップ\PDF結合\140120240812570514.pdf"

' さらにファイルを追加...

' 結合後のファイルの保存パスを指定します
outputPath = "C:\Users\2020\OneDrive\デスクトップ\PDF結合\結合.pdf"

' PDF結合関数を呼び出します

合体サブシーシャ pdfs, outputPath

End Sub

Sub 合体サブシーシャ(pdfList As Collection, outputPath As String)
Dim acroApp As New Acrobat.acroApp
Dim pdDoc As Acrobat.CAcroPDDoc
Dim pdDocToAdd As Acrobat.CAcroPDDoc
Dim i As Integer

Set pdDoc = CreateObject("AcroExch.PDDoc")

' 最初のPDFファイルを開きます
pdDoc.Open pdfList(1)

' 残りのPDFファイルを順番に結合します
For i = 2 To pdfList.Count
Set pdDocToAdd = CreateObject("AcroExch.PDDoc")
pdDocToAdd.Open pdfList(i)
pdDoc.InsertPages -1, pdDocToAdd, 0, pdDocToAdd.GetNumPages, True
pdDocToAdd.Close
Next i

' 結合したPDFを保存します
pdDoc.Save PDSaveFull, outputPath
pdDoc.Close

' Acrobat Applicationを終了します
acroApp.Exit
Set pdDoc = Nothing
Set acroApp = Nothing
End Sub

A 回答 (3件)

>無料ば?でできてるっめこ


過去の導入経歴などが分からないので勝手な憶測でした。

ただ、Adobeコミュでも似たような質問があがってました
https://community.adobe.com/t5/acrobat-reader-ac …

どうやら無料版Acrobat Readerのみでも挙動が異なるようです。
「Acrobat.tlb」はあるのに保存場所が異なるために参照設定に出てないだけかも知れません。
参考までに
    • good
    • 1

https://qiita.com/ysnhrk/items/0f85d145f68a49028 …
これだと1つ追加して保存した後に次のファイルを追加ですね。
ちょっと効率悪そうです。

https://shikumika.org/entry/excel-vba-dir
こちらも同様ですね、Dir関数だと仕方ないのかな
エクセルファイルと同じフォルダ内なのか、実行する毎にフォルダ指定するのか、そこへんはうまく対応してください。
拡張子を変えれば動作すると思います。


ツールの参照設定で「Acrobat」が追加されているはずです
体験版とか?
過去に導入したことがあるのかも知れませんね。
    • good
    • 1
この回答へのお礼

お返事ありがとうです
Windows 10ですが、環境設定にて
アクロバットは、追加しました

ただ、優良版ではないので
無料ば?でできてるっめことですかね!!!

お礼日時:2024/08/30 09:51

コードでやる方法ではありませんが、無料でPDFの結合は可能です。


I LOBE PDFというWebサイトが便利です。
    • good
    • 1

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!

このQ&Aを見た人はこんなQ&Aも見ています


このQ&Aを見た人がよく見るQ&A