事務職員のPower Automate Desktopやってみた~ファイルの一括PDF化・PDFファイルの統合~

Word、Excel、Power Pointで作成したデータをPDF化し、
それぞれのPDFデータを統合する。
このようにして、会議資料や報告書を作成することがあると思います。
今回はこれらを自動で行うフロー紹介します。

0.はじめに

 以下を前提条件とします。
  ・PDF化するファイルを1つのフォルダに保存
  ・ファイル名の頭に番号を付ける
  (統合する際に、この番号順にするため)

1.フローの概要

 本フローはMainフローに以下を構成します。
  ・フォルダ内の指定ファイルをPDF化
  ・フォルダ内のPDFファイルを統合

2.フォルダ内の指定ファイルをPDF化

 PDF化の流れとしては、特定のフォルダに保存されているファイルを
 取得し、アクション『For each』で「アプリを開く・PDFとして
 エクスポート・閉じる」操作を繰り返します。

2-1.指定ファイルの取得

 まずは、PDF化するファイルを取得するため、
 アクション『フォルダー内のファイルを取得』を検索し、
 ダブル クリックします。

 以下を設定し保存します。
  フ ォ ル ダ ー:
   ファイルが保存されているフォルダーパスを入力します。
   今回は、テスト用として
  『C:\Users\●●\Desktop\PADてすと\PDF化テスト』とします。
  (●●はPCのユーザー名なので、黒塗りしています。)
  ファイルフィルター:
   取得するファイルを制限するフィルターを選択します。
   入力の仕方は、『*.』(アスタリスク+ピリオド)の後に取得したい、
   ファイルの拡張子を入力します。
   また、複数のファイル(拡張子)を取得する場合は
   『;』(セミコロン)で区切ります。  
   今回はExcel、Word、PowerPointのファイルを準備しているので、
   『*.xls;*.docx;*.pptx』とします。
  ※生成された変数(変数の名前)は変更可能。
   ここではデフォルトの『Files』とします。

 ちなみに、ここまでで一度フローを実行してみます。
 右側にある変数『Files』をダブルクリックすると、
 「0.はじめに」で説明したファイルが取得されていることがわかります。

        


 詳細表示では作成日時やファイル名などを確認することができます。

2-2.For each

 次に、アクション『For each』にて
 これらファイルをPDF化していきます。
 For eachはリストやデータなど、複数アイテムの集合において、
 最初から最後のアイテムまで順に
 指定した処理を反復するアクションです。
 例えば、先程取得した『Files』でいうと
 アイテム番号0から5の6個のアイテムがありますが、
 この0番から5番までの各アイテムに対し
 指定した処理を繰り返すことができます。
 今回は、これら『Files』の各アイテムに対し
 「アプリを開く・PDFとしてエクスポート・閉じる」を
 繰り返して行きます。
 
 まずはアクション『For each』を検索し、ダブルクリックします。

 反復処理を行う値に、先程取得した『%Files%』を入力し保存します。
 ※生成された変数(変数の名前)は変更可能。ここではデフォルトの『CurrentItem』とします。


2-3.「アプリを開く・PDFとしてエクスポート・閉じる」

 次に、アクション『アプリケーションの実行』を検索し、
 ダブルクリックします。
 これは、Word等のアプリを起動させるアクションです。

 以下を設定し、保存します。
  アプリケーションパス:%CurrentItem%
 これ以外はデフォルトのままとします。

 続いて、キー操作でPDFとしてエクスポートします。
 Altキーを押すと、このように各コマンドに
 アルファベットが表示されますので、
 そのアルファベットを順に入力することで、
 アプリを操作することができます。

support.microsoft.com

 アクション『キーの送信』を検索し、ダブルクリックします。

 修飾キーの挿入よりAltキーを選択し、保存します。

 同様に、各コマンドに表示されるアルファベットをキー入力します。
 PDFとしてエクスポートするまでのキーは、
 『F』→『E』→『P』→『A』です。




 ここまで入力すると、保存先を要求されます。

 ExcelPowerPointの保存先は、
 基のファイルの保存場所のようですが、
 Wordは、ドキュメントになるようです。
 なので、保存先を基のファイルの保存場所に指定するため、
 『Control』+『L』でアドレスバーを全選択し、
 基のファイルパスを入力します。

 ファイルパスを入力後、『Alt』+『S』で保存し、
 『Alt』→『F』→『X』のリボンの操作でファイルを閉じます。

 ここまでのアクションを『For each』と『End』の間に入れます。

 これで『For each』のフローは完了に思えますが、
 実際に実行してみると、
 うまくPDF化されないケースがあると思います。
 それは、フロー実行時の処理スピードに
 画面の遷移等が追い付かず、
 次のアクションがエラーとなることが原因です。

 そのため、『wait』アクションを使い、
 処理スピードを調整する必要があります。
 (『wait』は、指定した秒数だけフローの実行を中断するアクション)
 アプリの容量や、PCのスペックにも依ると思いますので、
 うまく処理される中断秒数を見つけ設定してください。
 
 今回のテストでは、各操作の間に1秒、アプリを閉じた後に3秒の
 『wait』を使用しています。
 このように途中で『wait』を挟めるように
 『F』→『E』→『P』→『A』等をそれぞれ個別のアクションに
 分けたのですが、エラーが生じないようであれば、
 まとめて『{Alt}()FEPA』と設定しても良いと思います。

 これでフォルダ内の指定ファイルをPDF化する作業は終了です。
 

3.フォルダ内のPDFファイルを統合

 PDF化されたファイルを取得し、統合します。

 アクション『フォルダー内のファイルを取得』を検索し、
 ダブルクリックします。

 以下を設定し保存します。
  フ ォ ル ダ ー:
   C:\Users\●●\Desktop\PADてすと\PDF化テスト
  ファイルフィルター:
   *.pdf
  ※生成された変数(変数の名前)は変更可能。
   ここでは『Filespdf』とします。
  ※詳細を開き「名前」で降順にするよう設定します。
  (この設定でファイル名の先頭につけた番号順に
   統合されるようになります。)

 最後に、上記で取得したファイル(『Filespdf』)を統合します。
 アクション『PDFファイルを統合』を検索し、ダブルクリックします。

 以下を設定し保存します。
  PDFファイル:
   %Filespdf%
  結合されたPDFのパス:
   C:\Users\●●\Desktop\PADてすと\PDF化テスト\統合ファイル.pdf
  ※生成された変数(変数の名前)は変更可能。
   ここでは『MergedPDF』とします。

 以上で完成です。