メインコンテンツへスキップ

Kutools for Office — 1つのスイート、5つのツールで、もっと多くのことを成し遂げましょう。

フォルダとサブフォルダ内のすべてのファイルをワークシートにリストするにはどうすればよいですか?

Author Xiaoyang Last modified

多数のファイルがさまざまなフォルダやサブフォルダに保存されている場合、追跡、カタログ作成、または一括処理のためにすべてのファイル名の包括的なリストを作成する必要が時々あります。しかし、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:フォルダアイコンをクリック a screenshot of the folder icon スキャンしたいフォルダを選択します。必要に応じて、ツールは自動的にサブフォルダを含めます。

B: 「ファイルの種類」セクションで、すべてのファイルを含めるために「すべてのファイル」を選択するか、特定のファイル拡張子(例:*.xlsx、*.docxなど)を指定して特定のタイプのファイルのみを対象にすることができます。

C: 「ファイルサイズの単位」セクションでは、ファイルサイズを理解しやすくするために、バイト、KB、MBなどの単位を選択できます。

注意: サブフォルダ内のすべてのファイル名を含めるには、「サブディレクトリ内のファイルを含める」オプションを必ずチェックしてください。さらに、「非表示ファイルとフォルダを含める」オプションをチェックすると、それらもリストに含めることができます。「ハイパーリンクを作成する」オプションを選択すると、各ファイルとフォルダへのクリック可能なリンクが自動的に生成され、ワークシートから直接ファイルにアクセスするのが便利になります。リストにファイルが欠けている場合は、フィルタの選択内容を確認し、ファイルが権限やシステムの制限によって制約されていないことを確認してください。

a screenshot of configuring the Filename List dialog box

3. [OK] をクリックしてファイルリストを生成します。選択したフォルダとそのサブフォルダ内のすべてのファイルが新しいワークシートに表示され、選択したファイル属性(フルパス、サイズ、タイプ、作成日時、変更日時など)も一緒に表示されます。これにより、明確で整理された概要が得られ、Excelの使い慣れたフィルタリングや並べ替え機能を利用してデータをさらに管理することができます。

a screenshot listing the details of files of the selected folder

この「ファイル名リスト」ユーティリティの詳細はこちらをクリックしてください。

今すぐ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マクロ名を選択し、「実行」をクリックします。似た名前の別のマクロがある場合は、正しいものを選択してください。

a screenshot of running the VBA code

5. 表示される「参照」ダイアログで、リストしたいファイルとサブフォルダのあるターゲットフォルダに移動して選択します。正しい開始フォルダを選択することが重要です。マクロはすべてのネストされたサブフォルダから再帰的にファイルを取得します。

a screenshot of selecting the folder you want to list all filenames including the subfolders

6. 目的のフォルダを指定後、「OK」をクリックします。マクロは現在のフォルダとそのすべてのサブディレクトリを処理し、セルA2から始まる現在のワークシートに出力します。ファイル数やサブフォルダ構造の深さにより、このプロセスには数秒以上かかる場合があります。結果として得られるリストは、フォルダ内容の詳細なビューを提供します。

a screenshot of the seleted folder
a screenshot of an arrow
a screenshot listing all filenames from the selected folder and its subfolders

エラーが発生した場合は、選択したフォルダが存在し、ファイルが含まれていることをもう一度確認し、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はお好みの言語で利用可能 ― 英語、スペイン語、ドイツ語、フランス語、中国語、その他40以上の言語に対応!

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