あなたはファイル名のつけ直し(リネーム)が面倒だと思ったことはありませんか?
仕事をしていると、同じファイル名を何度も入力することがあると思います。
例えば、「20240131 確認依頼」とか「20240131 納品書」とか。
いちいち手入力するのは大変ですよね。
そんなとき、エクセルマクロを使えば、ボタン一つでファイル名のリネームできます。
今回は「エクセルでフォルダ内のファイル名を一気にリネーム変換する方法」を紹介します。
エクセルでフォルダ内のファイル名を一気にリネーム変換する方法
エクセルでフォルダ内のファイル名を一気にリネーム変換する方法です。
下の画像のようにファイル名をリネームします。
マクロを作るときは、「開発」タブを使います。
開発タブが出ていない方は、下のリンクで出し方を紹介していますので、まずは準備をお願いします。
→エクセルで開発タブを表示する方法
1.「開発」タブをクリック →「挿入」をクリック →「ボタン」をクリック
2.「新規作成」をクリック
3.コード入力画面が開く
4.コードを入力
コードを入力します。
デスクトップの「ファイル名変更」フォルダ内のファイル名を、A2セルの値の名前に変換する。複数ある場合は、連番にする、という意味です。
Function以下の続きです。
赤枠部のコードです。
Dim folderPath As String
Dim fileName As String
Dim extension As String
Dim newFileName As String
Dim filesInFolder As Collection
Dim file As Variant
Dim counter As Integer
Dim excelValue As String
' エクセルのA2セルの値を取得
excelValue = ThisWorkbook.Sheets("Sheet55").Range("A2").Value
' フォルダのパスを指定
folderPath = Environ("USERPROFILE") & "\Desktop\ファイル名変更\"
' フォルダ内のすべてのファイルを取得
Set filesInFolder = GetFilesInFolder(folderPath)
' ファイル名を変更
For Each file In filesInFolder
fileName = Dir(folderPath & file)
If fileName <> "" Then
' 拡張子を取得
extension = Right(fileName, Len(fileName) - InStrRev(fileName, "."))
' ファイル名のみを取得
fileName = Left(fileName, Len(fileName) - Len(extension) - 1)
' 重複を避けるために、新しいファイル名がすでに存在する場合は番号を増やしていく
counter = 1
newFileName = excelValue & "-" & counter & "." & extension
Do While FileExists(folderPath & newFileName)
counter = counter + 1
newFileName = excelValue & "-" & counter & "." & extension
Loop
Name folderPath & fileName & "." & extension As folderPath & newFileName
End If
Next file
End Sub
Function GetFilesInFolder(folderPath As String) As Collection
Dim files As Collection
Dim fileName As String
Set files = New Collection
' フォルダ内のファイルをコレクションに追加
fileName = Dir(folderPath & "*.*")
Do While fileName <> ""
If Not (Left(fileName, 1) = "." And Len(fileName) > 1) Then
files.Add fileName
End If
fileName = Dir
Loop
Set GetFilesInFolder = files
End Function
Function FileExists(filePath As String) As Boolean
' ファイルが存在するか確認
FileExists = (Dir(filePath) <> "")
End Function
コードを入力したら、コードの入力画面を閉じて下さい。
5.ボタンができた →ボタンをクリック
ボタンができました。
A2セルに変換後のファイル名を入れます。
ボタンをクリック
<クリック前>
<クリック後>
複数ファイルのファイル名を変換できました。
連番になっています。
ちなみに、エクセル、ワード、Outlookのファイルでもリネームできます。
<変換前>
<変換後>
これならファイルのリネームもラクですよね!
まとめ
エクセルでフォルダ内のファイル名を一気にリネーム変換する方法のまとめです。
1.「開発」タブをクリック →「挿入」をクリック →「ボタン」をクリック
2.新規作成をクリック
3.コードを入れる画面が出る
4.コードを入力
5.ボタンができた →ボタンをクリック
6.フォルダ内のファイル名がリネームできた
これで入力の手間が一気に少なくなりましたね!
コメント