エクセルVBAでフォルダ内のファイル名を一括で変更する

エクセルVBAで、任意のフォルダ内に存在するファイル名を、全て一括で変更する方法を紹介しています。ファイルが複数ある場合ファイル名を1つ1つ手作業で変更するのは大変です。VBAで一括でできると入力ミスを防げ、何よりも簡単で楽です。ここでは、元ファイルをそのまま残す、削除するなど様々なパターンを紹介しています。ファイル名を変更し、違う拡張子のエクセルファイルも削除できます。ファイル名の変更は基本的な操作です。大量のファイル名をリネームできるようになります。

 

 

フォルダ内のファイル名を全て一括で変更

任意のフォルダ内にあるファイル名を全て変更して、新しくファル名を変更したファイルを作成する方法です。

あらかじめ、変更するファイル名、変更後のファイル名、変更するファイルが存在するフォルダのパス、変更後のファイルが存在するフォルダのパスが入力された表を作成して、VBAを実行します。

 

 

ファイル名を一括変更して別ファイルに作成

エクセルVBAで任意のフォルダ内のファイル名を変更して、変更したファイルを一括で別フォルダに作成し、変更前のファイルをすべて削除してみましょう。

ファイルに次のような表を作ります。

A列5行目から下に変更前のファイル名を入力、B列5行目から下に変更後のファイル名を入力しましょう。

A1には、変更前のファイルが存在するフォルダ名「作業用フォルダ」のパスを、A2には、変更後のファイルを作成するフォルダ名「業務用フォルダ」のパスを入力します。

一括でファイル名を変更するVBAです。

Sub ファイル名変更D()
Dim i As Long
i = 5
Do Until Cells(i, 1).Value = “”
FileCopy Range(“A1”).Value & “\” & Cells(i, 1).Value, _
Range(“A2”).Value & “\” & Cells(i, 2).Value
i = i + 1
Loop
Kill “C:\作業用フォルダ\*.xlsx”
MsgBox “リネームしました。”
End Sub

「作業用フォルダ」内にある全てのファイル名が変更されて、「業務用フォルダ」にファイルが作成され、「作業用フォルダ」内にある全てのファイルは削除されます。

ファイルの削除には、Killステートメントを使用しています。

拡張子に「xls」を含む全てのエクセルファイルを削除したい場合は、「Kill “C:\作業用フォルダ\*.xlsx”」の部分を次のようにしましょう。

Kill “C:\作業用フォルダ\*.xls*”

変更前のファイルを削除しない場合は、次のようになります。

Sub ファイル名変更D()
Dim i As Long
i = 5
Do Until Cells(i, 1).Value = “”
FileCopy Range(“A1”).Value & “\” & Cells(i, 1).Value, _
Range(“A2”).Value & “\” & Cells(i, 2).Value
i = i + 1
Loop
MsgBox “リネームしました。”
End Sub

変更前のファイルがそのまま「作業用フォルダ」に存在し、変更後のファイルは「業務用フォルダ」作成されます。

エクセルファイルは拡張子が「xlsx」から、「xls」にも変更できます。

変更後の拡張子を「xls」にすると、拡張子が「xls」のファイルが作成されます。

 

 

ファイル名を一括変更して同じファイルに作成

任意のフォルダ内のファイル名を全て変更し、変更したファイルを一括で同じフォルダに作成してみましょう。

VBAを実行すると同じフォルダに、変更前のファイルと変更後のファイルが存在することになります。

Sub ファイル名変更D()
Dim i As Long
i = 5
Do Until Cells(i, 1).Value = “”
FileCopy Range(“A1”).Value & “\” & Cells(i, 1).Value, _
Range(“A1”).Value & “\” & Cells(i, 2).Value
i = i + 1
Loop
MsgBox “リネームしました。”
End Sub

変更前のファイルを削除したい場合は、次の用になります。

Sub ファイル名変更E()
Dim i As Long
i = 5
Do Until Cells(i, 1).Value = “”
FileCopy Range(“A1”).Value & “\” & Cells(i, 1).Value, _
Range(“A1”).Value & “\” & Cells(i, 2).Value
i = i + 1
Loop
Kill “C:\作業用フォルダ\2018*.xlsx”
MsgBox “リネームしました。”
End Sub

ファイルのリネーム

ファイルのリネームは色々な方法がありますが、ここでは表を作成して、エクセルVBAでフォルダ内のファイル名を全て一括で変更しました。元のファイルが不要な場合は、Killステートメントを使用して元のファイルを削除できます。Killステートメントにはワイルドカードが使えるので、ワイルドカードを使用すると複数のファイルが削除できます。基本のコードから色々なパターンでリネームできるので活用しましょう。

こちらの記事もご覧ください。⇒エクセルVBAでフォルダ内のファイルを一括で削除する