対象フォルダを指定
日々のデスクワークにおいて、フォルダ内に溜まった大量の画像や書類のファイル名を1つずつ手作業でコピー&ペーストしていませんか?10件程度ならまだしも、数百件から数千件に及ぶファイルを手作業で一覧化するのは膨大な時間の浪費であり、転記ミスの温床にもなります。
実は、Windows 11の標準ショートカットやExcel、コマンドプロンプト、PowerShellなどを活用すれば、わずか数秒から数十秒でフォルダ内のファイル名を一括取得可能です。業務効率を劇的に改善する最新のテクニックと具体的な手順をわかりやすく解説します。
📌 【この記事の重要ポイントまとめ】
- 要点1:Windows 11の標準ショートカット(Ctrl + Shift + C)を使えば、追加ツールなしでファイルパスを一括テキスト化できる。
- 要点2:Excelの「パワークエリ」を使えば、ノーコードでファイル名一覧を作成でき、ファイルの追加・削除もワンクリックで自動更新できる。
- 要点3:dirコマンドやPowerShell、Pythonを活用することで、サブフォルダを含む抽出や拡張子なしのファイル名取得も一瞬で完結する。
【最速テク】Windows 11なら標準機能だけでファイル名一括コピーが可能
特別なソフトや難しいコードを使わずに最も手軽にファイル名を取得する方法が、Windows 11に標準搭載されている「パスのコピー」機能です。ファイルやフォルダのパス情報をクリップボードへ直接コピーできるため、Windows 11でのファイル名一括コピーが驚くほど簡単になりました。
操作手順は以下の通りです。
- ファイル名を抽出したいフォルダを開く
- 対象のファイルを「Ctrl + A」ですべて選択する
- ショートカットキー「Ctrl + Shift + C」を押す(または右クリックメニューから「パスのコピー」を選択)
- Excelやメモ帳などのテキストエディタを開き、「Ctrl + V」で貼り付ける
この操作により、フォルダ内の全ファイルの完全なパス(例:C:\Users\username\Documents\report2026.pdf)が一気にテキストとして貼り付けられます。ファイル名だけを取り出したい場合は、Excelの「区切り位置指定ウィザード」や置換機能(\ を空白に置換)を使えば、数秒でフォルダパスを除去してファイル名のみを抽出できます。
【ノーコードで自動更新】Excelパワークエリでフォルダ内ファイル名一覧取得
定期的にフォルダ内のファイル構成が変わる場合や、ファイルサイズ・更新日時などの詳細情報もまとめて管理したいときは、Excelの標準機能であるパワークエリ(Power Query)によるファイル名一覧取得が最適です。マクロを使わずにGUI操作だけで完結し、フォルダ内に新しいファイルが入っても「更新」ボタンを押すだけで最新の状態に同期されます。
具体的な設定手順は次の通りです。
- Excelを起動し、上部メニューの「データ」タブを選択
- 「データの取得」>「ファイルから」>「フォルダから」をクリック
- 対象のフォルダを選択して「開く」をクリック
- プレビュー画面が表示されたら、右下の「データの変換」を選択(パワークエリ エディターが起動)
- 不要な列を削除し、ファイル名(Name列)、拡張子(Extension列)、更新日時(Date modified列)など必要な項目のみを残す
- 左上の「閉じて読み込む」をクリック
これでExcelシート上に綺麗なテーブル形式でファイル一覧が出力されます。次回以降は「データ」タブの「すべて更新」をクリックするだけで、新しく追加されたファイルが自動反映されます。
【黒い画面で瞬殺】dirコマンドによるファイル名テキスト出力とクリップボードコピー
何千件ものファイルが存在する場合や、エンジニアライクに最速でテキスト化したいなら、コマンドプロンプトのdirコマンドを使ったファイル名テキスト出力が圧倒的な威力を発揮します。
まず、対象のフォルダをエクスプローラーで開き、上部のアドレスバーに「cmd」と入力してEnterキーを押します。対象フォルダがカレントディレクトリになった状態でコマンドプロンプトが立ち上がります。目的に応じて以下のコマンドを入力してください。
① ファイル名のみをクリップボードにコピーする場合:dir /b /a-d | clip
※/bはファイル名のみ表示、/a-dはフォルダを除外するオプションです。実行後にExcelやメモ帳で貼り付け(Ctrl + V)が可能です。
② サブフォルダ内のファイル名も含めて全抽出する場合:dir /b /s /a-d | clip
※/sを付与することで、深い階層にあるサブフォルダ内のファイル名取得も一網打尽にできます。
③ 直接テキストファイル(list.txt)として保存する場合:dir /b /a-d > list.txt
フォルダ内に「list.txt」が瞬時に生成され、ファイル名の一覧が書き込まれます。
【柔軟性抜群】PowerShellで拡張子なしファイル名や詳細情報を一括抽出
「.xlsx」や「.png」などの拡張子を取り除いたファイル名だけが欲しい場合、コマンドプロンプトよりも高機能なPowerShellによるフォルダ内ファイル名取得が活躍します。
フォルダのアドレスバーに「powershell」と打ち込んで起動し、以下のワンライナーを実行するだけで柔軟なデータ取得が可能です。
拡張子なしでファイル名一覧を取得しクリップボードに送る:(Get-ChildItem -File).BaseName | Set-Clipboard
BaseNameプロパティを指定するだけで、面倒な文字列操作を行わずに拡張子なしのファイル名取得が実現します。
ファイル名、拡張子、作成日時をCSV形式で保存する:Get-ChildItem -File | Select-Object BaseName, Extension, Length, LastWriteTime | Export-Csv -Path "files_list.csv" -NoTypeInformation -Encoding utf8BOM
UTF-8(BOM付き)で出力されるため、Excelで直接開いても文字化けすることなく、ファイルサイズや最終更新日時付きの完全な管理台帳が即座に完成します。
【完全自動化】Excel VBAマクロやPythonでファイル名一覧作成をルーチン化
ボタン1つで毎回同じフォーマットの一覧表を作成したい、あるいは他のシステムと連携させたい場合は、プログラミングを活用したファイル名一覧作成の自動化を導入しましょう。
1. Excel VBAマクロを活用する方法
社内で共有するExcelファイルにマクロを組み込んでおけば、プログラミング知識のないメンバーでも簡単にファイル一覧を作成できます。FileSystemObject(FSO)を使用することで、指定フォルダ内の全ファイルを高速に取得可能です。
Sub GetFileList() Dim fso As Object, folder As Object, file As Object Dim folderPath As String, i As Long folderPath ="C:\TargetFolder\" ' 対象フォルダパス Set fso = CreateObject("Scripting.FileSystemObject") Set folder = fso.GetFolder(folderPath) i = 1 For Each file In folder.Files Cells(i, 1).Value = file.Name ' ファイル名 Cells(i, 2).Value = file.DateLastModified ' 最終更新日 Cells(i, 3).Value = file.Size ' サイズ(バイト) i = i + 1 Next file End Sub2. Pythonを活用した大量データ処理
データ分析の前処理や数万件規模のファイルを扱う場合は、Pythonによるフォルダ内ファイル名取得が真価を発揮します。標準ライブラリのpathlibを用いれば、わずか数行で再帰的な検索から一覧出力まで自動化できます。
from pathlib import Path import pandas as pd target_dir = Path("./target_folder") # サブフォルダを含む全ファイルを再帰的に取得 files_data = [ {"ファイル名": f.stem, "拡張子": f.suffix, "フルパス": str(f.resolve())} for f in target_dir.rglob("") if f.is_file() ] # DataFrame化してExcelへ出力 df = pd.DataFrame(files_data) df.to_excel("file_list_output.xlsx", index=False)【フォルダ内ファイル名取得】に関するよくある質問(FAQ)
Q1:サブフォルダ内のファイルも含めて階層ごと一括取得したい場合はどうすればいいですか?
A1:手軽さを求めるならコマンドプロンプトのdir /b /s | clip、定期的な更新や表管理を行うならExcelの「パワークエリ」がおすすめです。パワークエリはフォルダ配下のすべての階層を自動探索して1つのテーブルに展開してくれます。
Q2:拡張子を除外した「純粋なファイル名のみ」をExcelに抽出できますか?
A2:PowerShellで(Get-ChildItem -File).BaseName | Set-Clipboardを実行するのが最も簡単です。また、Excel上に拡張子付きで貼り付けた後、「データ」>「区切り位置」で「.(ピリオド)」を区切り文字に設定して分割する方法もあります。
Q3:コマンド実行時に日本語のファイル名が文字化けしてしまう時の対処法は?
A3:コマンドプロンプトのデフォルト文字コード(Shift-JIS)と出力先の文字コードの不一致が主な原因です。PowerShellを使用し、エクスポート時に-Encoding utf8BOMオプションを指定してCSV出力することで、Excelでも文字化けせずに開くことができます。
Q4:共有サーバー(NAS)内のファイル名も同じ手順で取得できますか?
A4:取得可能です。ネットワークパス(例:\\ServerName\SharedFolder\)をそのまま指定して実行できます。ただし、ネットワークの速度やアクセス権限によって読み込みに時間がかかる場合があるため、大量ファイルの場合はPowerShellやPythonの利用を推奨します。
まとめ:業務スタイルに合わせた最適な一覧取得で無駄な手作業をゼロに
ファイル名の一覧化は、やり方を知っているだけで作業時間を数十分から「数秒」へと大幅に短縮できる代表的な業務です。1回限りの作業であればWindows 11の「パスのコピー」やdirコマンド、定期的な業務ならExcelパワークエリ、高度な自動化ならPowerShellやVBA・Pythonと、用途に応じて使い分けるのが最も効率的です。
手作業によるコピー&ペーストを今すぐやめ、自分やチームに最適な手法を取り入れて日々のPC作業を快適に効率化していきましょう。 (出典: フォルダ 内 ファイル 名 取得(Yahoo!ニュース))