フォルダー内のファイル名を一覧にする(拡張子・探索範囲を比較)
同じ練習フォルダーで、全ファイル・Excelだけ・サブフォルダー込みの件数を比較します。名前リストと完全なパス、0件と取得エラーの違いも確認します。
画面上の名前は、表示言語やバージョンによって異なる場合があります。Desktopの例は、フロー作成時に「Power Fx を有効にする」をオフにした標準構文です。Power Fx対応フローでは式・変数参照・インデックスの書き方が異なります。このページでは変数を %変数名% と表記します。出力変数の名前を入力する欄では、前後の % は付けません。
実行前に確認
- ファイル自体は変更しません。この手順は名前のリストを作るだけで、Excelやテキストファイルへ保存しません。ArchiveというフォルダーそのものはFilesの項目には入りません。
- Filesはファイルオブジェクトのリスト、FileNameListは取り出した名前のテキストのリストです。Nameは拡張子付きの名前、FullNameは完全なパスです。再帰検索で同名ファイルを区別するときはFullNameを使います。
- 0件は取得成功後に一致するファイルがない状態です。存在しないフォルダーや読み取り権限の不足による取得エラーとは異なります。既定のエラー停止を保ち、失敗したアクションとパスを実行履歴で確認します。無断で権限を追加したり、管理者実行へ切り替えたりしません。
- 新しいリストの作成を飛ばしてループだけ再実行すると、前回の一覧へ追加される場合があります。比較は先頭から実行します。広い共有フォルダーやドライブ全体では試さず、小さな練習場所から始めます。
- ローカルでの手動実行を想定し、クラウド接続は使いません。組織の利用許可とライセンスを確認してください。クラウドからの起動や無人実行には別途の前提・ライセンスがあります。
1使うアクション
- アクション 1フォルダー内のファイルを取得*/サブフォルダーを含める=オフ → Files
- アクション 2新しいリストの作成空のFileNameListに初期化
- アクション 3For each%Files% → CurrentFile
- アクション 4項目をリストに追加%CurrentFile.Name% → %FileNameList%
- アクション 5EndFor eachの終わり
- アクション 6メッセージを表示一覧の件数:%FileNameList.Count%
図で見る処理のイメージ
概念図入力:Input直下に見積.xlsx・報告.pdf、Archiveの中に別の見積.xlsx。まず直下だけを読み取り、名前を一覧にします。
元のフォルダー
Input/見積.xlsx・報告.pdf・Archive(中に見積.xlsx)
取得する範囲
*+オフ:直下のファイル2件。Archive自身は対象外
結果のリスト
FileNameList:見積.xlsx、報告.pdf(2項目)
同じ入力でも、フィルターと探索範囲によって2件→1件→2件に変わります。順序ではなく件数と内容を照合します。
| 設定 | 件数 | FileNameListの内容・処理結果 |
|---|---|---|
| */オフ/Name | 2 | 見積.xlsx、報告.pdf |
| *.xlsx/オフ/Name | 1 | 見積.xlsx(直下のみ) |
| *.xlsx/オン/Name | 2 | 見積.xlsx、見積.xlsx(別の場所・重複削除なし) |
| *.xlsx/オン/FullName | 2 | C:\Work\Input\見積.xlsx、C:\Work\Input\Archive\見積.xlsx |
| *.csv/オフ/Name | 0 | 空のリスト。ループ内は0回、件数表示は実行 |
| 存在しないフォルダー | 取得エラー | 既定では停止。0件の結果として扱わない |
架空の入力と設定から説明した期待値です。実際のPower Automateフローを実行した結果ではありません。
設定と処理を説明する模式図です。実際の設定画面や実行結果のスクリーンショットではありません。
2実際の設定内容
入力する値・操作手順を確認する9ステップの設定と確認方法
- 1
準備:WindowsのPower Automate for desktopで、Power Fxをオフにした練習用フローを作ります。既存の権限で読み書きできる C:\Work\Input を使い、作れない場合は自分の練習場所へ置き換えます。ローカルで手動実行する例です。
- 2
入力例:Input直下に見積.xlsxと報告.pdfを置き、Input内にArchiveフォルダーを作って、その中にも見積.xlsxを置きます。どれも練習専用ファイルにします。内容は読み取らないため業務データは不要です。エクスプローラーで拡張子を表示し、見積.xlsx.xlsxなどになっていないか確認します。
- 3
「フォルダー内のファイルを取得」:フォルダー=C:\Work\Input、ファイルフィルター=*、サブフォルダーを含める=オフ、出力変数=Files。パスやフィルターには引用符を付けません。
- 4
詳細設定:並べ替えはなし。表の記載順は取得順を保証しません。サブフォルダーへのアクセス拒否時に失敗する設定は既定のオンを保ちます。
- 5
「新しいリストの作成」:出力名をFileNameListにします。For eachの前に置き、先頭から実行するたびに空の一覧を作ります。
- 6
For each:反復処理する値=%Files%、現在の項目=CurrentFile。内側の「項目をリストに追加」で追加する項目=%CurrentFile.Name%、追加先リスト=%FileNameList%にします。
- 7
For eachのEndの後へ「メッセージを表示」を置き、本文を「一覧の件数:%FileNameList.Count%」にします。OKボタン、自動的に閉じる=オフ。初回は2件を確認してOKを押し、終了後の変数ペインでFileNameListを開き、見積.xlsxと報告.pdfの2項目を照合します。
- 8
比較練習:フィルターだけを*.xlsxに変えて先頭から実行すると1件。次にサブフォルダーを含めるをオンにすると2件で、見積.xlsxが2項目になります。別の場所の同名ファイルです。完全なパスを見たい場合は追加する項目を%CurrentFile.FullName%に変えて、先頭から実行し直します。
- 9
0件の確認:サブフォルダーを含めるをオフ、フィルターを*.csvにして先頭から実行します。Filesが空なのでFor eachの内側は0回、FileNameListも空のまま、End後に一覧の件数:0を表示します。練習後は*とオフ、追加項目Nameへ戻します。
- 対象環境
- Power Automate for desktop(Windows)
- 更新日
- 2026年10月16日