フォルダとサブフォルダ内のすべてのファイルをワークシートにリストするにはどうすればよいですか?
多数のファイルがさまざまなフォルダやサブフォルダに保存されている場合、追跡、カタログ作成、または一括処理のためにすべてのファイル名の包括的なリストを作成する必要が時々あります。しかし、Excelには、サブフォルダを含むフォルダ内のすべてのファイル名をワークシートにリストするための直接的な組み込み機能はありません。この制限は、特にフォルダ構造が複雑だったり、ファイルが頻繁に更新される場合に課題となることがあります。幸いなことに、Excel内でこのタスクを効率的に達成できる実用的で信頼性の高い方法があります。
このガイドでは、サブフォルダ内も含めたすべてのファイル名をExcelワークシートに直接リストするためのいくつかのアプローチと、詳細な操作手順、パラメータの説明、一般的な落とし穴を避けるためのヒントをご紹介します。これらのソリューションは、ファイル管理プロセスを合理化し、さまざまな専門的または個人的な整理タスクに適応できます。
Power Queryを使ってフォルダとサブフォルダ内のすべてのファイル名を迅速かつ簡単にリストする
Kutools for Excelを使ってフォルダとサブフォルダ内のすべてのファイル名を迅速かつ簡単にリストする
VBAコードを使用してフォルダとサブフォルダ内のすべてのファイル名をリストする
Power Queryを使ってフォルダとサブフォルダ内のすべてのファイル名を迅速かつ簡単にリストする
最近のバージョンのExcelでは、選択した属性を含むフォルダ内のファイルリストを読み込むために、組み込みの「データの取得(Power Query)」機能を使用できます。
1. [データ] → [データの取得] → [ファイルから] → [フォルダから] へ移動します。
2. すべてのファイルをリストしたいフォルダを選択し、[開く] をクリックします。
選択したフォルダ内のすべてのファイル、およびサブフォルダ内のファイルがテーブルにリストされます。
3. リストをワークシートに読み込むには、[読み込み/読み込み先] をクリックします。
Kutools for Excelを使ってフォルダとサブフォルダ内のすべてのファイル名を迅速かつ簡単にリストする
VBAはシンプルなリスト生成には優れていますが、コーディングやExcelのマクロセキュリティ設定に不慣れなユーザーにとっては少し不便に感じるかもしれません。さらに、ファイル名だけでなく、サイズ、タイプ、作成日時や変更日時など、他の詳細な属性も一度に表示したい場合は、Kutools for Excel アドインが直感的で強力なソリューションを提供します。
Kutools for Excel の「ファイル名リスト」ツールを使うと、数回のマウスクリックだけで選択したフォルダとそのすべてのサブフォルダからファイル情報を収集できます。このアプローチは、ファイルタイプによるフィルタリング、簡単なアクセスのためのハイパーリンクの作成、または非表示のファイルやフォルダを結果に含めるといった柔軟性が必要なユーザーにとって特に有益です。これは、文書アーカイブの管理、マルチメディアライブラリの追跡、またはバックアップや監査目的のデータインベントリ準備に特に役立ちます。以下のステップに進む前に、Kutools for Excel のダウンロードとインストールが必要です。
インストールが完了したら、「ファイル名リスト」機能を使用するために次の手順に従ってください:
1. Excelツールバーの「エンタープライズ」タブをクリックし、「インポート&エクスポート」を選択して、メニューから「ファイル名リスト」を選択します。これにより、設定ダイアログボックスが開きます。
2. 「ファイル名リスト」ダイアログボックス内では、ニーズに合わせて以下のオプションを指定できます:
A:フォルダアイコンをクリック スキャンしたいフォルダを選択します。必要に応じて、ツールは自動的にサブフォルダを含めます。
B: 「ファイルの種類」セクションで、すべてのファイルを含めるために「すべてのファイル」を選択するか、特定のファイル拡張子(例:*.xlsx、*.docxなど)を指定して特定のタイプのファイルのみを対象にすることができます。
C: 「ファイルサイズの単位」セクションでは、ファイルサイズを理解しやすくするために、バイト、KB、MBなどの単位を選択できます。
注意: サブフォルダ内のすべてのファイル名を含めるには、「サブディレクトリ内のファイルを含める」オプションを必ずチェックしてください。さらに、「非表示ファイルとフォルダを含める」オプションをチェックすると、それらもリストに含めることができます。「ハイパーリンクを作成する」オプションを選択すると、各ファイルとフォルダへのクリック可能なリンクが自動的に生成され、ワークシートから直接ファイルにアクセスするのが便利になります。リストにファイルが欠けている場合は、フィルタの選択内容を確認し、ファイルが権限やシステムの制限によって制約されていないことを確認してください。
3. [OK] をクリックしてファイルリストを生成します。選択したフォルダとそのサブフォルダ内のすべてのファイルが新しいワークシートに表示され、選択したファイル属性(フルパス、サイズ、タイプ、作成日時、変更日時など)も一緒に表示されます。これにより、明確で整理された概要が得られ、Excelの使い慣れたフィルタリングや並べ替え機能を利用してデータをさらに管理することができます。
この「ファイル名リスト」ユーティリティの詳細はこちらをクリックしてください。
今すぐKutools for Excelをダウンロードして試してみてください!
VBAコードを使用してフォルダとサブフォルダ内のすべてのファイル名をリストする
デフォルトでは、Excelにはフォルダとそのサブフォルダから再帰的にファイルをリストするネイティブ関数は含まれていません。しかし、VBA(Visual Basic for Applications)を使用してこのプロセスを自動化することができます。VBAを利用することで、高度なユーザーはExcelの機能を拡張でき、出力をカスタマイズする柔軟性を得られます。たとえば、ファイル名だけではなく、フルパスやその他のプロパティも取得できます。
このソリューションは、VBAエディタに慣れていて、定期的に同様のファイルリスト作成手順を自動化する必要がある場合に特に適しています。また、アドインをインストールせずにExcel環境を整理しておきたい方にも役立ちます。ただし、VBAマクロはExcelでマクロを有効にする必要があり、高セキュリティ環境では制限される場合があります。マクロを実行する前に必ずワークブックを保存し、未保存の変更があった場合のデータ損失を防ぐようにしてください。
1. すべてのファイル名をリストしたい新しいワークシートを作成またはアクティブ化します。重要なデータを上書きしないように、ワークシートが空であることを確認してください。
2. ALT + F11 を押して、Microsoft Visual Basic for Applications (VBA) エディタウィンドウを開きます。
3. VBAウィンドウで、メニューバーの「挿入」をクリックし、「モジュール」を選択します。この操作により、VBAコードを貼り付けられる新しいモジュールが挿入されます。
VBAコード: フォルダとサブフォルダ内のすべてのファイル名をリストする
Sub MainList()
'Updateby Extendoffice
Set folder = Application.FileDialog(msoFileDialogFolderPicker)
If folder.Show <> -1 Then Exit Sub
xDir = folder.SelectedItems(1)
Call ListFilesInFolder(xDir, True)
End Sub
Sub ListFilesInFolder(ByVal xFolderName As String, ByVal xIsSubfolders As Boolean)
Dim xFileSystemObject As Object
Dim xFolder As Object
Dim xSubFolder As Object
Dim xFile As Object
Dim rowIndex As Long
Set xFileSystemObject = CreateObject("Scripting.FileSystemObject")
Set xFolder = xFileSystemObject.GetFolder(xFolderName)
rowIndex = Application.ActiveSheet.Range("A65536").End(xlUp).Row + 1
For Each xFile In xFolder.Files
Application.ActiveSheet.Cells(rowIndex, 1).Formula = xFile.Name
rowIndex = rowIndex + 1
Next xFile
If xIsSubfolders Then
For Each xSubFolder In xFolder.SubFolders
ListFilesInFolder xSubFolder.Path, True
Next xSubFolder
End If
Set xFile = Nothing
Set xFolder = Nothing
Set xFileSystemObject = Nothing
End Sub
Function GetFileOwner(ByVal xPath As String, ByVal xName As String)
Dim xFolder As Object
Dim xFolderItem As Object
Dim xShell As Object
xName = StrConv(xName, vbUnicode)
xPath = StrConv(xPath, vbUnicode)
Set xShell = CreateObject("Shell.Application")
Set xFolder = xShell.Namespace(StrConv(xPath, vbFromUnicode))
If Not xFolder Is Nothing Then
Set xFolderItem = xFolder.ParseName(StrConv(xName, vbFromUnicode))
End If
If Not xFolderItem Is Nothing Then
GetFileOwner = xFolder.GetDetailsOf(xFolderItem, 8)
Else
GetFileOwner = ""
End If
Set xShell = Nothing
Set xFolder = Nothing
Set xFolderItem = Nothing
End Function
コードを実行する前に、使用されている関数や変数についてコメントを確認しておきましょう。リストするデータ(フルパスやファイルタイプなど)を変更したい場合は、それに応じてコードを調整する必要があります。
4. コードをモジュールウィンドウに貼り付けたら、F5キーを押してコードを実行します。マクロダイアログボックスが表示されますので、MainListマクロ名を選択し、「実行」をクリックします。似た名前の別のマクロがある場合は、正しいものを選択してください。
5. 表示される「参照」ダイアログで、リストしたいファイルとサブフォルダのあるターゲットフォルダに移動して選択します。正しい開始フォルダを選択することが重要です。マクロはすべてのネストされたサブフォルダから再帰的にファイルを取得します。
6. 目的のフォルダを指定後、「OK」をクリックします。マクロは現在のフォルダとそのすべてのサブディレクトリを処理し、セルA2から始まる現在のワークシートに出力します。ファイル数やサブフォルダ構造の深さにより、このプロセスには数秒以上かかる場合があります。結果として得られるリストは、フォルダ内容の詳細なビューを提供します。
![]() |
![]() |
![]() |
エラーが発生した場合は、選択したフォルダが存在し、ファイルが含まれていることをもう一度確認し、Excelのセキュリティ設定でマクロが有効になっていることも確認してください。大規模なフォルダ構造やネットワークドライブを処理している場合、処理時間が増加し、タイムアウトやメモリエラーが発生する可能性があります。このような場合は、マクロをより小さなサブフォルダで実行してみてください。
VBAは基本的なファイルリストには効果的ですが、デフォルトではファイルサイズ、変更日、またはファイル所有者などの属性は一般にキャプチャされません。これらの追加の詳細が必要な場合は、コードを編集するか、以下で説明されている別の方法を使用してください。
最良の結果を得るには、特にフォルダの内容が頻繁に変わる場合は、定期的にファイルリストを確認して更新してください。特にネットワーク上の場所や共有ドライブをスキャンする際は、必要な権限があることを常に確認してください。予期しない結果が発生した場合は、隠しファイル、同期遅延、ファイルアクセス制限などの問題がないか確認してください。ファイルやフォルダがスキップされた場合は、Excelを管理者として実行するか、簡略化されたフォルダ構造を使用してみてください。
最適な方法を選ぶには、自分の快適さ、特定の要件、およびこのタスクを行う頻度に依存します。どの方法にも利点があります。VBAを使えばカスタマイズができ、Kutoolsは便利で多くの属性を扱え、Windows/Excelの組み込み機能は外部ツールなしで最もシンプルな解決策です。問題が続く場合は、Excelやシステムのドキュメントを参照して追加のトラブルシューティングを行ってください。
最高のオフィス業務効率化ツール
🤖 | Kutools AI Aide:データ分析を革新します。主な機能:Intelligent Execution|コード生成|カスタム数式の作成|データの分析とグラフの生成|Kutools Functionsの呼び出し…… |
人気の機能:重複の検索・ハイライト・重複をマーキング|空白行を削除|データを失わずに列またはセルを統合|丸める…… | |
スーパーLOOKUP:複数条件でのVLookup|複数値でのVLookup|複数シートの検索|ファジーマッチ…… | |
高度なドロップダウンリスト:ドロップダウンリストを素早く作成|連動ドロップダウンリスト|複数選択ドロップダウンリスト…… | |
列マネージャー:指定した数の列を追加 |列の移動 |非表示列の表示/非表示の切替| 範囲&列の比較…… | |
注目の機能:グリッドフォーカス|デザインビュー|強化された数式バー|ワークブック&ワークシートの管理|オートテキスト ライブラリ|日付ピッカー|データの統合 |セルの暗号化/復号化|リストで電子メールを送信|スーパーフィルター|特殊フィルタ(太字/斜体/取り消し線などをフィルター)…… | |
トップ15ツールセット:12 種類のテキストツール(テキストの追加、特定の文字を削除など)|50種類以上のグラフ(ガントチャートなど)|40種類以上の便利な数式(誕生日に基づいて年齢を計算するなど)|19 種類の挿入ツール(QRコードの挿入、パスから画像の挿入など)|12 種類の変換ツール(単語に変換する、通貨変換など)|7種の統合&分割ツール(高度な行のマージ、セルの分割など)|… その他多数 |
Kutools for ExcelでExcelスキルを強化し、これまでにない効率を体感しましょう。 Kutools for Excelは300以上の高度な機能で生産性向上と保存時間を実現します。最も必要な機能はこちらをクリック...
Office TabでOfficeにタブインターフェースを追加し、作業をもっと簡単に
- Word、Excel、PowerPointでタブによる編集・閲覧を実現。
- 新しいウィンドウを開かず、同じウィンドウの新しいタブで複数のドキュメントを開いたり作成できます。
- 生産性が50%向上し、毎日のマウスクリック数を何百回も削減!
全てのKutoolsアドインを一つのインストーラーで
Kutools for Officeスイートは、Excel、Word、Outlook、PowerPoint用アドインとOffice Tab Proをまとめて提供。Officeアプリを横断して働くチームに最適です。





- オールインワンスイート — Excel、Word、Outlook、PowerPoint用アドインとOffice Tab Proが含まれます
- 1つのインストーラー・1つのライセンス —— 数分でセットアップ完了(MSI対応)
- 一括管理でより効率的 —— Officeアプリ間で快適な生産性を発揮
- 30日間フル機能お試し —— 登録やクレジットカード不要
- コストパフォーマンス最適 —— 個別購入よりお得