RPAには底知れない「便利機能」があります
今回はエクセルVBAで作成したらかなり複雑になりそうな作業を、RPAの画面内で数回のクリックで行えるようにする方法を解説します
具体的にRPAで行う作業は次の内容です
・フォルダにある複数のPDFファイルを1つのPDFファイルに結合
・1つのPDFファイルを複数のPDFファイルに分解
使うRPAは無料でインストールできる「Power Automate Desktop」になります
複数PDF➡1PDFファイル
下の画像にあるように、1つのフォルダに3つのPDFファイルが格納されています
![](https://analytic-vba.com/wp/wp-content/uploads/2021/11/image-141.png)
それぞれのPDFファイルの中味は、数字の番号になっています
![](https://analytic-vba.com/wp/wp-content/uploads/2021/11/image-142.png)
これらの複数のPDFファイルを2つのアクションで結合します
ファイル名の取得
取得するファイルが格納されているフォルダ名を、こちらのアクションで指定します
![](https://analytic-vba.com/wp/wp-content/uploads/2021/11/image-143.png)
複数ファイルの結合
結合先のファイル名などをこちらのアクションで指定します
![](https://analytic-vba.com/wp/wp-content/uploads/2021/11/image-144.png)
ファイル名には、必ず拡張子「.pdf」を指定するのがポイントです
*結合先のPDFを事前に作成しておく必要はありません
実際のRPAシナリオの動き
2つのアクションからなるシナリオを実際に動かすと次のように動きます
*次のGIF画像はデバックモードで動いています(1つ1つのアクション内容を確認して動かす)
![](https://analytic-vba.com/wp/wp-content/uploads/2021/11/6be4b4fafd0351c321b8c34e181fb8d5.gif)
まず、1つ目のアクションでフォルダ内に格納されているPDFファイルのファイル名を取得します
その後の2つ目のアクションで予め指定されたPDFファイルに、取得したファイルの内容を結合します
下のGIF画像は結合したPDFファイルを開いた時の内容です
![](https://analytic-vba.com/wp/wp-content/uploads/2021/11/c44ea21dd818ac480ec639699920568e.gif)
1PDFファイル➡複数PDFファイル
こちらは2パターン紹介します
1つ目は1PDFファイルのページ数が決まっているパターン
2つ目はページ数が分からない時のパターンです
ページ数が事前に分からない時には、超えようがないページ数を指定します
ページ数が決まっているパターン
こちらはページ数+1のアクション数でシナリオを作成できます
今回は、上記のRPAシナリオで結合したPDFファイルを使用します
こちらはPDF内に3ページがあるのが事前に分かっています
![](https://analytic-vba.com/wp/wp-content/uploads/2021/11/image-145.png)
ここから設定するアクションの話しです
フォルダに格納されているファイル名を取得するのは、上記のRPAシナリオと一緒です
![](https://analytic-vba.com/wp/wp-content/uploads/2021/11/image-146.png)
次に「新しいPDFファイルへのPDFファイルページの抽出」アクションにて「元ファイル名」「ページの選択」「出力ファイル名」の3つを指定します
![](https://analytic-vba.com/wp/wp-content/uploads/2021/11/image-147.png)
上記の画像はページ選択と出力ファイル名を1で指定していますが、同じものを後2ページ分作成します
上記のRPAシナリオを動かすと次のようになります
![](https://analytic-vba.com/wp/wp-content/uploads/2021/11/image-148.png)
ページ数が事前に分からない場合のパターン
この場合は、繰返し処理を使います
下の図のように繰返し処理をするアクション内で、終了値を100というあり得ない数字で設定しておきます
![](https://analytic-vba.com/wp/wp-content/uploads/2021/11/image-149.png)
そして、Loop内に先ほど設定したアクションを今回は1つだけ配置します
![](https://analytic-vba.com/wp/wp-content/uploads/2021/11/image-150.png)
こちらの「新しいPDFファイルへのPDFファイルページの抽出」内には変数を設定します
![](https://analytic-vba.com/wp/wp-content/uploads/2021/11/image-151.png)
上の画像で黄色く印を付けた「%LoopIndex%」は繰返し処理内で動くカウンター変数です
こちらのカウンター変数は自動で繰り上がっていきますので、こちらを活用します
但し、上記のままだとエラーが途中で発生しますので、エラー対策を組み入れておきます
あまり望ましくはないですが、エラー対策を入れなくても動くことは動きます
![](https://analytic-vba.com/wp/wp-content/uploads/2021/11/image-152.png)
<まとめ>
今回はMicrosoft社の無料RPAである「Power Automate Desktop」を使用して「PDFを結合・分解」するところを紹介しました
もちろんエクセルVBAなどでも同じ事はできますが、開発や修正を考えると段違いにRPAを使用した方が早いですね
これはもう、知っているか知っていないかで差が段違いにつく世界だと思います
業務削減の必要性を感じている人はぜひ、RPAを研究して見るといいと思います