こんにちはmOqOmです。
この記事では、Power Automate Desktopを使用してフォルダ配下にある全てのPDFを結合するフローの作成方法を紹介しています。
複数のPDF結合のフローの作成
はじめに【 フォルダー 】から【 特殊なフォルダーを取得 】を追加します。
ここで【 特殊なフォルダーを取得 】を追加するのは、ユーザ名が変更されても同様の処理を行うために【 特殊なフォルダーを取得 】を設定しています。
今回はスタートを【 デスクトップ 】にしたいので【 特殊なフォルダーの名前 】で【 デスクトップ 】を選択し【 保存 】を押下します。この際生成された変数は【 SpecialFolderPath 】になります。
※設定値は以下の表になります。
設定名 | 設定値 |
---|---|
特殊なフォルダーの名前 | デスクトップ |
特殊なフォルダーのパス (使用しているユーザ名によって変更あり) | C:\Users\user\Desktop |


【 メッセージボックス 】から【 フォルダーの選択ダイアログを表示 】を追加します。
ここで【 フォルダーの選択ダイアログを表示 】を追加するのは、結合したいPDFファイルがあるフォルダーを選択させるために設定しています。
【 ダイアログの説明 】には【 結合するPDFフォルダを選択してください。 】と入力します。
また、初期フォルダーには先ほどの追加した【 特殊なフォルダーを取得 】で生成された変数の【 SpecialFolderPath 】を選択します。
※設定値は以下の表になります。
設定名 | 設定値 |
---|---|
ダイアログの説明 | 結合するPDFフォルダを選択してください。 |
初期フォルダー | %SpecialFolderPath% |


次に【 条件 】から【 if 】を選択し追加します。
ここで【 if 】を追加するのは、上記のフォルダーが選択されなかった場合にフローを終了させるために追加させています。
【 if 】の条件は以下のように設定します。
設定名 | 設定値 |
---|---|
最初のオペランド | %ButtonPressed% |
演算子 | と等しい(=) |
2番目のオペランド | OK |


【 フォルダー 】から【 フォルダー内のファイル取得 】を追加します。
上記で設定したフォルダー内にあるPDFファイルの一覧を取得するために設定しています。
※【 フォルダー内のファイル取得 】の設定値は以下の表になります。
設定名 | 設定値 |
---|---|
フォルダー | %SelectedFolder% |
ファイルフィルター | *.pdf;*.PDF |
サブフォルダーへのアクセスが 拒否されたときは失敗 | True |
並べ替え基準 | 名前 |
降順 | True |



次に【 条件 】から【 if 】を選択し追加します。
ここで【 if 】を追加するのは、上記のフォルダー内にPDFファイルが2件以上存在しなかった場合にフローを終了させるために追加させています。
【 if 】の条件は以下のように設定します。
設定名 | 設定値 |
---|---|
最初のオペランド | %Files.Count% |
演算子 | より大きい(>) |
2番目のオペランド | 1 |


【 メッセージボックス 】から【 ファイルの選択ダイアログを表示 】を追加します。
※【 ファイルの選択ダイアログを表示 】の設定値は以下のようになります。
設定名 | 設定値 |
---|---|
ダイアログのタイトル | PDFの結合先の保存場所を選択してください。 |
初期フォルダー | %SpecialFolderPath% |
ファイルフィルター | *.pdf;*.PDF |
ファイル選択ダイアログを 常に手前に表示する | True |


次に【 条件 】から【 if 】を選択し追加します。
ここで【 if 】を追加するのは、上記の保存先フォルダーが選択されなかった場合にフローを終了させるために追加させています。
※設定値は以下の値になります。
設定名 | 設定値 |
---|---|
最初のオペランド | %ButtonPressed2% |
演算子 | と等しい(=) |
2番目のオペランド | Open |


【 PDF 】から【 PDFファイルを結合 】を追加します。
※設定値は以下のようになります。
設定名 | 設定値 |
---|---|
PDFファイル | %Files% |
結合されたPDFのパス | %SelectedFile% |
ファイルが存在する場合 | 連番のフィックスを追加します |


【 メッセージボックス 】から【 メッセージを表示 】を追加します。
ここで【 メッセージを表示 】を追加しているのは、フローの処理が完了したことを分かりやすくするためです。
設定名 | 設定値 |
---|---|
メッセージボックスのタイトル | PDFの結合処理終了 |
表示するメッセージ | PDFの結合が完了しました。 |
メッセージボックスアイコン | 情報 |
メッセージボックスボタン | OK |
既定のボタン | 最初のボタン |
メッセージボックスを 常に手前に表示する | True |


完成したフローは以下のようになります。

さいごに
さいごに完成したフローのRobinは以下になります。
フローのコピー方法については以下の記事で紹介していますのでご覧ください。
複数のPDF結合のフロー(Robin)
Folder.GetSpecialFolder SpecialFolder: Folder.SpecialFolder.DesktopDirectory SpecialFolderPath=> SpecialFolderPath
Display.SelectFolder Description: $'''結合するPDFフォルダを選択してください。''' InitialDirectory: SpecialFolderPath IsTopMost: False SelectedFolder=> SelectedFolder ButtonPressed=> ButtonPressed
IF ButtonPressed = $'''OK''' THEN
Folder.GetFiles Folder: SelectedFolder FileFilter: $'''*.pdf;*.PDF''' IncludeSubfolders: False FailOnAccessDenied: True SortBy1: Folder.SortBy.Name SortDescending1: True SortBy2: Folder.SortBy.NoSort SortDescending2: False SortBy3: Folder.SortBy.NoSort SortDescending3: False Files=> Files
IF Files.Count > 1 THEN
Display.SelectFileDialog.SelectFile Title: $'''PDFの結合先の保存場所を選択してください。''' InitialDirectory: SpecialFolderPath FileFilter: $'''*.pdf;*.PDF''' IsTopMost: True CheckIfFileExists: False SelectedFile=> SelectedFile ButtonPressed=> ButtonPressed2
IF ButtonPressed2 = $'''Open''' THEN
Pdf.MergeFiles PDFFiles: Files MergedPDFPath: SelectedFile IfFileExists: Pdf.IfFileExists.AddSequentialSuffix PasswordDelimiter: $''',''' MergedPDF=> MergedPDF
Display.ShowMessageDialog.ShowMessage Title: $'''PDFの結合処理終了''' Message: $'''PDFの結合が完了しました。''' Icon: Display.Icon.Information Buttons: Display.Buttons.OK DefaultButton: Display.DefaultButton.Button1 IsTopMost: True ButtonPressed=> ButtonPressed3
END
END
END
コメント