ファイル名を一括変更する方法5選【Windows/Excel/PowerShell/Python対応】

スキャンした書類が「scan001.pdf」「scan002.pdf」…と100件並んでいる。これを1件ずつ手動でリネームしていたら1時間以上かかります。

総務10年・書類デジタル化で数百件のリネームを経験した私も、同じ状況に何度も直面しました。最初は手動でやっていたのですが、正直、途中で「これ人間がやる作業じゃない…」と思ったんですよね。

この記事では、ファイル名を一括変更する方法を5つ、用途・件数・スキルレベル別に解説します。さらに「間違えてリネームした場合の元に戻す方法」も解説するので、安心して試せます。

どの方法を選べばいいか(判断フロー)

まずこの表で自分に合う手法を選んでください。

方法難易度対応件数コード不要向いている用途
①Windowsエクスプローラー★☆☆~50件連番リネームのみ
②PowerShell★★☆~500件部分置換・日付追加
③Excel+コマンドプロンプト★★☆~1000件完全カスタム命名
④Flexible Renamer★☆☆~1000件GUI操作・複雑なルール
⑤Python★★★無制限定期・自動化処理

【方法①】Windowsエクスプローラーで連番リネーム

難易度:★☆☆ / 所要時間:1分 / 追加ツール不要

最もシンプルな方法。ただし「連番」しかつけられません。ファイル名(1).pdf, ファイル名(2).pdf という形式になります。

手順

  1. エクスプローラーで対象ファイルをすべて選択(Ctrl+A)
  2. F2キーを押す(または右クリック → 名前の変更)
  3. 付けたいベース名を入力してEnter

請求書(1).pdf, 請求書(2).pdf, 請求書(3).pdf … と自動連番される

ファイルの並び順に注意

連番は「エクスプローラー上の並び順」で付きます。リネーム前に日付順・名前順など意図した順に並べ替えてから実行してください。

向いているシーン

  • スキャンした書類に仮の連番をつけたい
  • 写真ファイルを「会議写真(1).jpg」形式にまとめたい
  • 50件以内で今すぐ終わらせたい

【方法②】PowerShellで柔軟な一括リネーム

難易度:★★☆ / 所要時間:5~10分 / 追加ツール不要(Windows標準)

コマンドでファイル名の一部を置換したり、日付・テキストを追加したりできます。エクスプローラーより柔軟ですが、コマンドの入力が必要です。

基本:特定の文字列を一括置換

# 例:「scan」を「請求書_2026」に一括置換
Get-ChildItem "C:\Users\user\Documents\スキャン" -Filter "*.pdf" |
Rename-Item -NewName { $_.Name -replace "scan", "請求書_2026" }

応用:先頭に今日の日付を追加

$date = Get-Date -Format "yyyyMMdd"
Get-ChildItem "C:\対象フォルダ" -Filter "*.pdf" |
Rename-Item -NewName { $date + "_" + $_.Name }

実行方法

  1. Windowsキー → 「PowerShell」と検索 → 右クリック → 「管理者として実行」
  2. コードをコピーして貼り付け → Enter
  3. 実行結果を確認

向いているシーン

  • 毎月の勤怠データExcelに日付プレフィックスを一括追加したい
  • ファイル名の一部(「旧名称」→「新名称」)を全件置換したい
  • 総務・事務担当者がコード初体験でまず使ってみるのに最適

【方法③】Excel+コマンドプロンプトで完全カスタムリネーム

難易度:★★☆ / 所要時間:15~30分 / 追加ツール不要

Excelでリネーム後の名前リストを作り、RENコマンドを自動生成してバッチ実行する方法です。「スキャン後のPDFを正式名称にする」という業務でよく使います。完全に自由な命名ができる点が最大の強みです。

STEP1:現在のファイル名をExcelに取得する

コマンドプロンプトを開いて以下を実行:

cd C:\対象フォルダのパス
dir /b > filelist.txt

filelist.txt に全ファイル名が書き出される。これをExcelに貼り付けます(A列)。

STEP2:ExcelでB列に変更後のファイル名を作成する

A列(変更前)B列(変更後)
scan001.pdf20260301_契約書_株式会社〇〇_v1.pdf
scan002.pdf20260305_請求書_△△商事_v1.pdf
scan003.pdf20260310_議事録_取締役会_v1.pdf

B列に変更後のファイル名を手入力またはCONCAT関数で生成します。

STEP3:RENコマンドを自動生成する

C列に以下の数式を入力:

="ren """ & A2 & """ """ & B2 & """"

ren "scan001.pdf" "20260301_契約書_株式会社〇〇_v1.pdf" というコマンドが生成される

STEP4:バッチファイルとして実行する

  1. C列の全コマンドをコピー
  2. メモ帳に貼り付け
  3. 先頭行に cd /d C:\対象フォルダのパス を追加
  4. .bat ファイルとして保存(例:rename.bat
  5. 対象フォルダ内にファイルを保存して右クリック → 「管理者として実行」

向いているシーン

  • スキャン後の契約書・請求書を正式命名規則通りに変換したい
  • 命名規則が複雑で自由に決めたい
  • 100~1000件程度を一気に処理したい
  • 総務担当者がコードなしで大量リネームする定番手順

【方法④】Flexible Renamer(フリーソフト・GUI操作)

難易度:★☆☆ / 所要時間:インストール込み10分 / GUIで操作可能

「コードは書きたくない、でも複雑なリネームもしたい」という場合に最適なフリーソフトです。プレビューで変更後のファイル名を確認してから実行できるため、ミスが最も少ない方法です。

主な機能

  • 正規表現を使った高度な置換
  • 連番の付与(開始番号・桁数・ステップ指定)
  • 日付・タイムスタンプの追加
  • 大文字・小文字の統一
  • 拡張子の一括変更

手順

  1. 「Flexible Renamer」で検索 → 公式サイトからダウンロード(無料)
  2. 対象ファイルをアプリにドラッグ&ドロップ
  3. 変換ルールを設定 → プレビューで確認
  4. 問題なければ「実行」

向いているシーン

  • 正規表現を使った複雑なリネームをGUIでやりたい
  • プレビュー確認してから実行したい(安全重視)
  • 連番の書式を細かく指定したい(001~ / 01~ 等)

【方法⑤】Pythonで自動化(繰り返し処理向け)

難易度:★★★ / 所要時間:初回30分〜 / 定期実行後は0分

毎月同じリネーム処理が必要な場合はPythonでの自動化が最も効率的です。一度コードを作れば、次回からはダブルクリックだけで完了します。

基本:ファイル名の一部を置換

import os

folder = r"C:\対象フォルダ"

for filename in os.listdir(folder):
    if "scan" in filename:
        new_name = filename.replace("scan", "書類")
        os.rename(
            os.path.join(folder, filename),
            os.path.join(folder, new_name)
        )
        print(f"{filename} → {new_name}")

応用:先頭に今日の日付を追加

import os
from datetime import date

folder = r"C:\対象フォルダ"
today = date.today().strftime("%Y%m%d")

for filename in os.listdir(folder):
    if filename.endswith(".pdf"):  # PDF限定
        new_name = f"{today}_{filename}"
        os.rename(
            os.path.join(folder, filename),
            os.path.join(folder, new_name)
        )
        print(f"{filename} → {new_name}")

向いているシーン

  • 毎月・毎週同じリネーム処理を繰り返している
  • 数千件以上のファイルを処理したい
  • 複数条件(ファイル名+更新日+種別)を組み合わせてリネームしたい
  • Windowsのタスクスケジューラと組み合わせて完全自動化したい

コードをコピーして貼り付けるだけなので、プログラミング未経験でも動かせます。Pythonを環境構築なしで試したいなら、GoogleのColaboratoryが無料で使えます。ブラウザだけで動くので、まずそこで動作確認するのがおすすめです。

毎月同じリネーム処理があるなら、Windowsのタスクスケジューラと組み合わせることで完全自動化も可能です(別途設定が必要ですが、一度設定すれば手動作業ゼロになります)。

実行前に必ずやること(失敗時の戻し方)

リネームは「間違えやすい」作業です。100件を一括処理して全部おかしくなったとき…取り返しがつかないケースも実際にあります。

方法1:実行前にフォルダをバックアップ(最も確実)

これだけやれば何があっても戻せます。

作業前にやること:
対象フォルダ → コピー → 「対象フォルダ_backup_20260325」として保存

方法2:Ctrl+Z(直後なら戻せる)

エクスプローラーでのリネーム直後であれば Ctrl+Z で1つ前の状態に戻せます。ただし複数ファイルを一括リネームした場合、すべて戻せないケースもあります。

方法3:PowerShellの-WhatIfでドライラン

PowerShellには実際には実行せずに「何が起きるか確認する」-WhatIf オプションがあります。

Get-ChildItem "C:\対象フォルダ" -Filter "*.pdf" |
Rename-Item -NewName { $_.Name -replace "scan", "書類" } -WhatIf

→ 実際にはリネームされず、変更内容がコンソールに表示されるだけ。確認後に -WhatIf を外して本実行。

方法4:Excel+cmdのバッチファイルは逆コマンドで戻せる

Excel+cmdで作ったバッチファイルは、A列とB列を入れ替えたバッチファイルを作れば逆操作で元に戻せます。

業務シーン別おすすめ手順

シーンおすすめ方法理由
スキャン後のscan〇〇.pdfを正式名称にExcel+cmd命名が自由・件数が多い
勤怠・経費データに日付を一括追加PowerShellコード1行で対応
「2024」→「2025」に全部置換PowerShell / Flexible Renamer置換に特化
50件以内・連番だけでOKエクスプローラー最速
毎月同じ処理を繰り返すPython自動化が最適
コードを書きたくない・複雑な命名Flexible RenamerGUIでプレビュー確認

よくある失敗と対処法

失敗1:並び順を確認せずリネームして順番がバラバラになった

→ リネーム前に必ずエクスプローラーの並び順を意図通りに設定してから実行。

失敗2:PowerShellのパスを間違えて別フォルダのファイルをリネームした

→ コード実行前に cd C:\対象フォルダ でフォルダを確認。バックアップ必須。

失敗3:ExcelのバッチファイルにB列の余分なスペースが入りエラーになった

→ Excelのセルに余分なスペースが入っているケースが多い。TRIM 関数で除去してからコマンド生成する。

失敗4:拡張子まで変更してしまいファイルが開けなくなった

→ 拡張子を変更するときは必ず .pdf.pdf と同じ拡張子を維持する。PowerShellでは $_.Extension を使って拡張子を固定できる。

よくある質問(FAQ)

Q:Macでファイル名を一括変更する方法はありますか?
A:MacのFinderではファイルを複数選択→右クリック→「〇個の項目の名前を変更」で一括リネームできます。「テキストを追加」「テキストを置き換える」「フォーマット(連番)」の3パターンが使えます。

Q:フォルダ内のサブフォルダのファイルも一括リネームできますか?
A:エクスプローラー・Flexible Renamerは基本的に1フォルダのみです。サブフォルダまで再帰的に処理したい場合はPowerShellの -Recurse オプションまたはPythonの os.walk() を使ってください。

Q:ファイル名に使えない文字はありますか?
A:Windowsでは \ / : * ? " < > | が使用禁止です。スペースは使えますが、コマンド処理時に " で囲む必要があって面倒なので、_(アンダースコア)で代替することをおすすめします。

Q:リネーム後に元に戻す方法はありますか?
A:「実行前に必ずやること」セクションを参照してください。最も確実なのは実行前にフォルダをコピーしてバックアップを取ることです。

まとめ

  • 50件以内・連番だけ → エクスプローラーのF2リネームが最速
  • 部分置換・日付追加 → PowerShellで1~2行のコード
  • 完全カスタム命名・100件以上 → Excel+コマンドプロンプト
  • コードなしで複雑なルール → Flexible Renamer(フリーソフト)
  • 毎月繰り返す処理 → Pythonで自動化
  • 実行前のバックアップと -WhatIf でのドライランが失敗を防ぐ最善策

毎月同じリネーム作業を繰り返しているなら、Pythonで自動化すると一度の設定で永続的に時短できます。総務・バックオフィス担当者向けのPython自動化の始め方は、こちらの記事で解説しています。

総務でPythonを使うと何ができるか【コード付き、業務別の自動化事例7選】