← 手順一覧へ戻る
Power Automate DesktopPDF初心者向け

複数のPDFを順番に結合する(0件・1件は処理しない)

フォルダーのPDFを名前順に結合します。2ファイル以上あるときだけ進み、0件・1件なら作成せずに理由を表示する例です。

画面上の名前は、表示言語やバージョンによって異なる場合があります。Desktopの例は、フロー作成時に「Power Fx を有効にする」をオフにした標準構文です。Power Fx対応フローでは式・変数参照・インデックスの書き方が異なります。このページでは変数を %変数名% と表記します。出力変数の名前を入力する欄では、前後の % は付けません。

実行前に確認

  • WindowsのPower Automate for desktopで手動実行する練習です。ローカルPDFを扱うため、クラウドサービスの接続設定は不要です。利用権は自分の契約で確認し、クラウドからの起動・無人実行には別の要件があることに注意します。
  • 入力と出力は必ず別パスにします。結合先を入力PDFの1つと同じパスにすると、失敗や元ファイルの削除につながることがあります。入力フォルダーに出力を保存する設定へ変更しないでください。
  • 元PDFのブックマークは結合後に引き継がれません。画像だけのPDFも結合できますが、文字認識は行いません。この練習はパスワードなしのPDFが対象です。保護されたPDFは利用許可と正しいパスワードが必要で、複数指定時は入力PDFと同じ順序にします。
  • 件数条件はファイルの中身や読み取り権限までは確認しません。取得時のエラーはフォルダーの存在・権限を、結合時のエラーは破損・パスワード・取得後の移動や削除・出力先への書き込み権限を確認します。失敗したPDFを飛ばして続ける仕組みは含みません。 Elseは件数不足の分岐で、エラー処理ではありません。

1使うアクション

  1. アクション 1フォルダー内のファイルを取得*.pdfを名前の昇順でPdfFilesへ
  2. アクション 2If%PdfFiles.Count% が2以上か
  3. アクション 3PDF ファイルを統合はい:別フォルダーへ結合
  4. アクション 4メッセージを表示成功時:実際の保存先を表示
  5. アクション 5Elseいいえ:0件または1件
  6. アクション 6メッセージを表示件数不足を表示。新しいPDFは作成しない
  7. アクション 7EndIfの終わり。ここで練習フローは終了

図で見る処理のイメージ

概念図

入力は表紙1ページ+本文2ページの2ファイル。件数を確認してから結合します。

  1. 名前順に取得

    01_表紙.pdf → 02_本文.pdf

  2. 2件以上か

    はい:結合へ/いいえ:件数不足を表示

  3. 別のPDFへ結合

    成功時のMergedPDFで保存先を確認

結果の例

2件なら表紙→本文の3ページを期待します。0件・1件では、この実行による新しいPDFは作らず、既存の出力も変更しません。

入力件数・ページ数・再実行の確認例(期待値)
入力の状態件数と分岐今回の新しい出力
PDFなし0件 → Else作成しない
本文2ページだけ1件 → Else作成しない(ページ数は無関係)
表紙1ページ+本文2ページ2件 → If表紙→本文の合計3ページ
同じ2件で再実行2件 → If連番付きの別PDF。既存PDFは保持

架空の練習データで示した期待値です。実際のPower Automateフローを実行して確認した結果ではありません。

設定と処理を説明する模式図です。実際の設定画面や実行結果のスクリーンショットではありません。

2実際の設定内容

入力する値・操作手順を確認する9ステップの設定と確認方法
  1. 1

    準備:自分で読み書きできる C:\Work\PDFInput と C:\Work\Output を作成します。入力に練習用の 01_表紙.pdf(1ページ)、02_本文.pdf(2ページ)だけを置きます。パスワードなしのコピーを使い、最初のOutputは空にします。元の業務文書では試しません。

  2. 2

    「フォルダー内のファイルを取得」:フォルダー=C:\Work\PDFInput、ファイルフィルター=*.pdf、サブフォルダーを含める=オフ。詳細の並べ替え=名前、降順=オフにして、生成された変数の名前をPdfFilesにします。出力リストの初期化は不要です。

  3. 3

    直後に「If」を置きます。最初のオペランド=%PdfFiles.Count%、演算子=以上(>=)、2番目のオペランド=数値の2です。CountはPDFの本数で、ページ数ではありません。2ページのPDFが1個だけなら1件です。

  4. 4

    Ifの内側に「PDF ファイルを統合」を置きます。PDFファイル=%PdfFiles%、結合されたPDFの保存先=C:\Work\Output\merged.pdf、ファイルが存在する場合=連番の接尾辞を追加する。パスワードは空欄、生成された変数はMergedPDFにします。For eachは不要で、リスト全体を1回で渡します。

  5. 5

    結合の直後、同じIf側に「メッセージを表示」を置き、本文=保存先:%MergedPDF.FullName% とします。FullNameは実際の保存先のフルパスです。連番が付いた場合も、固定のmerged.pdfではなく表示されたファイルを開きます。 この練習では結合失敗時に停止する既定のエラー処理を使います。メッセージはOKを押すまで待ちます。

  6. 6

    同じIfに「Else」を追加し、その内側へ別の「メッセージを表示」を置きます。本文=PDFは%PdfFiles.Count%件です。2件以上必要なため、この実行では新しいPDFを作成しません。 とします。Else側ではMergedPDFを参照しません。Endの後にはアクションを置かず、この練習は終了です。

  7. 7

    確認A(2件):最初は取得アクションの直後で一時停止し、PdfFilesの順番が01_表紙.pdf→02_本文.pdfか確認して続行します。成功後に表示されたPDFを開き、1ページ目が表紙、2〜3ページ目が本文で、合計3ページかを確認します。入力2ファイルも残っていることを確認します。

  8. 8

    確認B(0件・1件):練習用コピーを入力フォルダーの外へ一時的に移し、0件、次に1件で別々に実行します。Else側のメッセージが表示され、Outputに新しいPDFが増えないことを確認します。既存の出力PDFはそのまま残ります。

  9. 9

    確認C(再実行):入力を2件に戻してもう一度実行します。Outputの既存PDFを上書きせず、連番付きの別PDFが作られる想定です。毎回%MergedPDF.FullName%で今回の保存先を確認します。Outputを入力の外に置くため、前回の結合PDFが再び入力に混ざりません。

Microsoft公式ページで確認する

設定を確認できる公式資料