【Power Automate Desktop】エクセルワークシートの値リストからフォルダを作成
- 1.やりたいこと
- 2.事前準備
- 3.実践(1)Excelの起動 ~ Excelワークシートdataの読み取り
- 4.補足 ~3.(1)実行動作確認~
- 5.実践(2)ループ処理 For each でフォルダ作成
- 6.フロー実行
1.やりたいこと
下図の通り、エクセルのワークシート A列に入力された値のリスト分のフォルダを作成する処理をPowerAutomateDesktopでフローを作成し実行します。単純な処理ですがPADの練習としてはよいのではないかと思います。
2.事前準備
今回は、作成したフローを継続的に使用することを想定して以下条件としました。
事前にPCのデスクトップに「TEST_Folder」という名前のフォルダを準備し、フローで作成したフォルダはこの中に入るようにします。
また、読み込み元のエクセルファイルを「TEST_File.xlsx」の名前で同フォルダに保管しておきます。
※上記フォルダ、エクセルファイルの名称はなんでも構いません。
エクセルファイルの中身は次の通り。A列に入力されて値をフォルダ作成対象としますので、A1セル以下に入力しておきます。今回は、連番+_+47都道府県名としました。
※下図は、A列を2つに分けて表示しています。
3.実践(1)Excelの起動 ~ Excelワークシートdataの読み取り
PowerAutomateDesktop(プレビュー)から 新しいフローをクリックします。
任意のフロー名を入力して作成をクリックします。
まず、エクセルファイルからデータを読込むためのフローを作っていきます。
画面左のアクションから、Excel → Excelの起動をダブルクリック(又は右へドラッグ)します。
Excelの起動:次のドキュメントを開く を選択します。
ドキュメント パス: 右のファイルの選択ボタンをクリックし、TEST_Folderの中のTEST_File.xlsx を選択します。(又は直接パスを入力。)
インスタンスを表示する: エクセルを表示する必要はないのでオフにします。
読み取り専用として開く:どちらでも構いませんが、オープンエラーとならないようオンとしています。
詳細はデフォルトのままでよいので、これで保存をクリックします。
これにより、変数 ExcelInstance が生成されます。
Excel → Excelワークシートから最初の空の列や行を取得 をダブルクリックします。
これはワークシートからデータの範囲(最終行)を取得するためのアクションです。
Excelインスタンス:デフォルトで%ExcelInstance%が入るのでそのまま保存します。
変数 FirstFreeColumn と FirstFreeRow が生成されます。今回使うのは後者のみです。
Excel → Excelワークシートから読み取り をダブルクリックします。
Excelインスタンス: %ExcelInstance%(デフォルト値)
取得: セル範囲の値 を選択
先頭列: 1 (A列)
先頭行: 1 (1行目)
最終列: 1 (A列)
最終行: %FirstFreeRow -1%
※{X}をクリックし、FirstFreeRow を選択し、末尾に -1 と入力します。
FirstFreeRowは最初の空白行であり、データの最終行はその1行前と
なるためです。
保存をクリックします。
変数 ExcelData で生成されます。
Excel → Excelを閉じる をダブルクリックします。
Excelインスタンス:%ExcelInstance%(デフォルト値)
Excelを閉じる前:ドキュメントを保存しない を選択します。
保存をクリックします。
4.補足 ~3.(1)実行動作確認~
ここは補足となりますので飛ばしても構いません。
下図は前項までに作成したフローです。全体としては途中段階ですが、ここまでで一度フローを実行してみます。
左上の実行ボタン▷ をクリックします。
インスタンスの表示をオフにしているので見た目のエクセルの動きはありませんが、フロー実行が完了すると、画面右の変数のフロー変数に中身が入ったことがわかります。試しに、前項最後に生成した変数 ExcelData をダブルクリックしてみます。
すると、エクセルから読み取ったDatatalbeが表示されます。下図は途中で見切れていますが、47都道府県分が変数としてきちんと取り込めたことがわかりました。
5.実践(2)ループ処理 For each でフォルダ作成
さて、フロー作成に戻ります。アクションから
ループ → For each をダブルクリックします。
パラメーターの選択
反復処理を行う値: 右の{X}をクリックし、ExcelData を選択します。
保存をクリックします。
変数 CurrentItem が生成されます。
フォルダー → フォルダーの作成 をダブルクリックします。
新しいフォルダーを次の場所に作成:
右端のフォルダーの選択ボタンをクリックし、TEST_Folder を選択しOKをクリックします。(又は直接パスを入力)
新しいフォルダー名: 右端の{X}をクリックし、CurrentItem をクリックします。
保存をクリックします。ここまででフローの作成は完了です。
6.フロー実行
下図が作成したフロー全体です。左上の実行ボタン▷をクリックし実行してみます。
For each のところで47フォルダ分の処理が繰り返され、下図の通り47都道府県分のフォルダがTEST_Folderの中に作成されました。この数で実行時間は20秒でしたが、フローを保存し閉じた状態で実行した場合は5秒ほどで完了しました。
以上となります。