この記事ではPower Automate for desktopで複数のファイルが格納されたフォルダの中から直近の数ファイルだけ開く方法について学習します。
今回のゴール
Excelファイルがいくつか格納されたフォルダがあります。Power Automate for desktopを使ってこの中から最新の4ファイルだけを開きます。
Power Automate for desktopフローの作成
フローを作成していきます。
▲パラメータを入力します。
- フォルダー:C:\Users\user\Desktop\Folder
- ファイルフィルター:*.xls*
- サブフォルダーを含める:オフ
- 並べ替え基準:最終変更日時
- 降順:
最新のファイルを取得する場合は、最終更新日で降順にソートして取得します。
変数の確認のためにフローを実行してみましょう。
▲フローを実行して「Files」変数の中身を確認してみます。「フォルダー内のファイルを取得」アクションが生成するFiles変数には上図のようにきれいに新しい順にファイルが整列して取得されています。これは最終日時で降順にソートする設定を行ったためです。
▲Filesに取得したファイルを一個取り出すにはインデックス(上図の左側の数字)を使います。たとえば一番上のファイルを取り出すときはインデックスは0番ですので「 %Files[0]%」と指定して呼び出します。
そして今回開きたいファイルはFilesの中で直近の4ファイルだけです(上図赤枠)。インデックスを使ってあらわすと下記の4つです。
- %Files[0]%
- %Files[1]%
- %Files[2]%
- %Files[3]%
ここまでわかればあとは上記の4つのExcelファイルを「Excelの起動」アクションで開くだけです。
「Excelの起動」アクションを4個追加するの?
もちろんそれでもOKだね。でもループ処理を使えばもっと効率的にスタイリッシュにフローを作ることができるよ。
▲パラメータを入力します。
- 開始値:0
- 終了:3
- 増分:1
回数を指定するループはFor eachではなくLoopアクションを使います。先ほど確認した通りインデックスは0から始まっていたので開始値は0とします。0から3までループを4回転させたいので終了値は3とします。増分は1とします。増分を1とした場合「0 > 1 > 2 > 3」とループし、2とした場合「0 > 2 > 4 > 6」となります。
▲パラメータを入力します。
- Excelの起動:次のドキュメントを開く
- ドキュメントパス:%Files[LoopIndex]%
- インスタンスを表示する:オン
ドキュメントパスに%Files[LoopIndex]%と指定することで0~3までの数字が LoopIndex に順番に入ってくるのでループのたびにファイルを1つずつ開くことができます。
- 1回目のループ:%Files[LoopIndex]% は、%Files[0]% です。
- 2回目のループ:%Files[LoopIndex]% は、%Files[1]% です。
- 3回目のループ:%Files[LoopIndex]% は、%Files[2]% です。
- 4回目のループ:%Files[LoopIndex]% は、%Files[3]% です。
このように%Files%変数のインデックスに LoopIndex変数を使うことで、「Excelの起動」アクションを1個追加するだけで希望の回数分実行できるの。
同じアクションを何個も追加するよりも見やすいしわかりやすいね!
アクションの数が減るってことは、フローに何か変更を加えなければいけなくなったときも、その分 対応箇所が減るから楽になるよ。ループは便利だから積極的に利用してみてね。
フローを実行します。最新のファイルが順番に4つ開けるか確認しましょう。
Robinソースコード
Folder.GetFiles Folder: $'''C:\\Users\\user\\Desktop\\Excelファイル格納フォルダ''' FileFilter: $'''*.xls*''' IncludeSubfolders: False FailOnAccessDenied: True SortBy1: Folder.SortBy.LastModified SortDescending1: True SortBy2: Folder.SortBy.NoSort SortDescending2: False SortBy3: Folder.SortBy.NoSort SortDescending3: False Files=> Files LOOP LoopIndex FROM 0 TO 3 STEP 1 Excel.LaunchExcel.LaunchAndOpen Path: Files[LoopIndex] Visible: True ReadOnly: False LoadAddInsAndMacros: False Instance=> ExcelInstance END
▲フローデザイナーに張り付けることでここで作成したフローを再現することができます。
まとめ
この記事では、特定のフォルダーの中の、直近数ファイルを開く方法について学習しました。
このブログではRPA・ノーコードツール・VBA/GAS/Pythonを使った業務効率化などについて発信しています。
参考になりましたらブックマーク登録お願いします!
Power Automate学習教材
▲Kindleと紙媒体両方提供されています。デスクトップフロー、クラウドフロー両方の解説がある書籍です。解説の割合としてはデスクトップフロー7割・クラウドフロー3割程度の比率となっています。両者の概要をざっくり理解するのにオススメです。
▲Power Automate for Desktopの基本をしっかり学習するのにオススメです。この本の一番のメリットはデモWebシステム・デモ業務アプリを実際に使ってハンズオン形式で学習できる点です。本と同じシステム・アプリを使って学習できるので、本と自分の環境の違いによる「よく分からないエラー」で無駄に躓いて挫折してしまう可能性が低いです。この点でPower Automate for desktopの一冊目のテキストとしてオススメします。著者は日本屈指のRPAエンジニア集団である『ロボ研』さんです。
▲Power Automate クラウドフローの入門書です。初心者の方には図解も多く一番わかりやすいかと個人的に思っています。
Microsoft 365/ Power Automate / Power Platform / Google Apps Script…
▲Udemyで数少ないPower Automateクラウドフローを主題にした講座です。セール時は90%OFF(1200円~2000円弱)の価格になります。頻繁にセールを実施しているので絶対にセール時に購入してくださいね。満足がいかなければ返金保証制度がありますので安心してご購入いただけます。