こんにちは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




コメント