← 手順一覧へ戻る
Power Automate Desktopフォルダー初心者向け

サブフォルダーの一覧を取得する(直下・深い階層を図解)

フォルダーの階層図を使い、直下だけなら3件、深い階層も含めると4件になる例を確認します。0件・ファイル除外・取得エラーも区別します。

画面上の名前は、表示言語やバージョンによって異なる場合があります。Desktopの例は、フロー作成時に「Power Fx を有効にする」をオフにした標準構文です。Power Fx対応フローでは式・変数参照・インデックスの書き方が異なります。このページでは変数を %変数名% と表記します。出力変数の名前を入力する欄では、前後の % は付けません。

実行前に確認

  • このフローは取得と画面表示のみです。名前変更・移動・削除は行いません。親フォルダー自身とファイルは、Foldersの項目に入りません。
  • Foldersはフォルダーオブジェクトのリストです。%CurrentFolder.Name% は末尾の名前(例:2026)、%CurrentFolder.FullName% は完全なパスです。同名のフォルダーを取り違えないよう、確認にはFullNameを使います。
  • 0件は、取得が成功したうえで一致するサブフォルダーがない場合です。親フォルダーがない・アクセスできない等の取得エラーは0件分岐ではありません。既定のエラー停止を保ち、実行履歴で失敗したアクションとパスを確認します。権限を追加したり、原因を調べず管理者として実行したりしません。
  • オンでは下の階層まで調べるため、広い共有フォルダーやドライブ全体を最初の対象にしないでください。検索順や処理時間を固定値として想定せず、小さい練習用フォルダーで確認します。
  • この例はローカルで手動実行する練習です。クラウド接続・共有フォルダー接続は使いません。組織の利用許可とライセンスを確認し、クラウドからの起動や無人実行には別途の前提・ライセンスがある点に注意してください。

1使うアクション

  1. アクション 1フォルダー内のサブフォルダーを取得練習用の親フォルダー → Folders
  2. アクション 2メッセージを表示取得件数:%Folders.Count%
  3. アクション 3If%Folders.Count% = 0
  4. アクション 4メッセージを表示対象フォルダーは0件です
  5. アクション 5Else
  6. アクション 6For each%Folders% → CurrentFolder
  7. アクション 7メッセージを表示%CurrentFolder.FullName%
  8. アクション 8EndFor each の終わり
  9. アクション 9EndIf の終わり

図で見る処理のイメージ

概念図

処理例:練習フォルダーを読み取り、件数と各フォルダーの完全なパスを表示します。同じ入力で探索範囲だけを切り替えて比べます。

「サブフォルダーを含める」で、どこまで探す?

入力:練習用フォルダー

FolderDemo 親自身は対象外

  • 📁 Input 直下
    • 📁 2026 深い階層
    • 📄 sample.csv 対象外:ファイル
  • 📁 Output 直下・中身は空
  • 📁 Archive 直下
  • 📄 memo.txt 対象外:ファイル
出力:Foldersの中身
オフ → 3件

Input / Output / Archive

親のすぐ下のフォルダーだけ
オン → 4件

Input / Output / Archive
+ Input\2026

深い階層のフォルダーも加わる

比較のため親からの相対パスで表示。実際のフローはFullNameで完全なパスを表示します。順番は固定しません。

取得に成功したら、件数で分岐

0件 → 「対象フォルダーは0件です」
1件以上 → For eachでパスを1件ずつ表示

フォルダーは📁、ファイルは📄と文字で区別しています。取得エラーはこの0件分岐に進まず、既定の設定では停止します。
結果の例

オフなら直下の3件、オンならInput内の2026も加えた4件。ファイルはどちらでも対象外です。

狭い画面では表を横にスクロールして、条件と分岐結果を比べられます。

同じ練習フォルダーで比較する期待値(実機の実行結果ではありません)
条件Folders.Count画面に出る内容・分岐
*/オフ3Input、Output、Archiveの完全なパスを各1回
*/オン4上の3件とInput\2026の完全なパスを各1回
Z*/オフ0対象フォルダーは0件です。各パスの表示はしない
親を空のOutputに変更/*/オフ0対象フォルダーは0件です。Output自身は含めない
存在しない親を指定取得エラー既定の設定では停止。0件のメッセージは表示しない

架空の入力と設定から説明した期待値です。実際のPower Automateフローを実行して確認した結果ではありません。件数だけでなく、パスの中身も照合してください。

設定と処理を説明する模式図です。実際の設定画面や実行結果のスクリーンショットではありません。

2実際の設定内容

入力する値・操作手順を確認する9ステップの設定と確認方法
  1. 1

    準備:WindowsのPower Automate for desktopで、Power Fxをオフにした練習用デスクトップフローを作り、手動で実行します。自分が読み取れるローカルの練習場所を使います。この例は C:\Work\FolderDemo。そこを作成できない場合は、既存の権限で利用できる場所に置き換えます。

  2. 2

    エクスプローラーで親フォルダーの直下に Input、Output、Archive の3フォルダーを作り、Inputの中に2026を作ります。親の直下に memo.txt、Inputの中に sample.csv という空の練習ファイルを置きます。既存の業務ファイルは変更しません。

  3. 3

    「フォルダー内のサブフォルダーを取得」:フォルダー=C:\Work\FolderDemo、フォルダーフィルター=*、サブフォルダーを含める=オフ。取得結果の変数名を Folders にします。パス欄に引用符は付けません。

  4. 4

    詳細設定:並べ替えはなしのままで構いません。図の並び順は保証しません。サブフォルダーへのアクセス拒否時に失敗する設定は既定のオンを保ち、読み取れない場所を黙って除外しません。

  5. 5

    取得アクションの直後に「メッセージを表示」を置き、本文を「取得件数:%Folders.Count%」にします。ボタンはOK、自動的に閉じる=オフにします。以下のメッセージも同じ設定です。

  6. 6

    If:左側=%Folders.Count%、演算子=等しい、右側=数値の0。Ifの内側に「メッセージを表示」で「対象フォルダーは0件です」を表示します。

  7. 7

    Elseの内側にFor eachを追加し、反復処理する値=%Folders%、現在の項目=CurrentFolder。その内側の「メッセージを表示」に %CurrentFolder.FullName% を入れます。For eachとIfのEndをそれぞれ確認します。

  8. 8

    最初はサブフォルダーを含める=オフで実行します。件数の3を確認してOKを押すと、3つの完全なパスを1件ずつ表示します。Input\2026と2つのファイルは出ません。表示するたびにOKを押すまで次に進みません。

  9. 9

    次に取得アクションだけをオンへ切り替え、先頭から実行し直します。件数は4、Input\2026も対象です。フィルターを変える練習ではオフに戻し、Z*で0件を確認します。終わったらフィルターを*へ戻します。

Microsoft公式ページで確認する

設定を確認できる公式資料