

「フォルダーが存在する場合」アクションについて
フォルダーが存在するか・しないかを確認してから処理を実行したい時があります。そんな時に使えるのが「フォルダーが存在する場合」アクションです。
「フォルダーが存在する場合」アクションで下記のようなフローが作成できます。
- 「FolderA」フォルダーが存在したら「FolderA」フォルダーを削除する。
- 「FolderA」フォルダーが存在したら「FolderA」フォルダーの中身を全部取得する。
- 「FolderA」フォルダーが存在しなかったら「FolderA」フォルダーを作成する。

この「フォルダーが存在する場合」アクションを使っていくつかフローを作成してみます!
フォルダーが存在しない場合にフォルダ―を作成する方法
デスクトップ上にtestフォルダーが存在しない場合、testフォルダーを作成するフローを作成します。


▲「フォルダー」グループの中の「フォルダーが存在する場合」アクションを追加します。

▲パラメータを入力します。
- フォルダーが次の場合:存在しない
- フォルダーパス:フォルダーのパスを入力します。ここではC:\Users\user\Desktop\testと入力しました。
「フォルダーが次の場合」のパラメータは「存在しない」か「存在する」を選択できます。フォルダーが存在しないときに処理を実行するのか、存在しないときに処理を実行する


▲「フォルダーが存在する場合」アクションをドラッグアンドドロップすると「End」というアクションも同時に追加されます。この2つのアクションの間に「フォルダーが存在しない場合」に実行したいアクションを追加します。

▲「フォルダー」グループの中の「フォルダーの作成」アクションを追加します。「フォルダーが存在する場合」アクションと「End」アクションの間に追加するように注意してください。

▲「フォルダーの作成」アクションのパラメータを入力します。
- 新しいフォルダーを次の場所に作成:C:¥Users¥user¥Desktop¥
- 新しいフォルダー名:test
アクションを何回か実行してみると次の結果になります。
- 1回目の実行結果
- testフォルダが存在しないためtestフォルダが作成された。
- 2回目以降の実行結果
- testフォルダが存在するため「フォルダの作成」アクションは実行されずにスキップされた。
Robinソースコード
IF (Folder.IfFolderExists.DoesNotExist Path: $'''C:\\Users\\user\\Desktop\\test''') THEN Folder.Create FolderPath: $'''C:\\Users\\user\\Desktop\\''' FolderName: $'''test''' Folder=> NewFolder END
フォルダーが存在する場合にフォルダー内のファイルを取得する方法
testフォルダーが存在する場合に、フォルダー内のファイルを取得するフローを作成します。


▲「フォルダー」グループの中の「フォルダーが存在する場合」アクションを追加します。


▲「フォルダーが存在する場合」アクションをドラッグアンドドロップすると「End」というアクションも同時に追加されます。この2つのアクションの間に「フォルダーが存在する場合」に実行したいアクションを追加します。

▲「フォルダー」グループの中の「フォルダ―内のファイルを取得」アクションを追加します。

▲パラメータを入力します。
- フォルダー:フォルダーのパスを指定します。ここではC:\Users\user\Desktop\testと入力します。
- ファイルフィルター:*
ファイルフィルターに「*」を入力するとすべてのファイルを取得します。例えばテキストファイルだけを取得する場合は「*.txt」と入力します。
フローを実行すると下記のような結果になります。
- testフォルダーが無い場合
- 「フォルダー内のファイルを取得」アクションはスキップされます。Files変数の中身は空っぽです。
- testフォルダーが存在する場合
- 「フォルダー内のファイルを取得」アクションが実行されます。Files変数の中身にtestフォルダーの情報が取得できます。
Robinソースコード
IF (Folder.IfFolderExists.Exists Path: $'''C:\\Users\\user\\Desktop\\test''') THEN Folder.GetFiles Folder: $'''C:\\Users\\user\\Desktop\\test''' FileFilter: $'''*''' IncludeSubfolders: False FailOnAccessDenied: True SortBy1: Folder.SortBy.NoSort SortDescending1: False SortBy2: Folder.SortBy.NoSort SortDescending2: False SortBy3: Folder.SortBy.NoSort SortDescending3: False Files=> Files 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円弱)の価格になります。頻繁にセールを実施しているので絶対にセール時に購入してくださいね。満足がいかなければ返金保証制度がありますので安心してご購入いただけます。