独学でExcelVBA勉強し、業務の効率改善しまくっているtsenです。
このブログでは、人事・総務をはじめ管理系の事務作業に役立つ
ExcelVBAを使った便利ツールをたくさん紹介しています。
今回は、ファイル名を一括変更する方法です。
ファイル名を一括変更するためのフリーソフトはたくさんありますが、
ExcelVBAを使っても簡単に実現することが出来ます。
ExcelVBAでファイル名を一括変更する方法
特定のフォルダ内にいくつかファイルが格納されていて、
そのファイル名を一括変更(リネーム)する方法です。
このページを読むと実現することは以下のようなことです。
このように、ファイル名称を一気に変更したいときに役立ちます。
またこのツールでは、元ファイルをコピーしてから名称を変更するので、
元ファイルはそのままにファイル名称変更後のファイルも保存することが出来ます。
設定シートを事前準備する
まず、下記にようなExcelシートを準備しましょう。
設定シートに必要な項目は4つ。
元フォルダのパスとリネーム後のフォルダパス・元ファイル名と新ファイル名です。
そしたら、標準モジュールに以下のVBAコードを入れて、マクロブックで保存してください。
標準モジュールの立ち上げ方が分からない人は、
まずこちらの超初心者向け「初めてのマクロ」を先に読んでください。
Option Explicit
Sub ファイルリネーム()
Dim FSO
Set FSO = CreateObject("Scripting.FileSystemObject")
Dim FolderName As String
Dim NewfolderName As String
Dim OldFileName As String
Dim NewFileName As String
Dim i As Integer
FolderName = Sheets(1).Cells(2, 4) & "\"
NewfolderName = Sheets(1).Cells(3, 4) & "\"
i = 5
Do Until Sheets(1).Cells(i, 1) = ""
OldFileName = FolderName & Sheets(1).Cells(i, 1)
NewFileName = NewfolderName & Sheets(1).Cells(i, 2)
FSO.copyfile OldFileName, NewFileName
i = i + 1
Loop
Set FSO = Nothing
End Sub
ファイル名称を一括変更してみよう!
名称変更したいファイルを1つのフォルダに格納します。
そして、ファイル名称変更後のファイルを格納する先のフォルダも作成しておきましょう。
そしたら実際に、設定シートに必要事項を記入していきます。
※フォルダパスは、フォルダのバーの部分にカーソルを合わせてクリックすると分かりますよ。
ファイル名には拡張子も必ず記入しましょう!
マクロを実行すると、リネーム後というフォルダに変更後のファイル名称が出来ているはずです。
この事例は、Excelファイルをリネームしていますが、
.jpg、.pptx、.pngと拡張子がどんなファイルでも対応が可能です。
ファイル名称を一括で取得する方法
ここで、A社.xlsx、B社.xlsxというファイル名を一気に取得する方法も合わせて紹介しておきます。
Windows10であれば、全てのファイルを選択した状態で「shiftキー」を押しながら右クリックすると
パスのコピーという選択肢が出てきます。
コピー後、適当にエクセルに貼りつけてください。
区切り位置の指定で円マークで区切れば、希望のファイル名だけ取り出すことが出来ますよね。
この部分もマクロ化してもいいのですが、汎用性を高めるために今回はあえてファイル名称変更に特化したマクロにしました。
ファイル名称を一気に変更したい!という方の参考になれば幸いです。