サブフォルダーの一覧を取得する(直下・深い階層を図解)
フォルダーの階層図を使い、直下だけなら3件、深い階層も含めると4件になる例を確認します。0件・ファイル除外・取得エラーも区別します。
画面上の名前は、表示言語やバージョンによって異なる場合があります。Desktopの例は、フロー作成時に「Power Fx を有効にする」をオフにした標準構文です。Power Fx対応フローでは式・変数参照・インデックスの書き方が異なります。このページでは変数を %変数名% と表記します。出力変数の名前を入力する欄では、前後の % は付けません。
実行前に確認
- このフローは取得と画面表示のみです。名前変更・移動・削除は行いません。親フォルダー自身とファイルは、Foldersの項目に入りません。
- Foldersはフォルダーオブジェクトのリストです。%CurrentFolder.Name% は末尾の名前(例:2026)、%CurrentFolder.FullName% は完全なパスです。同名のフォルダーを取り違えないよう、確認にはFullNameを使います。
- 0件は、取得が成功したうえで一致するサブフォルダーがない場合です。親フォルダーがない・アクセスできない等の取得エラーは0件分岐ではありません。既定のエラー停止を保ち、実行履歴で失敗したアクションとパスを確認します。権限を追加したり、原因を調べず管理者として実行したりしません。
- オンでは下の階層まで調べるため、広い共有フォルダーやドライブ全体を最初の対象にしないでください。検索順や処理時間を固定値として想定せず、小さい練習用フォルダーで確認します。
- この例はローカルで手動実行する練習です。クラウド接続・共有フォルダー接続は使いません。組織の利用許可とライセンスを確認し、クラウドからの起動や無人実行には別途の前提・ライセンスがある点に注意してください。
1使うアクション
- アクション 1フォルダー内のサブフォルダーを取得練習用の親フォルダー → Folders
- アクション 2メッセージを表示取得件数:%Folders.Count%
- アクション 3If%Folders.Count% = 0
- アクション 4メッセージを表示対象フォルダーは0件です
- アクション 5Else
- アクション 6For each%Folders% → CurrentFolder
- アクション 7メッセージを表示%CurrentFolder.FullName%
- アクション 8EndFor each の終わり
- アクション 9EndIf の終わり
図で見る処理のイメージ
概念図処理例:練習フォルダーを読み取り、件数と各フォルダーの完全なパスを表示します。同じ入力で探索範囲だけを切り替えて比べます。
「サブフォルダーを含める」で、どこまで探す?
入力:練習用フォルダー
FolderDemo 親自身は対象外
- 📁 Input 直下
- 📁 2026 深い階層
- 📄 sample.csv 対象外:ファイル
- 📁 Output 直下・中身は空
- 📁 Archive 直下
- 📄 memo.txt 対象外:ファイル
出力:Foldersの中身
Input / Output / Archive
親のすぐ下のフォルダーだけInput / Output / Archive
+ Input\2026
比較のため親からの相対パスで表示。実際のフローはFullNameで完全なパスを表示します。順番は固定しません。
0件 → 「対象フォルダーは0件です」
1件以上 → For eachでパスを1件ずつ表示
オフなら直下の3件、オンならInput内の2026も加えた4件。ファイルはどちらでも対象外です。
狭い画面では表を横にスクロールして、条件と分岐結果を比べられます。
| 条件 | Folders.Count | 画面に出る内容・分岐 |
|---|---|---|
| */オフ | 3 | Input、Output、Archiveの完全なパスを各1回 |
| */オン | 4 | 上の3件とInput\2026の完全なパスを各1回 |
| Z*/オフ | 0 | 対象フォルダーは0件です。各パスの表示はしない |
| 親を空のOutputに変更/*/オフ | 0 | 対象フォルダーは0件です。Output自身は含めない |
| 存在しない親を指定 | 取得エラー | 既定の設定では停止。0件のメッセージは表示しない |
架空の入力と設定から説明した期待値です。実際のPower Automateフローを実行して確認した結果ではありません。件数だけでなく、パスの中身も照合してください。
設定と処理を説明する模式図です。実際の設定画面や実行結果のスクリーンショットではありません。
2実際の設定内容
入力する値・操作手順を確認する9ステップの設定と確認方法
- 1
準備:WindowsのPower Automate for desktopで、Power Fxをオフにした練習用デスクトップフローを作り、手動で実行します。自分が読み取れるローカルの練習場所を使います。この例は C:\Work\FolderDemo。そこを作成できない場合は、既存の権限で利用できる場所に置き換えます。
- 2
エクスプローラーで親フォルダーの直下に Input、Output、Archive の3フォルダーを作り、Inputの中に2026を作ります。親の直下に memo.txt、Inputの中に sample.csv という空の練習ファイルを置きます。既存の業務ファイルは変更しません。
- 3
「フォルダー内のサブフォルダーを取得」:フォルダー=C:\Work\FolderDemo、フォルダーフィルター=*、サブフォルダーを含める=オフ。取得結果の変数名を Folders にします。パス欄に引用符は付けません。
- 4
詳細設定:並べ替えはなしのままで構いません。図の並び順は保証しません。サブフォルダーへのアクセス拒否時に失敗する設定は既定のオンを保ち、読み取れない場所を黙って除外しません。
- 5
取得アクションの直後に「メッセージを表示」を置き、本文を「取得件数:%Folders.Count%」にします。ボタンはOK、自動的に閉じる=オフにします。以下のメッセージも同じ設定です。
- 6
If:左側=%Folders.Count%、演算子=等しい、右側=数値の0。Ifの内側に「メッセージを表示」で「対象フォルダーは0件です」を表示します。
- 7
Elseの内側にFor eachを追加し、反復処理する値=%Folders%、現在の項目=CurrentFolder。その内側の「メッセージを表示」に %CurrentFolder.FullName% を入れます。For eachとIfのEndをそれぞれ確認します。
- 8
最初はサブフォルダーを含める=オフで実行します。件数の3を確認してOKを押すと、3つの完全なパスを1件ずつ表示します。Input\2026と2つのファイルは出ません。表示するたびにOKを押すまで次に進みません。
- 9
次に取得アクションだけをオンへ切り替え、先頭から実行し直します。件数は4、Input\2026も対象です。フィルターを変える練習ではオフに戻し、Z*で0件を確認します。終わったらフィルターを*へ戻します。
- 対象環境
- Power Automate for desktop(Windows)
- 更新日
- 2026年10月14日