Excelでできる!複数のファイル名を一括置換するツール!

 

手作業でファイル名をちまちま変更するの超めんどくさくないですか?

 

私はある日、お客さんから「100ファイル近くのExcelファイルのファイル名を手作業で変更してくれ~」っていう依頼がありました。

具体的には「ファイル名_v1.2.xlsx」→「ファイル名_v1.3.xlsx」にしてくれ~~っていう内容です。

 

もちろん、ファイル数が少ないなら手でやったほうが速いと思いますが、

毎回、100ファイル近くを手作業でやるのにどれだけ時間がかかるか・・

しかし仕事をしていれば、少なからずそんなめんどくさい作業をすることがあると思います。

 

そこでこの度はExcel をつかってボタン一つでファイル名を一括置換するツールを作りました!

 

 

 

このツールは Excel Vba というプログラミングで作成されています。

この記事では「Excelでできる複数のファイル名を一括置換するツール」の使い方と作り方をご紹介します!

 

※ いつものようにつくったのも共有しときますので、よければどうぞ(ブック保護、シート保護はかかってます)。

 

 

スポンサーリンク

ファイル名を一括置換するツールの使い方

この「Excelでできる複数のファイル名を一括置換するツール」では以下の用に使います。

 

  1. 「検索ボタン」を押下しリネームしたいファイル一覧を取得します。
  2. ファイル名(置換後)列にファイル名を入力します。
  3. 「一括置換」ボタンでファイル名が変更できます。

 

「検索ボタン」を押下してリネームしたいファイル一覧を取得

まず「検索ボタン」を押下します。

 

 

すると下記のようなダイアログが表示されるので、ファイル名を変換したいファイルが配架されているフォルダを選択します。

このときファイル名が表示されませんが、問題ありません。

 

 

これにてB列とC列にファイル名とフォルダ名がそれぞれ出力されます。

ファイル名、フォルダ名を手入力しても問題ないですが、入力し間違えないようにする必要があります。

 

ファイル名(置換後)列にファイル名を入力

ファイル名(置換後)列にファイル名を入力します。

このツールではファイル名(置換前)→ファイル名(置換後)のようにファイルがリネーム(名前が変更)されます。

 

 

ファイル名(置換後)列に入力後、チェック列(E列)の値がOKになっていれば問題なしです。

なおチェック列がOK以外の値の場合はファイル名置換処理が実行されません。

 

チェック列がOK以外のケース

チェック列では入力した値に誤りがあるかどうかをチェックします。

  1. ファイル名(置換後)列に重複している項目がないか
  2. ファイル名(置換前)列とファイル名(置換後)列で同じ値がないか

 

もし上記項目を満たした場合、下記画面のようにエラーメッセージが表示されるようになっています。

 

 

※ なおこのエラーメッセージはH列(非表示列)に入力していますので、H列は消さないようにお願いします!

 

 

「一括置換」ボタンでファイル名が変更

最後に「一括置換」ボタンを押下します。

すると下記のような処理完了メッセージが表示されます。

 

 

フォルダを確認しに行くとファイル名が一括置換されていることが確認できます!

 

 

以上がこのツールの使い方です。

続いてはこのツールの使い方を説明します。

 

ファイル名を一括置換するツールの作り方(Excel Vba)

ここからプログラミングの少し難しい話になります!

 

今回は「Excelでできる複数のファイル名を一括置換するツール」を作るうえで下記のような Excel VBA コードを作成しました。

このコードを Excel の開発タブ→ Visual Basic で表示されるエディタに貼り付ければOKです。

※ 開発タブがない場合は下記ページを参考にしてください。

 

 

とりあえず上をコピーすればOKですが、それだとあまりに味気ないので説明します。

まずこのプログラムは以下のような機能があります。

 

このプログラムの機能
  1. getFileList() ・・・ (リネームする)ファイル一覧を取得
  2. replaceFile() ・・・ ファイル名を一括置換
  3. reset() ・・・  出力シートを初期化

 

今回のツールでの「(リネームする)ファイル一覧を取得」と「ファイル名を一括置換」する方法について説明します。

※ reset()については割愛します。

 

Excel で(リネームする)ファイル一覧を取得・・・getFileList()

ファイル一覧を取得する方法は下記になります。

  1. ダイアログでフォルダ名取得
  2. 取得したフォルダ名をもとにフォルダ下のファイル一覧を取得

 

フォルダ名取得用のダイアログ画面は Application.FileDialog(msoFileDialogFolderPicker)で取得します。

戻り値として選択したフォルダ名(フルパス)で取得できます。

 

その取得したフォルダ名から Dir 関数でファイル一覧を取得し、シートに出力するだけです。

 

 

 

Excel でファイル名を一括置換・・・replaceFile()

シートに記述されている置換前後のファイル名を取得し、それらを Name 関数で取得します。

 

ポイント!
ファイル名の変更 ・・・ Name 置換前のファイル名 As 置換後のファイル名

 

このリネーム(ファイル名を変更する)処理は一行ずつ実行されます。

このファイル名変更処理をシートの表の(B列)に値が実行されるまで実行します。

 

 

また上記処理では入力したファイル名が正しいかどうかを精査する check 関数も実行しております。

この check関数は下記条件すべてを満たす場合に True、それ以外は False を返します。

 

  1. 置換前のファイル(B列)が存在するか
  2. 置換後のファイル(C列)が存在しないか
  3. チェック列(E列)がOKであるか

 

最後に

 

いかがでしたでしょうか?

この記事では「Excelでできる複数のファイル名を一括置換するツール」の使い方と作り方について解説しました。

 

このツールさえあればどれだけファイル数が多くてもファイル名の一括置換がラクラクできます!

この記事が読者の何かのお役に立てれば幸いです。

ではでは。

スポンサーリンク
おすすめの記事