ヒガサラblog

サラリーマン向けに、仕事を効率良く進めていくための方法についてご紹介しています。プログラミングから対人スキルまでを幅広く掲載中。

ヒガサラblog

【VBA】大量のファイル名変更!指定したフォルダ内を一括操作!

f:id:yshgs_elec:20200909215949j:plain


大量のファイルの名前を書き換えないといけない。ひとつひとつ手作業でやっていたら日が暮れそうだ。

 

この記事では、こんな悩みをエクセル(VBA)を使って一瞬で解決します。

 

さっそくやっていきましょう!

 

 

やりたいことのイメージ共有

本題に入る前に、この記事で紹介する内容を共有化しておきましょう。

 

以下のようにあるフォルダ内に名前を書き換えたいファイルがたくさん入っていることを想定しています。

(テンプレートファイルをコピーしたときなんかに、よくこうなりますよね。)

f:id:yshgs_elec:20200909205353j:plain

この記事では、これらのファイルたちを、以下の画像のように好きな名前に一瞬で変更する方法をご紹介します。

f:id:yshgs_elec:20200909210929j:plain

あなたのやりたいこととイメージが一致していれば、ぜひ続きをご覧ください。 

 

ファイル名一括変更の手順

今回は以下のようなエクセルファイルを作成することで、ファイル名を一括変更していきます。

f:id:yshgs_elec:20200909212150j:plain

実際は以下の通りです。

①まずは上の画像のようにエクセルファイルに情報を記入する準備をする

②VBAを使って変更前のファイルを一括取得する(A列の情報を自動で取得する)

③変更後のファイル名を自分でエクセルシートに入力する(B列の情報を記入する)

④ファイル名変更コードを実行し、ファイル名を変更する

 

ここからはこれらの手順を詳細に説明していきます。

 

手順①エクセルシートを整える

この記事では、A4セル以降に記入されている名前のファイルを、B4セル以降に記入されている名前にそれぞれ変更するという形でVBAコードを作成しています。

基本的には以下の画像を完璧に真似して作っていただければOKです。

A2セルのファイルの保存場所だけ、あなたの状況に合わせて書き換えてください。

f:id:yshgs_elec:20200909211212j:plain

 

手順②A列の情報を自動で取得する

次は変更前のファイル名を取得していきます。

ここからはVBAコードを記入していきます。

VBAの使い方がわからない、という方は以下の記事を参考に、コードを記述できる環境を整えておきましょう。

www.higashisalary.com

 

VBAコードを記入する準備が整ったら、以下のコードを記入します。

 

Sub get_file_name()
folder_path = Cells(2, 1) & "\"
file_name = Dir(folder_path, vbNormal)
i = 1
Do Until file_name = ""
Cells(i + 3, 1) = file_name
i = i + 1
file_name = Dir()
Loop
End Sub

 

 

記述が終わったらこのマクロをさっそく実行してみましょう!

 

いざ実行!!

 

実行すると、以下の画像のように変更したいファイルがA列に一覧表示されます。

f:id:yshgs_elec:20200909212915j:plain

 

手順③B列の情報を手動で記入する

変更後のファイル名はさすがに自動設定はできませんので、変更したい名前をそれぞれ記入してください。

私の場合は以下のように記入を行いました。

f:id:yshgs_elec:20200909212150j:plain

 

※上の画像のように連番ファイルを作成する場合は基準となるセルの角をダブルクリックすると一瞬で記入することができます。

f:id:yshgs_elec:20200909213656j:plain

 

ここまでで下準備完了です。

 

手順④ファイル名変更を実行する

準備が整ったら、もう一度VBAの記述に戻ります。

次はファイル名変更コードを記入しましょう。

以下のコードを丸ごとコピーしてください。

 

Sub file_rename()
folder_path = Cells(2, 1) & "\"
j = 1
Do Until Cells(j + 3, 1) = ""
Name folder_path & Cells(j + 3, 1) As folder_path & Cells(j + 3, 2)
j = j + 1
Loop
End Sub

 

記述が終わったらこのマクロをさっそく実行してみましょう!

※今回はマクロが2つあるので、ご注意ください。

file_renameの方を実行します。

f:id:yshgs_elec:20200909214303j:plain

 

 

再び、いざ実行!!

 (実行しても、エクセルシート上はなにも変化はおきません。)

 

実行が終わったら、ファイルが保存してあったフォルダを確認してみましょう。

ファイル名がエクセルシートのB列に記入した名前に変わっているはずです。

 

終わりに

というわけで今回は、指定したフォルダ内のファイルの名前を一括変更する方法をご紹介しました。

一度作っておけば、いろいろな場面で活用できるはずです。ぜひ時間のあるときに作っておきましょう。

 

このブログでは、エクセル(VBA)を中心に、様々な業務効率化スキルを紹介しています。

■生産性の低い作業ははるべくしたくない。

■もっと業務を効率化したい。

こんな人はぜひ他の記事も読んでみてください。

 

また、VBAを使ってこんなことがしたいんだけど、やり方がわからない、という悩みを抱えているかたは、お気軽にコメント欄から質問してください。

私にわかる範囲であればご協力いたしますので。(もちろん無料です。)

 

最後に・・・

このブログを応援してあげても良いよ、という方は以下のボタンをポチっていただけると嬉しいです。

にほんブログ村 IT技術ブログ VBAへ
にほんブログ村

にほんブログ村 IT技術ブログへ
にほんブログ村

 

Twitterもやっていますので、興味があれば覗いてみてください。

それではまた!!

 

関連記事

www.higashisalary.com

www.higashisalary.com